关于自适应流媒体播放器的行为(具体而言,我对HLS和DASH感兴趣),它应该多久重新加载播放列表?这是指定还是由播放器实现?
当它重新加载播放列表时,是仅针对所谓的变体播放列表还是每次重新加载主节点?
这对于实时和点播内容有何不同?
答案 0 :(得分:5)
在MPEG-DASH的情况下,MPD指定minimumUpdatePeriod属性,该属性向客户端发信号通知MPD的潜在变化之间的最小时段。这有助于客户端应用程序确定更新/重新下载MPD的频率。例如,如果minimumUpdatePeriod是10秒,你可以每10秒更新/重新下载MPD,你应该没事。
HLS不包含特定属性(据我所知 - >草稿更改),但您可以根据片段持续时间更新M3U8,例如,如果播放列表包含10s的片段,您应该更新每隔10秒(每10秒一个新节目可以在直播的情况下使用)。如果细分持续时间不同,您可以根据已下载的细分计算平均值,并在该时间间隔内更新。
您还可以查看现有的实施,例如JWPlayer或bitdash,它们都支持HLS和DASH。如果要生成用于测试的HLS和DASH内容,可以使用ffmpeg& mp4box或bitcodin等服务。
答案 1 :(得分:4)
对于HLS
,请参阅草稿中的General Client Responsabilities。请注意,这是针对最新版本的,如果您需要较旧版本,请查看其他版本。
一些相关的摘录:
您只能在没有LIVE
媒体播放列表的情况下重新加载EVENT
和EXT-X-ENDLIST
(所以没有主重新加载)
客户端必须定期重新加载媒体播放列表文件以进行学习 当前可用的媒体,除非它包含值为VOD的EXT-X-PLAYLIST-TYPE标记,或EVENT的值和 EXT-X-ENDLIST标记也存在。
重新加载:
当客户端第一次加载播放列表文件或重新加载时 播放列表文件并发现它自上次发生以来已更改 加载后,客户端必须等待至少目标持续时间 在尝试再次重新加载播放列表文件之前,从中测量 客户端最后一次开始加载播放列表文件。
如果客户端重新加载播放列表文件并发现没有 改变然后它必须等待目标的一半 持续时间,然后重试。