我正在尝试创建无限的HLS流。这个想法是服务器发送相同的片段,这意味着一旦发送了最后一个片段,就会再次发送第一个片段。据我所知,我必须使用EXT-X-DISCONTINUITY-SEQUENCE标签。这是我最初的清单
#EXTM3U
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOW-CACHE:NO
#EXT-X-VERSION:2
#EXT-X-TARGETDURATION:8
#EXTINF:8,
fragment0.ts
#EXTINF:8,
fragment1.ts
#EXTINF:8,
fragment2.ts
#EXTINF:8,
fragment3.ts
#EXTINF:8,
fragment4.ts
#EXTINF:8,
fragment5.ts
#EXTINF:8,
fragment6.ts
#EXTINF:4,
fragment7.ts
一旦流开始并且片段0被推到底部,这就是它的样子。
#EXTM3U
#EXT-X-DISCONTINUITY-SEQUENCE:0
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOW-CACHE:NO
#EXT-X-VERSION:2
#EXT-X-TARGETDURATION:8
#EXTINF:8,
fragment1.ts
#EXTINF:8,
fragment2.ts
#EXTINF:8,
fragment3.ts
#EXTINF:8,
fragment4.ts
#EXTINF:8,
fragment5.ts
#EXTINF:8,
fragment6.ts
#EXTINF:4,
fragment7.ts
#EXT-X-DICONTINUITY
#EXTINF:8,
fragment0.ts
一旦片段0到达顶部,我就增加EXT-X-DISCONTINUITY-SEQUENCE。这似乎不起作用,有没有人知道为什么?
答案 0 :(得分:0)
每次从顶部删除片段时,EXT-X-MEDIA-SEQUENCE
必须加1。因此,fragment0.ts
在顶部退出后,必须在播放列表中说出#EXT-X-MEDIA-SEQUENCE:1
。
请注意,#EXT-X-DICONTINUITY
会在一段时间后最终出现在播放列表的顶部,并且当EXT-X-DISCONTINUITY-SEQUENCE
退出播放列表时,也必须增加1。