10.1. 服务器必须使用 gzip 内容编码提供播放列表。
10.2. 我们应该支持流故障转移,例如通过在多变量播放列表中列出重复的流。
10.3. 媒体数据不应通过本地服务器传送到应用程序。
10.4. 我们应该对内容使用推荐的 MIME 类型。下表列出了这些建议:
媒体类型 | 格式 | 推荐的 MIME 类型 | 典型文件扩展名 |
---|---|---|---|
Playlist | HLS playlist | application/vnd.apple.mpegurl | m3u8 |
Playlist | M3U playlist | audio/mpegurl | m3u |
Video | MPEG transport stream | video/mp2t | ts |
Media Initializaton | Fragmented MP4 | video/mp4 | mp4 |
Video or audio | Fragmented MP4 | video/iso.segment | m4s |
Video | Fragmented MP4 | video/mp4 | mp4 |
Audio | MPEG transport stream | video/mp2t | ts |
Audio | Fragmented MP4 | audio/mp4 | mp4 |
Audio | Packed audio | audio/aac | aac |
Audio | Packed audio | audio/mpeg | mp3 |
Audio | Packed audio | audio/ac3 | ac3 |
Audio | Packed audio | audio/eac3 | ec3 |
Subtitles | WebVTT | text/vtt or text/plain | vtt |
Subtitles | IMSC1 | application/mp4 | mp4 |
Content Steering Manifest | JSON file | application/vnd.apple.steering-list | json |
X-ASSET-LIST response | JSON file | application/json | json |
注意
M3U 播放列表 MIME 类型的音频/mpegurl 未在 IANA 注册。众所周知,一些年长的玩家拒绝文本/ vtt作为非法类型。为了兼容,文本/纯文本是可以接受的。
注意
在未来的版本中,Apple将要求通过TLS进行交付,因此我们应该尽快开始向这个方向移动交付系统。
11.1. 多变量播放列表应使用传输层安全性 (TLS) 交付。
11.2. 媒体播放列表应使用 TLS 交付。
11.3. 媒体段应使用 TLS 交付。
11.4. 通过未加密传输请求的媒体段 URL 不应包含显示的字符串,例如电影标题、节目标题、剧集名称、剧集编号、流派、广告商或产品。
12.1. 传输层安全性 (TLS) 必须是具有前向安全性的 1.2 版。
12.2. TLS 不得使用已知不安全的加密原语(例如 RC4 加密、SHA-1 证书签名)。
12.3. 在 TLS 中,RSA 的密钥大小必须为 2048 位,EC 的密钥大小必须为 256 位。
12.4. 媒体段的 URL 不应完全静态。URL 应按设备发布或随时间更改。
13.1. 视频和音频的内容保护应遵循公平播放流媒体 (FPS) 规范。
13.2. 如果内容是用 FPS 加密的,则该方法必须是 SAMPLE-AES。
13.3. 如果内容使用 FPS 加密,则密钥格式必须为“com.apple.streamingkeydelivery”。
13.4. 除非出于互操作性的需要,否则 IV 属性不应与 FPS 一起使用。
13.5. 具有高清分辨率的内容应使用 HDCP 级别 TYPE-0。
13.6. 分辨率高于高清的内容应使用 HDCP 级别的 TYPE-1。
13.7. 使用通用加密加密的视频必须使用 1:9 的加密:跳过模式(10% 部分加密)。
13.8. 使用“转数快”加密的内容可以使用“允许的每次点击费用”属性。
13.9. 通用加密不得使用内容敏感加密。
13.10. 内容作者可以在单个 HLS fMP4 段中混合加密和未加密的样本,并在单个媒体初始化部分提供加密的样本描述,方法是在索引 0 处提供加密的样本描述,在索引 1 处为每个轨道提供未加密的样本描述。每个样本的示例索引字段应指向相应的示例说明。
注意
HD 大约是 720p 到 1080p 的范围。
14.1. 低延迟流交付必须满足 draft-pantos-hls-rfc8216bis-07 或更高版本附录 B 中低延迟服务器配置文件的所有要求。
14.2.
14.2a. 部件目标持续时间必须至少为 95% 的客户端预期看到的服务器的最大往返时间 (RTT)(P95 RTT)。
14.2b. 零件目标持续时间应至少是 P95 RTT 的三倍。
14.2c. 建议零件目标持续时间为一秒。
14.3. 部分保留值必须至少是部分目标持续时间的三倍。
14.4. 播放列表窗口超过两分钟的服务应提供播放列表增量更新。
14.5. 提供播放列表增量更新并使用 EXT-X-DATERANGE 标签的服务也应使用 CAN-SKIP-DATERANGES=YES。
注意
其他要求仅适用于单个客户端接收的播放列表和媒体。“共享播放”添加了适用于“共享播放”会话中所有参与者的要求。
15.1. 对于实时(线性)内容,从 EXT-X-PROGRAM-DATE-TIME 标签派生的时间轴用于同步。该时间表必须与所有参与者一致。
15.2. 对于 VOD 内容,基于播放列表开始的时间线用于同步。该时间表必须与所有参与者一致。
15.3. 发送给分享会话参与者的插页式广告的时长应匹配。否则,接收持续时间较长的插页式广告的参与者将错过一些主要内容。仅当所有参与者都使用支持控制协调媒体播放的应用时,才能覆盖此行为。