如何在创建循环遍历相同片段的无限HLS流时使用EXT-X-DISCONTINUITY-SEQUENCE

时间:2018-06-11 10:12:22

标签: hls hls.js

我正在尝试创建无限的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。这似乎不起作用,有没有人知道为什么?

1 个答案:

答案 0 :(得分:0)

每次从顶部删除片段时,EXT-X-MEDIA-SEQUENCE必须加1。因此,fragment0.ts在顶部退出后,必须在播放列表中说出#EXT-X-MEDIA-SEQUENCE:1

请注意,#EXT-X-DICONTINUITY会在一段时间后最终出现在播放列表的顶部,并且当EXT-X-DISCONTINUITY-SEQUENCE退出播放列表时,也必须增加1。