HTTP 即時串流 (HLS) 是一種自動調整位元率直播影片通訊協定,可提供高品質的影片內容串流。Ad Manager 動態廣告插播支援 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 |
* 僅支援 EVENT 類型播放清單的直播影片。
瀏覽特定章節
播放清單和顯示群組
建議您使用 GZIP 內容編碼功能來放送播放清單。主要播放清單和區段中的變數可使用絕對網址或相對網址。
所有廣告素材資源都經過轉碼,以包含 I-FRAME 播放清單 (包括插入畫面)。Ad Manager DAI 不會參考內容來產生 I-FRAME 播放清單,也不會根據影片/音訊組合來產生新的顯示群組。
- 如果是直播線性串流:如有需要,必須由編碼器/分裝器產生 I-FRAME 播放清單並設定條件。顯示群組由直播編碼器產生後就會放送。
- 如果是隨選影片 (VOD):如有需要,進行擷取作業時必須在主要資訊清單中提供 I-FRAME 播放清單。如果 Ad Manager 無法存取或剖析提供的 I-FRAME 播放清單檔案,則會引發錯誤。如果主要資訊清單中提供顯示群組,就會放送顯示群組。
轉碼器和解析度
直播活動和隨選影片 (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。Apple FairPlay 串流使用的是 SAMPLE‑AES。
Ad Manager 動態廣告插播 (DAI) 支援使用 FairPlay 進行 HTTP 即時串流 (HLS) 的 DRM 技術,以及使用 CMAF/片段式 MP4 的其他 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