【问题标题】:Adaptive Streaming player playlist update interval自适应流媒体播放器播放列表更新间隔
【发布时间】:2016-01-12 10:35:26
【问题描述】:

关于自适应流媒体播放器的行为(具体来说,我对 HLS 和 DASH 感兴趣),它应该多久重新加载一次播放列表?这是指定的还是取决于播放器的实现?

当它重新加载播放列表时,是只对所谓的变体播放列表进行,还是每次都重新加载主?

直播内容和点播内容有什么不同吗?

【问题讨论】:

    标签: video-streaming playlist http-live-streaming mpeg-dash


    【解决方案1】:

    在 MPEG-DASH 的情况下,MPD 指定 minimumUpdatePeriod 属性,该属性向客户端通知 MPD 潜在更改之间的最小周期。这有助于客户端应用程序确定更新/重新下载 MPD 的频率。例如,如果 minimumUpdatePeriod 是 10 秒,您可以每 10 秒更新/重新下载 MPD,您应该没问题。

    HLS 不包含特定的属性(据我所知 -> 草案更改),但您可以根据片段持续时间更新 M3U8,例如,如果播放列表包含 10 秒的片段,您应该更新每个10 秒(在直播的情况下,每 10 秒就有一个新片段可用)。如果分段持续时间不同,您可以根据已下载的分段计算平均值并在该时间间隔内更新。

    您还可以查看现有的实现,例如 JWPlayer,它们都支持 HLS 和 DASH。如果您想生成 HLS 和 DASH 内容进行测试,您可以使用 ffmpeg&mp4box。

    【讨论】:

    • 因此,对于 HLS 中的实时流,如果我理解正确,播放列表更新之间的最小间隔将是片段持续时间。但这实际上是这样完成的,在现有播放器中请求新块之前进行更新,还是在播放列表包含多个片段时不需要这个短暂的时间?
    • 我认为 aergistal 在草案中引用了正确的部分,其中描述了这一点。但是,我在其他播放器中看到的是,它们只是根据分段持续时间(平均)进行更新,如果播放器更接近实时边缘,它似乎也会增加频率,例如,一些播放器更新 M3U8 然后每 500 毫秒。我认为 flashhls (github.com/mangui/flashls) 就是这样做的。
    【解决方案2】:

    对于HLS,请参阅草稿中的General Client Responsabilities。请注意,这是最新版本,如果您需要旧版本,请查看其他版本。

    一些相关的摘录:

    您只能重新加载 LIVEEVENT 而没有 EXT-X-ENDLIST 媒体播放列表(所以没有主重新加载)

    客户端必须定期重新加载媒体播放列表文件以了解 当前可用的媒体,除非它包含值为 VOD 或值为 EVENT 的 EXT-X-PLAYLIST-TYPE 标签,并且 EXT-X-ENDLIST 标记也存在。

    重新加载:

    当客户端第一次加载播放列表文件或重新加载 播放列表文件并发现它自上次以来已更改 已加载,客户端必须等待至少达到目标持续时间 在尝试再次重新加载播放列表文件之前,从 客户端上次开始加载播放列表文件的时间。

    如果客户端重新加载播放列表文件并发现它没有 改变了然后它必须等待一段时间目标的一半 重试之前的持续时间

    【讨论】:

    • 我发现“2015 年 10 月 17 日到期”,所以这不是官方协议,草稿甚至过期了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-08
    • 1970-01-01
    • 1970-01-01
    • 2012-03-19
    相关资源
    最近更新 更多