HTTP Live Streaming (HLS) je protokol pro živé streamování videa s adaptivním datovým tokem, který umožňuje streamovat videoobsah ve vysoké kvalitě. Dynamické vkládání reklam (DAI) ve službě Ad Manager podporuje HLS verze 3. Tento průvodce integrací popisuje požadavky a doporučení k používání protkolu HLS.
Podívejte se, které funkce jsou podporovány u živých přenosů a videí na vyžádáníFunkce | Lineární živé vysílání | Video na vyžádání (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 (skupiny vykreslení) |
||
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 |
* Podporováno pouze u živých přenosů s playlisty typu EVENT.
Přejít na konkrétní sekci
- Playlisty a skupiny vykreslení
- Kodeky a rozlišení
- Trvání segmentu a Zarovnání časových razítek
- Diskontinuita
- Šifrování médií
Playlisty a skupiny vykreslení
Playlisty doporučujeme zobrazovat pomocí kódování obsahu GZIP. Varianty v hlavních playlistech mohou používat buď absolutní, nebo relativní adresy URL.
Všechny podklady se překódovávají tak, aby zahrnovaly playlisty I-FRAME, včetně stavů. Ad Manager DAI negeneruje playlisty I-FRAME z obsahu ani negeneruje nové skupiny vykreslení na základě kombinací videa a zvuku.
- Lineární živé vysílání: Pokud jsou potřeba playlisty I-FRAME, musí je vygenerovat a připravit kodér/packager. Skupiny vykreslení se doručují tak, jak jsou generovány kodérem živého vysílání.
- Video na vyžádání (VOD): Pokud jsou potřeba playlisty I-FRAME, je nutné je poskytnout v hlavním manifestu při zpracování. Ad Manager vygeneruje chybu pouze v případě, že poskytnutý soubor s playlistem I-FRAME není přístupný nebo ho nelze analyzovat. Skupiny vykreslení se zobrazují tak, jak jsou poskytnuty v hlavním manifestu.
Kodeky a rozlišení
Hlavní playlisty HLS pro živé přenosy i videa na vyžádání (VOD) musí zahrnovat volitelné atributy CODECS
a RESOLUTION
. Tyto atributy slouží k vyhledání vhodných reklam, které odpovídají nastavení kódování. Pokud tyto hodnoty nejsou poskytnuty, vyhledají se reklamy pouze na základě rychlosti připojení, což může vést k tomu, že v reklamě bude použito jiné rozlišení a kodek než v obsahu. Na uživatele to může dělat špatný dojem a může to způsobovat problémy s přehráváním na různých zařízeních.
Atribut CODECS
musí zahrnovat zvukové kodeky i videokodeky. Kodér může k adrese URL hlavního playlistu kdykoliv přidat další varianty nebo je z něj odebrat.
Zvukové kodeky
DAI podporuje zvukový kodek AAC. Navíc podporuje také kodeky AC-3 a E‑AC-3.
CODECS
a RESOLUTION
používejte konzistentní adresy URL streamů variant.Aby u uživatelů nedocházelo k problémům s přehráváním, měl by být kodér nakonfigurován tak, aby u jednotlivých variant používal konzistentní adresy URL.
Příklad
Hlavní playlist s parametry CODECS a 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
Trvání segmentu
Seznamy médií HLS musí mít trvání segmentů deklarovaná ve formě decimálních čísel s plovoucí desetinnou tečkou. Trvání by mělo být uvedeno s přesností na několik desetinných míst, aby bylo možné přesně určit, kdy začne a skončí reklamní přestávka. Čím méně přesné hodnoty trvání budou, tím méně přesně bude systém moci zjistit, kdy ve výsledném streamu reklamní přestávka nastane.
Příklad
Seznam médií se značkami #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
Zarovnání časových razítek
Prezentační časové razítko (PTS) se mezi segmenty v seznamech variant médií musí shodovat. P-snímky a B-snímky odkazují na jiné snímky, na základě nichž je lze dekódovat. Kodek H.264 používá pro lepší kompresi i snímky, které nejsou ihned před nebo za komprimovaným snímkem. Protože dekódování a prezentace těchto snímků závisí na jiných snímcích, dekódovací časové razítko (DTS) určuje pořadí, ve kterém se snímky dekódují, a PTS určuje pořadí, ve kterém jsou snímky prezentovány. Zarovnání razítek PTS je důležité při přechodu na jiný datový tok během přehrávání. Pozice k vložení reklamy se určuje pomocí časového razítka PTS.
Diskontinuita
Každá značka EXT-X-DISCONTINUITY
v seznamu médií musí mít značku EXT-X-DISCONTINUITY-SEQUENCE
. Značka EXT‑X‑DISCONTINUITY‑SEQUENCE
umožňuje synchronizaci mezi různými verzemi stejné varianty streamu nebo mezi streamy různých variant.
Šifrování médií
Pokud chcete mediální obsah zašifrovat, je potřeba použít některý z těchto algoritmů:
- AES-128 (zašifruje celý segment)
- SAMPLE-AES (zašifruje jednotlivá média, například zvuk nebo video)
- SAMPLE-AES-CTR.
Ad Manager DAI podporuje technologii DRM pro streamy HLS používající technologii FairPlay a další technologie DRM s CMAF / fragmentovanými soubory MP4.
Příklad
Seznam médií se značkami #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