以下に小さな実験的なクリップがあります:
http://d3fnzeq4kk32oq.cloudfront.net/802/test_1.m3u8
私が直面している問題は、数秒後にビデオがハングしてしまうことです。
誰かが助けてくれたら嬉しいです
- 問題を特定する
- 修正
- それを検出または修正するためのツール
答え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 分です。
- サーバーはこの
.m3u8
ファイルをクライアントに送信します - 次に、クライアントはビデオ セグメントへの URL を抽出し
.ts
、ビデオ セグメントを表示します。
通常のライブ ストリーミングの状況では、.m3u8
10 分ごとに新しいファイルがサーバーからクライアントに送信され、次の 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