【问题标题】:changing m3u8 file dynamically during runtime (iOS)在运行时动态更改 m3u8 文件(iOS)
【发布时间】:2011-05-15 11:09:36
【问题描述】:

有谁知道我是否可以在应用程序运行期间动态更改 m3u8 文件?

场景如下: 假设我有多个 .ts 文件可以按顺序播放,例如 1.ts 、 2.ts 、 3.ts 等...

现在在运行时,我想将顺序更改为 1.ts、3.ts,然后再更改为 2.ts。

这可能吗?

谢谢,

【问题讨论】:

    标签: ios http-live-streaming


    【解决方案1】:

    答案在HLS standard(2017 年 8 月):

    服务器不得更改媒体播放列表文件,除非:

    o  Append lines to it (Section 6.2.1).
    
    o  Remove Media Segment URIs from the Playlist in the order that they
     appear, along with any tags that apply only to those segments
     (Section 6.2.2).
    
    o  Increment the value of the EXT-X-MEDIA-SEQUENCE or EXT-X-
     DISCONTINUITY-SEQUENCE tags (Section 6.2.2).
    
    o  Add an EXT-X-ENDLIST tag to the Playlist (Section 6.2.1).
    

    请注意,原始答案中的 standard draft(大约 2012 年)略有不同:

    服务器不得更改播放列表文件,除非:

    向其添加行(第 6.2.1 节)。

    按出现的顺序从播放列表中删除媒体 URI, 以及仅适用于这些媒体 URI 的任何标签 (第 6.2.2 节)。

    增加 EXT-X-MEDIA-SEQUENCE 标签的值 (第 6.2.2 节)。

    添加或删除 EXT-X-STREAM-INF 标记或 EXT-X-I-FRAME-STREAM-INF 标签(第 6.2.4 节)。请注意,客户不需要 重新加载变体播放列表文件,因此更改它们可能没有 立即生效。

    将 EXT-X-ENDLIST 标签添加到播放列表(第 6.2.1 节)。

    总而言之,协议不支持你的目标。

    无论如何,这是毫无意义的,因为片段之间可能会按顺序相互关联(具有共同的关键帧)。

    【讨论】:

    • @Daniel Bauke 这是您(正确)答案的更新。我的意图只是提供更新的指针。结果看起来像一个新的答案,但它不是!顺便说一句,谢谢您的原始答案。
    猜你喜欢
    • 2022-08-02
    • 1970-01-01
    • 2011-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-29
    • 2016-12-20
    相关资源
    最近更新 更多