05_实时播放列表(滑动窗口)结构

概述

在实时会话中,随着新媒体文件的创建和可用,通过从文件中删除媒体 URI 来更新索引文件。实时播放列表中不存在 EXT-X-ENDLIST 标记,表示新的媒体文件将在可用时添加到索引文件中。

示例

此代码是会话开始时显示的实时播放列表的示例:

#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:4
#EXT-X-MEDIA-SEQUENCE:1
#EXTINF:10.0,
fileSequence1.ts
#EXTINF:10.0,
fileSequence2.ts
#EXTINF:10.0,
fileSequence3.ts
#EXTINF:10.0,
fileSequence4.ts
#EXTINF:10.0,
fileSequence5.ts

以下是实时播放列表示例中使用的标记:

EXTM3U:表示播放列表是扩展的 M3U 文件。这种类型的文件与基本的 M3U 文件区分开来,方法是将第一行的标签更改为 EXTM3U。所有 HLS 播放列表都必须以此标记开头。

EXT-X-TARGETDURATION:指定最长媒体文件持续时间。

EXT-X 版本:指示播放列表文件的兼容版本。播放列表媒体及其服务器必须符合定义该协议版本的 HTTP 实时流规范的最新版本的 IETF 互联网草案的所有规定。

EXT-X-MEDIA-SEQUENCE:指示播放列表文件中显示的第一个 URL 的序列号。播放列表中的每个媒体文件 URL 都有一个唯一的整数序列号。URL 的序列号比其前面的 URL 的序列号高 1。媒体序列号与文件名无关。

注意
对于从播放列表文件中删除的每个媒体 URI,EXT-X-MEDIA-SEQUENCE 标记值必须递增 1。媒体 URI 必须按照它们在播放列表中的显示顺序从播放列表文件中删除。更新的索引文件将一个移动窗口呈现为连续流。这种类型的会话适用于连续广播。

EXTINF:描述由其后 URL 标识的媒体文件的记录标记。每个媒体文件 URL 前面必须有一个 EXTINF 标记。此标记包含一个持续时间属性,该属性是采用十进制位置表示法的整数或浮点数,用于指定媒体段的持续时间(以秒为单位)。此值必须小于或等于目标持续时间。

注意
始终使用浮点 EXTINF 持续时间(在协议版本 3 中支持)。这允许客户端在流中查找时最大限度地减少舍入误差。

以下示例显示了使用新媒体 URI 更新后的同一播放列表:

#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:4
#EXT-X-MEDIA-SEQUENCE:2
#EXTINF:10.0,
fileSequence2.ts
#EXTINF:10.0,
fileSequence3.ts
#EXTINF:10.00,
fileSequence4.ts
#EXTINF:10.00,
fileSequence5.ts
#EXTINF:10.0,
fileSequence6.ts

随着新媒体 URI 的添加,播放列表将继续更新:

#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:4
#EXT-X-MEDIA-SEQUENCE:4
#EXTINF:10.00,
fileSequence4.ts
#EXTINF:10.00,
fileSequence5.ts
#EXTINF:10.0,
fileSequence6.ts,
#EXTINF:10.0,
fileSequence7.ts,
#EXTINF:10.0,
fileSequence8.ts,
#EXTINF:10.0,
fileSequence9.ts