HTTP Live Streaming (HLS) 是一种自适应比特率直播视频协议,可实现视频内容的高画质流式传输。Ad Manager DAI 支持 HLS 版本 3。本集成指南详细介绍了使用 HLS 的要求和建议。
了解直播和视频点播支持的功能功能 | 线性直播 | 视频点播 (VOD) |
---|---|---|
EXTINF |
||
EXT-X-DATERANGE > SCTE35-IN |
— | |
EXT-X-DATERANGE > SCTE35-OUT |
— | |
EXT-X-DISCONTINUITY |
||
EXT-X-DISCONTINUITY-SEQUENCE |
— | |
EXT-X-ENDLIST |
* | |
EXT-X-I-FRAME-STREAM-INF |
||
EXT-X-I-FRAMES-ONLY |
||
EXT-X-INDEPENDENT-SEGMENTS |
||
EXT-X-KEY |
||
EXT-X-MEDIA (呈现组) |
||
EXT-X-MEDIA-SEQUENCE |
— | |
EXT-X-PLAYLIST-TYPE |
||
EXT-X-PROGRAM-DATE-TIME |
||
EXT-X-STREAM-INF > AUDIO |
||
EXT-X-STREAM-INF > AVERAGE-BANDWIDTH |
||
EXT-X-STREAM-INF > BANDWIDTH |
||
EXT-X-STREAM-INF > CLOSED CAPTIONS |
||
EXT-X-STREAM-INF > CODECS |
||
EXT-X-STREAM-INF > FRAMERATE |
||
EXT-X-STREAM-INF > RESOLUTION |
||
EXT-X-STREAM-INF > SUBTITLES |
||
EXT-X-STREAM-INF > VIDEO |
||
EXT-X-TARGETDURATION |
||
EXT-X-VERSION |
*仅适用于“活动”类型的播放列表的直播。
跳至特定部分
播放列表和呈现组
使用 GZIP 内容编码(推荐)投放播放列表。主播放列表和片段中的变体可以使用绝对网址或相对网址。
所有广告资源都经过转码,以包含 I-FRAME 播放列表(包括可选广告)。Ad Manager DAI 无法根据内容生成 I-FRAME 播放列表,或根据视频/音频组合生成新的“呈现组”。
- 对于线性直播:如果需要,I-FRAME 播放列表必须由编码器/打包器生成并调整。呈现组会按照在直播编码器中生成的状况进行投放。
- 对于视频点播 (VOD):如果需要,必须在提取时在主清单中加入 I-FRAME 播放列表。只有所提供的 I-FRAME 播放列表文件无法访问或解析时,Ad Manager 才会引发错误。呈现组会按照在主清单中所提供的状况进行投放。
编解码器和分辨率
直播和视频点播 (VOD) 素材资源的 HLS 主播放列表必须具有可选的 CODECS
和 RESOLUTION
属性。这些属性用于查找与相应编码设置匹配的合适广告。如果未提供这些值,系统将仅根据带宽匹配广告,这样做可能会导致广告与内容之间在分辨率和编解码器方面不一致,进而会导致糟糕的用户体验,而且在不同的设备上还可能会出现播放问题。
CODECS
属性必须同时包含音频编解码器和视频编解码器。您的编码器可以随时为主播放列表网址添加变体或从中移除变体。
音频编解码器
DAI 支持 AAC 音频编解码器,还支持 AC-3 和 E-AC-3 编解码器。
CODECS
和 RESOLUTION
组合保持一致。您应确保编码器已配置为可针对各个变体网址保持一致的网址,以免用户遇到播放问题。
示例
包含 CODECS 和 RESOLUTION 的主播放列表
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:BANDWIDTH=694272,CODECS="avc1.77.41,mp4a.40.2",RESOLUTION=768x432
chunklist_b694272.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=202752,CODECS="avc1.66.31,mp4a.40.2",RESOLUTION=480x270
Chunklist_b202752.m3u8
片段时长
HLS 媒体播放列表必须将媒体段时长声明为小数浮点数。时长应该有浮点精度,以协助您确定插播广告的精确开始时间和结束时间。时长值的精度越低,系统就越无法准确地确定在最终视频流中何时插播广告。
示例
包含 #EXTINF
的媒体播放列表
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:26
#EXTINF:9.901,
http://media.example.com/wifi/segment26.ts
#EXTINF:9.901,
http://media.example.com/wifi/segment27.ts
#EXTINF:9.501,
http://media.example.com/wifi/segment28.ts
时间戳对齐
变体媒体播放列表中所有片段的显示时间戳 (PTS) 必须对齐。P 帧和 B 帧会参考其他帧来对帧进行解码。H.264 编解码器也会参考非相邻的帧,以便更好地进行压缩。由于这些帧需要依赖其他帧才能进行解码和显示,因此解码时间戳 (DTS) 按解码的帧排序,PTS 则按显示的帧排序。如果要在素材资源播放期间适应不同的比特率,必须使 PTS 对齐。广告插播使用 PTS 查找广告插播位置。
中断
媒体播放列表中的任何 EXT-X-DISCONTINUITY
都必须具有 EXT-X-DISCONTINUITY-SEQUENCE
。EXT‑X‑DISCONTINUITY‑SEQUENCE
标记可以使同一变体视频流的不同转译版本之间或不同变体视频流之间实现同步。
媒体加密
如果您想将媒体内容加密,则必须通过以下方式进行加密:
- AES-128(加密整个片段)
- SAMPLE-AES(加密个别媒体,例如音频或视频)
- SAMPLE-AES-CTR。
Ad Manager DAI 会为采用 FairPlay 的 HLS 视频流以及采用 CMAF/fMP4 的其他 DRM 内容提供 DRM 技术支持。
示例
包含 #EXT-X-KEY
的媒体播放列表
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:26
#EXT-X-KEY:METHOD=AES-128,URI="https://media.example.com/asset/key1.php?id=<signature>",IV=<initialization vector>
#EXTINF:9.901,
http://media.example.com/wifi/segment26.ts
#EXTINF:9.901,
http://media.example.com/wifi/segment27.ts
#EXT-X-KEY:METHOD=AES-128,URI="https://media.example.com/asset/key2.php?id=<signature>"
#EXTINF:9.501,
http://media.example.com/wifi/segment28.ts