M3U8は数秒後にハングする

M3U8は数秒後にハングする

以下に小さな実験的なクリップがあります:

http://d3fnzeq4kk32oq.cloudfront.net/802/test_1.m3u8

私が直面している問題は、数秒後にビデオがハングしてしまうことです。

誰かが助けてくれたら嬉しいです

  1. 問題を特定する
  2. 修正
  3. それを検出または修正するためのツール

答え1

問題はありません。この m3u8 は、ライブ放送の最後の数秒を指しています。

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-ALLOW-CACHE:NO
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:54675
#EXTINF:10.0,
http://d3fnzeq4kk32oq.cloudfront.net/802/chunk-20131128_0122_54675.ts
#EXTINF:2.188,
http://d3fnzeq4kk32oq.cloudfront.net/802/chunk-20131128_0123_54676.ts
#EXTINF:10.0,
http://d3fnzeq4kk32oq.cloudfront.net/802/chunk-20131128_0123_54677.ts
#EXT-X-ENDLIST

HLS はビデオをセグメントに分割します。このプレイリストはセグメント番号 54675 から始まり、54677 で終わります。#EXT-X-ENDLISTセグメントがなくなったので、プレーヤーに再生を停止するように指示します。

このストリームがライブ中、m3u8 は更新されていたはずです。

https://datatracker.ietf.org/doc/html/draft-pantos-http-live-streaming-12

答え2

ファイル.m3u8ビデオクリップ; それはマニフェストタイプHTTP ビデオ ストリーミングで使用されるファイル。エンコードされたビデオ セグメントの URL を指定します。MPEG2-TS通常、長さは約 10 分です。

  1. サーバーはこの.m3u8ファイルをクライアントに送信します
  2. 次に、クライアントはビデオ セグメントへの URL を抽出し.ts、ビデオ セグメントを表示します。

通常のライブ ストリーミングの状況では、.m3u810 分ごとに新しいファイルがサーバーからクライアントに送信され、次の 10 分間のビデオ セグメントの URL がわかります。セグメントがなくなるか、ライブ ストリーミング イベントが終了すると、サーバーは、szatmary が上で説明したように、それ以上のセグメントがないことをクライアントに通知するディレクティブを.m3u8含むファイルを送信します。#EXT-X-ENDLIST

したがって、利用可能なセグメントがなくなるため、ビデオは説明したとおり「ハング」します。

修正するには:

サーバーはこれ以上セグメントを提供していないため、修正は必要ありません。

リソース:

これを検出するのに最適なツールは次のようなエディタです。6 六(vim) を使用すると、ファイル内のディレクティブが表示される.m3u8ので、ディレクティブをチェックできます#EXT-X-ENDLIST。またはcat、またはを使用してファイルtailの内容を表示することもできます.m3u8

szatmary が提供した HTTP ライブ ストリーミングに関する IETF ドラフトへのリンクは非常に有益で、ファイル内で使用されるすべてのディレクティブについて説明しています.m3u8

このプロトコルは Apple が開発し定義したため、次のサイトが情報源として最適です: https://developer.apple.com/streaming/

追加のリソースはここにあります: http://en.wikipedia.org/wiki/HTTP_Live_Streaming

関連情報