播放列表中的每个媒体片段都必须具有唯一的整数序列号。它在#EXT-X-MEDIA-SEQUENCE 标签中描述。每次将新片段附加到实时播放列表时,您必须增加媒体序列的十进制数。如果您不在播放列表中使用此标签,则假定媒体序列号 = 0,并且播放器假定没有新片段到达。
此外,您必须在媒体播放列表中使用 #EXT-X-TARGETDURATION 并使用十进制整数表示目标持续时间(以秒为单位)。媒体播放列表文件中每个媒体片段的#EXTINF 持续时间,当四舍五入到最接近的整数时,必须小于或等于目标持续时间。
以上注释取自 IETF 关于 HLS 的草案:https ://datatracker.ietf.org/doc/html/draft-pantos-http-live-streaming ,尤其是第 3.4.2 和 3.4.3 段。
因此,根据这些规则,您的示例播放列表必须如下所示:
#EXTM3U
#EXT-X-TARGETDURATION:20
#EXT-X-MEDIA-SEQUENCE:1
#EXTINF:9,
http://10.221.218.91:10042/clip/0.ts?session=23
#EXTINF:9,
http://10.221.218.91:10042/clip/1.ts?session=23
#EXTINF:9,
http://10.221.218.91:10042/clip/2.ts?session=23
#EXTINF:9,
http://10.221.218.91:10042/clip/3.ts?session=23
#EXTINF:9,
http://10.221.218.91:10042/clip/4.ts?session=23
#EXTINF:20,
http://10.221.218.91:10042/clip/5.ts?session=23
然后 #EXT-X-MEDIA-SEQUENCE 在每个到达的新段上增加 1(即大约在 e TARGETDURATION 秒之后)。