当每个播放列表具有独立的媒体序列号时,如何在变体m3u8播放列表中切换级别

时间:2016-09-09 07:04:23

标签: media-player hls m3u8

播放列表

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=150000,RESOLUTION=416x234, \
CODECS="avc1.42e00a,mp4a.40.2"
level1.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=240000,RESOLUTION=416x234, \
CODECS="avc1.42e00a,mp4a.40.2"
level2.m3u8

level1.m3u8

#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:1
#EXTINF:10,
level1-fileSequence1.ts
#EXTINF:10,
level1-fileSequence2.ts

level2.m3u8

#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:2
#EXTINF:10,
level2-fileSequence2.ts
#EXTINF:10,
level2-fileSequence3.ts
在level1.m3u8中,文件'level1-fileSequence2.ts'的媒体序列号为2

,在level2.m3u8中,文件'level2-fileSequence3.ts'的媒体序列号为3,

我们假设这两个文件在演示文稿中具有相同的位置

现在我想在下载level1-fileSequence1.ts之后将级别从级别1切换到级别2,

我如何知道在2级中选择哪个ts ts文件?或者我们需要更多信息?

1 个答案:

答案 0 :(得分:0)

是的,这是一个老问题,但添加的这几个词可能对某人有所帮助。

据我所知,您无法真正确定要从此处的信息加载哪个段。考虑到级别之间的段大小不需要相同。

当切换级别时,您真正需要继续同步视频的是自最近一次中断以来经过的时间,这包含在时间戳中。所以就像 aergistal 说的,你必须解析 ts 才能确定要选择哪个媒体文件。