我正在检查HLS的m3u8文件中的#EXT-X-DISCONTINUITY-SEQUENCE
标记。
(https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.3.3)
有人可以解释它的工作方式吗?
例如,假设m3u8文件是为实时流媒体制作的,如下所示, 在段落1.060.ts 2秒后,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
答案 0 :(得分:5)
标准中解释了EXT-X-DISCONTINUITY-SEQUENCE
必须用于跨变体同步的原因:
客户绝不能假设 在不同媒体中具有相同媒体序列号的片段 播放列表包含匹配的内容
和
客户绝不假设具有相同媒体序列的片段 不同Variant Streams或Renditions中的数字具有相同的数字 在演讲中的位置;播放列表 MAY 拥有独立的媒体 序号。相反,客户必须使用相对位置 播放列表时间线上的每个片段及其不连续性 用于定位相应段的序列号。
回到你的问题:
EXT-X-DISCONTINUITY
标记了两个连续段之间的不连续性。您的不连续性介于segment1.060.ts
和file.000.ts
之间。 file.000.ts
和file.001.ts
之间没有不连续性,因此无需重新插入代码EXT-X-DISCONTINUITY
时,您必须增加EXT-X-DISCONTINUITY-SEQUENCE
EXT-X-MEDIA-SEQUENCE