1

当 ABR 客户端从一种比特率切换到另一种比特率时,如果段名称不指示任何顺序,它如何知道下一个要专门获取的段?例如,假设段 1 和 2 已读取比特率 x,现在客户端决定应从子清单中读取段 3 比特率 y,它如何知道在子清单中读取哪个条目以获取 url具有比特率 y 的段 3?

4

2 回答 2

0

每个实现都是不同的,但通常,ABR 算法只是估计比特率,清单具有每个比特率的列表段。随着时间(不可避免地)向前移动,并且下一段将要下载,播放器会在给定 ABR 输出的情况下以尽可能高的比特率从列表中选择下一个。

于 2019-01-24T18:42:29.067 回答
0

从 hls.js 和 exoplayer(HlsMediaSource) 的源代码中我知道,客户端根据当前缓冲区的结束时间选择下一个块,然后通过二进制搜索在 m3u8 中找到包含结束时间的段。

于 2019-02-26T02:02:05.940 回答