EXT-X-VERSION 标记指示播放列表文件的兼容版本。此文件、其关联媒体及其服务器必须符合 IETF 互联网草案 HTTP 实时流式传输第 2 版(或更早规范)的所有规定,这些规定描述了标记值指示的协议版本。不包含 EXT-X-VERSION 标签的播放列表文件必须符合此协议的版本 1。对 M3U8 播放列表的支持是在 iOS 3.0、Mac OS X 10.6 和 Safari 4 中引入的。
EXT-X-VERSION | 功能和使用笔记 |
---|---|
2 | EXT-X-KEY 标签的 IV 属性 |
3 | 浮点 EXTINF 持续时间值 |
4 | EXT-X-BYTERANGE, EXT-X-I-FRAME-STREAM-INF, EXT-X-I-FRAMES-ONLY, EXT-X-MEDIA, EXT-X-STREAM-INF 标签的音频和视频属性 |
5 | EXT-X-KEY 标记的 KEYFORMAT 和 KEYFORMATVERSIONS 属性。EXT-X-MAP标签。字幕媒体类型。样本 AES 加密方法 EXT-X-KEY |
6 | 隐藏式字幕媒体类型。允许 EXT-X-MAP 用于字幕播放列表 |
7 | EXT-X-SESSION-DATA、EXT-X-SESSION-KEY、EXT-X-DATERANGE、INSTREAM-ID、平均带宽、帧速率、通道和 HDCP 级别属性的 SERVICEn 值。 |
8 | EXT-X-GAP, EXT-X-DEFINE, 变量替换, VIDEO-RANGE 属性。 |
9 | EXT-X-SKIP |
10 | EXT-X-SERVER-CONTROL、EXT-X-PART-INF、EXT-X-PRELOAD-HINT、EXT-X-RENDITION-REPORT、EXT-X-DATERANGE 的提示属性、EXT-X-MEDIA 的稳定演绎 ID、EXT-X-STREAM-INF 的 SUPPLEMENTAL-CODECS 属性,以及 EXT-X-STREAM-INF 和 EXT-X-I-FRAME-STREAM-INF 标签的分数和稳定变体 ID 属性 |
11 | EXT-X-DEFINE 的 QUERYPARAM 属性 |
12 | 以“REQ-”开头的属性 |
注意:
较旧的客户端会忽略向后兼容的功能,并且仍将以某种形式播放内容。仅指定给定功能中向后兼容性所需的协议版本。例如,如果我们刚刚添加了字幕,则不必指定协议版本 5。
以下功能不向后兼容。如果我们使用这些功能,但未指定引入这些功能的协议版本,则较旧的客户端可能无法播放内容:
如果 EXT-X-KEY 中有 IV,则必须至少使用协议版本 2。
如果我们具有浮点 EXTINF 持续时间值,则必须至少使用协议版本 3。
如果我们具有 EXT-X-BYTERANGE 或 EXT-X-IFRAME-ONLY,则必须至少使用协议版本 4。
如果在 EXT-X-KEY 中指定了 SAMPLE-AES 加密方法,或者在 EXT-X-KEY 中具有 KEYFORMAT 和 KEYFORMATVERSIONS 属性,或者具有 EXT-X-MAP,则必须至少使用协议版本 5。
如果媒体播放列表中不包含 EXT-X-I-FRAMES-ONLY,则必须至少使用 EXT-X-MAP 版本 6。
如果为 EXT-X-MEDIA 的 INSTREAM-ID 属性指定 SERVICEn 值,则必须至少使用协议版本 7。
如果使用变量替换,则必须至少使用协议版本 8。
如果我们有 EXT-X-SKIP,则必须至少使用协议版本 9。
如果我们具有替换播放列表增量更新中的 EXT-X-DATERANGE 标记的 EXT-X-SKIP 版本,则必须至少使用协议版本 10。
如果 EXT-X-DEFIN 中有 QUERYPARAM 属性,则必须至少使用协议版本 11。
如果属性以“REQ-”开头,则必须至少使用协议版本 12。
下表列出了描述特定功能的规范版本,以及支持这些功能的相应 iOS 版本。
注意
随着时间的推移,HLS被不同的文档描述:draft-pantos-http-live-streaming,后来成为RFC 8216,现在是draft-pantos-hls-rfc8216bis。
校订 | iOS版本 | 笔记 |
---|---|---|
00, 01 | 3.0 | 协议版本 1。初始版本。 |
02 | 3.1 | 添加了 EXT-X 不连续性。更改了内容类型。添加了冗余流。 |
03, 04 | 3.2 | 协议版本 2。添加了 EXT-X 版本。在 EXT-X-KEY 中添加了 IV 属性;分辨率属性为 EXT-X-STREAM-INF。更正了 CODECS 属性值。 |
— | 4.0 | 添加了定时元数据 API、密钥的自定义协议。 |
05 | 4.2 | 协议版本 3。添加了 EXTINF 浮点持续时间。支持 CEA-608 隐藏式字幕。 |
一 | 4.3 | 向 API 添加了 AccessLog 和 ErrorLog 对象。 |
06 | 4.3.2 | 添加了 EXT-X-PLAYLIST-TYPE。 |
07, 08 | 5.0 | 协议版本 4。添加了仅 EXT-X-I-FRAMES;EXT-S-I-FRAME-STREAM-INF;EXT-X-MEDIA;EXT-X-BYTERANGE.将音频和视频属性添加到 EXT-X-STREAM-INF。 |
09, 10, 11 | 6.0 | 协议版本5。添加了 EXT-X-MAP。在 EXT-X-KEY 中添加了 KEYFORMAT 和 KEYFORMATVERSIONS 属性;字幕属性为 EXT-X-STREAM-INF;强制和特征属性为 EXT-X-MEDIA。在 EXT-X-MEDIA 的 TYPE 属性中添加了字幕值;EXT-X-KEY 的 METHOD属性的 SAMPLE-AES 值。添加了 X-TIMESTAMP-MAP 到 WebVTT。添加了 AC-3 支持。 |
12 | 7.0 | 协议版本 6。添加了 EXT-X-DISCONTINUITY-SEQUENCE;EXT-X-START.在 EXT-X-MEDIA 中添加了 ASSOC 语言和 INSTREAM-ID 属性;隐藏式字幕属性为 EXT-X-STREAM-INF。删除了 EXT-X-STREAM-INF 和 EXT-X-I-FRAME-STREAM-INF 的程序 ID 属性。将隐藏式字幕值添加到 EXT-X-MEDIA 的“类型”属性。允许在字幕播放列表中使用 EXT-X-MAP。 |
13 | 7.1 | 添加了 EXT-X 独立段。 |
14, 15, 16 | 8.0 | 协议版本 7。规范的重大重写。 添加了 EXT-X-SESSION-DATA。删除了 EXT-X-ALLOW-CACHE。为 EXT-X-STREAM-INF 和 EXT-X-I-FRAME-STREAM-INF 添加了平均带宽属性。将服务n值添加到EXT-X-MEDIA的INSTREAM-ID属性中。添加了对增强型 AC-3 的支持。支持 CEA-708 隐藏式字幕。 |
17, 18 | 9.0 | 添加了 EXT-X-SESSION-KEY。为 EXT-X-STREAM-INF 和 EXT-X-IFRAME-STREAM-INF 添加了帧速率。新的峰值比特率计算。 |
19 | 9.3 | 添加了 EXT-X-DATERANGE。 |
20 | 10.0 | 添加了 EXT-X-MEDIA 的频道属性;EXT-X-STREAM-INF 和 EXT-X-I-FRAME-STREAM-INF 的 HDCP-LEVEL 属性。添加了 fMP4 支持。 |
21,22,23 | 10.3.1 | 阐明了AUTOSELECT=YES的唯一性。增加了对CMAF的提及。 |
RFC8216 | 10.3.1 | 措辞更改和澄清。 |
校对 | iOS版本号 | 笔记 |
---|---|---|
00 | 11.0 | 协议版本 8。增加了 EXT-X-GAP;EXT-X-DEFINE 和变量替换。为 EXT-X-STREAM-INF 和 EXT-X-I-FRAME-STREAM-INF 添加了 VIDEO-RANGE 属性。将 TYPE-1 值添加到 HDCP 级别属性。支持 IMSC1 字幕。 |
01 | - | 阐明了非 MPEG-2 内容的 X-TIMESTAMP-MAP。添加了 EXT-X-TARGETDURATION 标记的语义更改。更新了 JSON RFC 格式要求。 |
02 | 12.0 | 添加了第二个通道参数。添加了无法识别的通道参数指南。 |
03 | - | 添加了 EXT-X-BITRATE 标签。关于在碎片 MPEG-4 文件中使用影片扩展框的轻微说明。 |
04 | - | 添加有关 PES 时间戳换行的说明。 |
05 | 13.0 | 修改峰值段比特率的定义。将 ALLOWED-CPC 属性添加到 EXT-X-STREAM-INF 和 EXT-X-I-FRAME-STREAM-INF。允许从播放列表中删除媒体元数据标记。 |
06 | - | 重新排列了播放列表标签子部分。轻微改写。 |
07 | 13.5 | 协议版本 10。支持低延迟 HLS,包括部分分段、传递指令、播放列表增量更新和低延迟服务器配置文件。添加标记:EXT-X-PART-INF、EXT-X-SERVER-CONTROL、EXT-X-PART、EXT-X-SKIP、EXT-X-PRELOAD-HINT 和 EXT-X-RENDITION-REPORT。将 HLG 枚举值添加到“视频范围”属性。保留以“HLS”开头的查询参数。 |
08 | 14.0 | 将 SCORE 和 STABLE-VARIANT-ID 属性添加到 EXT-X-STREAM-INF 和 EXT-X-I-FRAME-STREAM-INF。将稳定格式副本 ID 属性添加到 EXT-X-MEDIA。特征值是媒体特征标记,而不是统一类型标识符。一些小的澄清。 |
09 | - | 小澄清。预加载提示请求应使用 2^53-1 作为未知字节范围长度。 |
10 | 15.0 | 重命名为“多变量播放列表”。添加内容转向(EXT-X-CONTENT-STEERING 标签、路径 ID 属性和获取转向清单)。添加插页式广告(专用的 EXT-X-DATERANGE 标签、素材资源列表插页式 JSON 文件和枚举字符串列表类型)。小澄清。 |
11 | 15.5 | 更新内容转向以添加路径克隆。将 CUE 属性添加到 EXT-X-DATERANGE。将 SUPPLEMENTAL-CODECS 属性添加到 EXT-X-STREAM-INF 和 EXT-X-I-FRAME-STREAM-INF。小澄清。 |
12 | 16.0 | 文档_HLS_start_offset。修改 GAP 附近部分段的规则。放宽演绎版的 EXT-X-DATERANGE 规则。小澄清。 |
13 | 16.5 | 协议版本 12。将 QUERYPARAM attibute 添加到 EXT-X_DEFINE。将格式属性添加到 EXT-X-SESSION-DATA。为前缀为“REQ-”的属性添加特殊行为。一些澄清。 |
注意
始终使用最新版本的 HTTP 实时流工具来生成或测试我们的 HTTP 实时流。