10_关于 EXT-X-VERSION 标签

概述

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。

以下功能不向后兼容。如果我们使用这些功能,但未指定引入这些功能的协议版本,则较旧的客户端可能无法播放内容:

规格

下表列出了描述特定功能的规范版本,以及支持这些功能的相应 iOS 版本。

注意
随着时间的推移,HLS被不同的文档描述:draft-pantos-http-live-streaming,后来成为RFC 8216,现在是draft-pantos-hls-rfc8216bis。

draft-pantos-http-live-streaming 和 RFC 8216

校订 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 措辞更改和澄清。

draft-pantos-hls-rfc8216bisin page link

校对 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 实时流。