【发布时间】:2016-01-12 10:35:26
【问题描述】:
关于自适应流媒体播放器的行为(具体来说,我对 HLS 和 DASH 感兴趣),它应该多久重新加载一次播放列表?这是指定的还是取决于播放器的实现?
当它重新加载播放列表时,是只对所谓的变体播放列表进行,还是每次都重新加载主?
直播内容和点播内容有什么不同吗?
【问题讨论】:
标签: video-streaming playlist http-live-streaming mpeg-dash
关于自适应流媒体播放器的行为(具体来说,我对 HLS 和 DASH 感兴趣),它应该多久重新加载一次播放列表?这是指定的还是取决于播放器的实现?
当它重新加载播放列表时,是只对所谓的变体播放列表进行,还是每次都重新加载主?
直播内容和点播内容有什么不同吗?
【问题讨论】:
标签: video-streaming playlist http-live-streaming mpeg-dash
在 MPEG-DASH 的情况下,MPD 指定 minimumUpdatePeriod 属性,该属性向客户端通知 MPD 潜在更改之间的最小周期。这有助于客户端应用程序确定更新/重新下载 MPD 的频率。例如,如果 minimumUpdatePeriod 是 10 秒,您可以每 10 秒更新/重新下载 MPD,您应该没问题。
HLS 不包含特定的属性(据我所知 -> 草案更改),但您可以根据片段持续时间更新 M3U8,例如,如果播放列表包含 10 秒的片段,您应该更新每个10 秒(在直播的情况下,每 10 秒就有一个新片段可用)。如果分段持续时间不同,您可以根据已下载的分段计算平均值并在该时间间隔内更新。
您还可以查看现有的实现,例如 JWPlayer,它们都支持 HLS 和 DASH。如果您想生成 HLS 和 DASH 内容进行测试,您可以使用 ffmpeg&mp4box。
【讨论】:
对于HLS,请参阅草稿中的General Client Responsabilities。请注意,这是最新版本,如果您需要旧版本,请查看其他版本。
一些相关的摘录:
您只能重新加载 LIVE 和 EVENT 而没有 EXT-X-ENDLIST 媒体播放列表(所以没有主重新加载)
客户端必须定期重新加载媒体播放列表文件以了解 当前可用的媒体,除非它包含值为 VOD 或值为 EVENT 的 EXT-X-PLAYLIST-TYPE 标签,并且 EXT-X-ENDLIST 标记也存在。
重新加载:
当客户端第一次加载播放列表文件或重新加载 播放列表文件并发现它自上次以来已更改 已加载,客户端必须等待至少达到目标持续时间 在尝试再次重新加载播放列表文件之前,从 客户端上次开始加载播放列表文件的时间。
如果客户端重新加载播放列表文件并发现它没有 改变了然后它必须等待一段时间目标的一半 重试之前的持续时间。
【讨论】: