6

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

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

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

这可能吗?

谢谢,

4

1 回答 1

11

答案在HLS 标准(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).

请注意,原始答案的标准草案(大约 2012 年)略有不同:

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

将行添加到它(第 6.2.1 节)。

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

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

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

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

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

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

于 2012-01-08T09:42:25.987 回答