有没有人知道我是否可以在应用程序运行期间动态更改m3u8文件?
方案如下: 假设我有多个.ts文件可以按顺序播放,例如1.ts,2.ts,3.ts等......
现在在运行期间,我想将订单更改为1.ts,3.ts,然后才更改为2.ts.
这可能吗?
谢谢,
答案 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节)。
总而言之,协议不支持您的目标。
无论如何,它是相当无意义的,因为细分可以按顺序相互关联(具有共同的关键帧)。