在运行时动态更改m3u8文件(iOS)

时间:2011-05-15 11:09:36

标签: ios http-live-streaming

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

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

现在在运行期间,我想将订单更改为1.ts,3.ts,然后才更改为2.ts.

这可能吗?

谢谢,

1 个答案:

答案 0 :(得分:9)

答案在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节)。

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

无论如何,它是相当无意义的,因为细分可以按顺序相互关联(具有共同的关键帧)。