6.Trick播放要求
6.1. 必须提供 I 帧播放列表 (EXT-X-I-FRAME-STREAM-INF) 以支持清理和扫描 UI。
6.2. 我们应该每秒有一帧密集的 I 帧再现。这些是仅包含 I 帧的专用格式副本。
6.3. 或者,我们可以使用正常内容中的 I 帧,但随着 I 帧密度的提高,特技游戏性能得到改善。
6.4. 如果我们为常规视频提供相同空间分辨率的多个比特率,则应从该组中用于最低比特率的同一源为该分辨率创建 I-frame 播放列表。
6.5. I帧播放列表的比特率应为相同分辨率的正常播放列表的比特率乘以I帧播放列表的fps除以8。(请参阅 I 帧比特率与正常比特率。
6.6. 我们应该提供多个具有不同比特率的 I 帧媒体播放列表。
6.7. 与普通视频一样,密集 I 帧变体有很多可能的比特率选择。下表提供了一组可能的变体。(请参阅变体的比特率。)
16:9长宽比 | H.264/AVC |
---|---|
640 x 360 | 45 |
768 x 432 | 90 |
960 x 540 | 250 |
1280 x 720 | 375 |
1920 x 1080 | 580 |
16:9长宽比 | HEVC/H.265 | HDR (HEVC) |
---|---|---|
768 x 432 | 40 | 55 |
960 x 540 | 75 | 94 |
960 x 540 | 200 | 238 |
1280 x 720 | 300 | 360 |
1920 x 1080 | 525 | 650 |
注意
这些比特率基于1 fps密集I帧轨道的假设。应根据 I 帧呈现形式的实际帧速率修改这些值。(请参阅第 6.5 项。
上表是平均比特率。此规范的早期版本使用峰值比特率。
6.8. I帧播放列表必须包含EXT-X-I-FRAMES-ONLY标签。
6.9. 峰值段比特率必须根据 HLS 规范计算。
6.10. 如果使用 fMP4,I 帧段必须包含与 I 帧关联的“moof”标头。
6.11. 对于实时(线性)内容,I帧播放列表的目标持续时间必须与其他媒体相同。
6.12. 对于 VOD 内容,I 帧播放列表的目标持续时间可能与其他媒体不同。
6.13. * I 帧播放列表可能使用与普通视频片段不同的视频编解码器。
6.14. 为了向后兼容,一些技巧游戏内容应该用 H.264 编码。
6.15. 如果提供了 HDR 特技播放流,则应以所有分辨率提供它们。
6.16. * 为了向后兼容,必须提供 SDR 技巧播放流。
6.17. I帧内容可以使用fMP4“mjpg”编解码器进行编码。(请参阅 I 帧图像序列。)
7.1. 我们的媒体必须在各个细分中保持连续性,但广告和其他插入材料的过渡除外。
7.2. 如果使用传输流,连续性计数器和时间戳必须是连续的。
7.3. 如果使用 fMP4,曲目片段解码时间必须与前一段的解码时间和持续时间一致。
7.4. 视频片段必须以 IDR 帧开头。
7.5. 目标持续时间应为 6 秒。
7.6. 段持续时间应标称为 6 秒(例如,NTSC 29.97 可能是 6.006 秒)。
7.7. 媒体片段不得超过目标持续时间 0.5 秒。
7.8. 每个 xHE-AAC 片段都应以即时播放帧 (IPF) 开头。
8.1. 我们必须使用足够准确的片段持续时间,以确保任何连续片段组的 EXTINF 持续时间之和在内容实际持续时间的一个视频帧持续时间内。
8.2. 音频和视频播放列表必须使用相同的目标持续时间。
8.3. 音频和视频播放列表必须包含相同的内容持续时间。
8.4. EXT-X-PROGRAM-DATE-TIME 标签必须存在于每个实时(线性)媒体播放列表中。
8.5. EXT-X-PROGRAM-DATE-TIME 标签的日期时间值应与内容的播放时间保持一致。
8.6. 如果我们的媒体播放列表是从静态源内容 (VOD) 创建的,则必须添加值为 VOD 的 EXT-X-PLAYLIST-TYPE。
8.7. 在一个资产中,所有具有 EXT-X-PLAYLIST-TYPE 为 VOD 的媒体播放列表必须覆盖完全相同的媒体时间范围。
8.8. 如果我们的媒体播放列表是事件样式(从固定点开始,片段永远不会删除),则必须添加值为 EVENT 的 EXT-X-PLAYLIST-TYPE。
8.9. 必须使用 EXT-X-MEDIA 标签声明单独的音频流。
8.10. 语言属性必须包含在每个没有 TYPE=VIDEO 的 EXT-X-MEDIA 标签中。
8.11. 我们必须在实时(线性)播放列表中提供至少六个片段。
8.12. * 我们应该在实时(线性)播放列表中提供至少 15 分钟的内容。
8.13. 编码连续性的中断必须用 EXT-X-DISCONTINUITY 标签表示。
8.14. 视频帧率变化必须使用 EXT-X-DISCONTINUITY 标签标记为不连续性。
8.15. 所有变体和演绎版必须在同一时间点具有不连续性。
8.16. * 我们应避免在不连续时切换编解码器,例如,在 HEVC 和 H.264 之间切换,或在 AAC 和杜比数字之间切换。
8.17. 如果实时(线性)内容包含 EXT-X-DISCONTINUITY 标签,则必须始终存在 EXT-X-DISCONTINUITY-SEQUENCE 标签。
8.18. 我们的媒体请求不得使用 HTTP 重定向,但允许动态选择广告的广告内容除外。
8.19. 我们应该使用 EXT-X-DATERANGE 标签识别插页式和节目边界。
8.20. 如果使用 fMP4,则必须存在 EXT-X-MAP 标签。
8.21. 元数据应位于播放列表中(使用 EXT-X-DATERANGE),而不是媒体(使用定时元数据)。
8.22. * 为了获得最大的互操作性,所有音频/视频变体和演绎版都应在同一时间点具有段边界。
8.23. 如果我们的 xHE-AAC 片段以 IPF 开头,我们应该在媒体播放列表中使用 EXT-X-INDEPENDENT-SEGMENT 标签。
8.24. 当上次修改的 HTTP 标头(如果提供)与日期 HTTP 标头相比超过三个目标持续时间时,实时(线性)播放列表更新应被视为无效。
9.1. 我们的 EXT-X-STREAM-INF 标签必须始终提供 CODECS 属性。
9.2. 如果演绎版包含视频,我们的 EXT-X-STREAM-INF 标签必须始终提供分辨率属性。
9.3. 我们的 EXT-X-I-FRAME-STREAM-INF 标签必须始终提供 CODECS 属性。
9.4. 我们的 EXT-X-I-FRAME-STREAM-INF 标签必须始终提供分辨率属性。
9.5. 我们应该将视频和音频作为单独的流提供。
9.6. 如果我们有多声道音频,则必须使用单独的音频流。
9.7. 如果我们有其他音频内容(语言/评论/DVS),则必须使用单独的音频流。
9.8. 如果我们有不同的视频角度,则必须使用单独的音频流。
9.9. 我们必须提供多种比特率的视频(即变体)。
9.10. 对于高清内容,至少应有两个变体以最高可用分辨率编码。
9.11. 如果我们的视频片段以 IDR 开头,则应在多变量播放列表中使用 EXT-X-INDEPENDENT SEGMENT-标签。(请参阅第 7.4 项。
9.12. 如果我们的视频片段以 IDR 开头,并且 EXT-X -INDEPENDENT-SEGMENTS 标签不在多变量播放列表中,则必须在所有视频媒体播放列表中使用 EXT-X-INDEPENDENT 片段标签。(请参阅第 7.4 项。
9.13. BANDWIDTH 属性必须是任何可播放的演绎版组合产生的峰值段比特率的最大总和。
9.14. 我们必须包含平均带宽属性。
9.15. 每个包含视频内容的 EXT-X-STREAM-INF 标签都必须具有帧速率属性。
9.16. 必须指定 VIDEO-RANGE 属性,除非所有变体和演绎版都是 SDR。
9.17. 在一组演绎版(具有相同类型和组 ID 的 EXT-X-MEDIA 标签)中,具有相同语言值的标签应按从最一般到最具体的顺序排序。(因为 CHARACTERISTICS 是开放式的,所以匹配算法需要排序,因为它无法解释所有的语义。
9.18. EXT-X-CONTENT-STEERING 标签应始终具有路径 ID 属性。
9.19. SCORE 属性(如果存在)必须位于每个变体上。否则,将忽略 SCORE 属性。