HLSのm3u8ファイルの#EXT-X-DISCONTINUITY-SEQUENCE
タグについて調べています。 ( https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.3. )誰かがそれの働き方を説明できますか?
たとえば、m3u8ファイルが以下のようにライブストリーミング用に作成されているとします。2秒後にsegment1.060.ts、file.000.tsがリストから削除され、#EXT-X-DISCONTINUITYタグも削除されます。結局のところ、file.001.tsはリストの最初のメディアセグメントになります。
この状態で、#EXT-X-MEDIA-SEQUENCE
、#EXT-X-DISCONTINUITY-SEQUENCE
にはどのシーケンス番号が必要ですか? #EXT-X-DISCONTINUITY
をfile.001.ts行の前にもう一度配置する必要がありますか?
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-MEDIA-SEQUENCE:60
#EXT-X-DISCONTINUITY-SEQUENCE:0
#EXT-X-ALLOW-CACHE:NO
#EXT-X-TARGETDURATION:2
#EXTINF:0.933600,
segment1.060.ts
#EXT-X-DISCONTINUITY
#EXTINF:0.966911,
file.000.ts
#EXTINF:1.000489,
file.001.ts
バリアント間の同期にEXT-X-DISCONTINUITY-SEQUENCE
を使用する必要がある理由は、標準で説明されています。
クライアントしてはいけない異なるメディアプレイリストの同じメディアシーケンス番号を持つセグメントに一致するコンテンツが含まれていると想定する
そして
クライアントMUST NOT異なるバリアントストリームまたはレンディションで同じメディアシーケンス番号を持つセグメントは、プレゼンテーション内で同じ位置にあると想定します。プレイリスト[〜#〜] may [〜#〜]独立したメディアシーケンス番号があります。代わりに、クライアント[〜#〜] must [〜#〜]プレイリストタイムライン上の各セグメントの相対位置とその不連続シーケンス番号を使用して、対応するものを見つけますセグメント。
あなたの質問に戻る:
EXT-X-DISCONTINUITY
は、2つの連続セグメント間の不連続性を示します。不連続性はsegment1.060.ts
とfile.000.ts
の間にあります。 file.000.ts
とfile.001.ts
の間に不連続性がないため、タグを再挿入する必要はありません。EXT-X-DISCONTINUITY
を削除するたびに、EXT-X-DISCONTINUITY-SEQUENCE
をインクリメントする必要がありますEXT-X-MEDIA-SEQUENCE
をインクリメントする必要があります