HTTP Live Streaming (HLS) is een livestreaming-videoprotocol met een aanpasbare bitsnelheid waarmee videocontent van hoge kwaliteit kan worden gestreamd. DAI voor Ad Manager ondersteunt HLS-versie 3. In deze integratiehandleiding vindt u de vereisten en aanbevelingen voor het gebruik van HLS.
Bekijk welke functies worden ondersteund voor live en video on demandActie | Live lineair | Video on demand (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 (weergavegroepen) |
||
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 |
* Wordt alleen ondersteund voor livestreams voor playlists van het type EVENT.
Verder naar een specifiek gedeelte
- Playlists en weergavegroepen
- Codecs en resolutie
- Segmentduur en Uitlijning van tijdstempels
- Discontinuïteit
- Mediaversleuteling
Playlists en weergavegroepen
Lever afspeellijsten door gebruik te maken van GZIP-contentcodering (aanbevolen). Varianten in hoofdafspeellijsten en segmenten kunnen zowel absolute URL's als relatieve URL's gebruiken.
Alle advertentie-items worden getranscodeerd zodat ze I-FRAME-afspeellijsten bevatten, inclusief slates. Ad Manager DAI genereert geen I-FRAME-playlists of weergavegroepen op basis van combinaties van video/audio.
- Voor live lineair: Indien nodig moeten I-FRAME-playlists worden gegenereerd en geconditioneerd door het coderingsprogramma/de packager. Weergavegroepen worden geleverd zoals ze door het live coderingsprogramma zijn gegenereerd.
- Voor video on demand (VOD): Indien nodig moeten I-FRAME-playlists in het hoofdmanifest worden opgegeven op het moment dat ze worden verwerkt. Ad Manager genereert alleen een fout als het opgegeven I-FRAME-playlistbestand niet toegankelijk is of niet kan worden geparseerd. Weergavegroepen worden geleverd zoals ze worden geleverd in het hoofdmanifest.
Codecs en resolutie
HLS-hoofdplaylists voor bestanden van livestreams en video on demand (VOD) moeten over de optionele kenmerken CODECS
en RESOLUTION
beschikken. Deze kenmerken worden gebruikt om geschikte advertenties te vinden die overeenkomen met deze coderingsinstellingen. Als deze waarden niet worden verstrekt, worden advertenties uitsluitend gekoppeld aan de hand van bandbreedte. Dit kan leiden tot een onjuiste overeenkomst in de resolutie en codecs voor de advertentie en de content. En dat kan weer leiden tot een niet-gebruiksvriendelijke functionaliteit en problemen bij het afspelen op verschillende apparaten.
Het kenmerk CODECS
moet de audio- en videocodecs bevatten. In uw coderingsprogramma kunnen op elk gewenst moment varianten worden toegevoegd aan uw hoofdplaylist of hieruit worden verwijderd.
Audiocodecs
DAI ondersteunt de AAC-audiocodec. DAI ondersteunt ook de codecs AC-3 en E-AC-3 (Bèta) . Deze bevinden zich momenteel in de bètafase.
CODECS
en RESOLUTION
.U moet ervoor zorgen dat uw coderingsprogramma is geconfigureerd voor het behoud van consequente URL's voor elke variant-URL om te voorkomen dat uw gebruikers problemen ervaren bij het afspelen.
Voorbeeld
Een hoofdplaylist met CODECS en 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
Segmentduur
Voor HLS-media-playlists moet de duur van de mediasegmenten worden aangegeven als een decimale-zwevende-kommawaarde. De duur moet een zwevende-kommanauwkeurigheid hebben om de exacte tijd te bepalen wanneer een advertentie-onderbreking begint en eindigt. Hoe minder nauwkeurig de waarden voor duur, hoe minder nauwkeurig het systeem kan bepalen wanneer er advertentie-onderbrekingen plaatsvinden in de resulterende stream.
Voorbeeld
Een mediaplaylist met #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
Uitlijning van tijdstempels
De Presentation Timestamp (PTS) voor segmenten in media-afspeellijsten van varianten moet zijn uitgelijnd. P-frame en B-frame verwijzen andere frames door om een frame te decoderen. De H.264-codec verwijst ook naar niet-naastgelegen frames voor een betere compressie. Aangezien deze frames afhankelijk zijn van andere frames voor decodering en presentatie, kunt u met Decode Timestamp (DTS) een reeks instellen voor de frames die moeten worden gedecodeerd. Met PTS kunt u instellen in welke volgorde frames worden gepresenteerd. De uitlijning van PTS is belangrijk wanneer u het materiaal moet aanpassen aan verschillende bitsnelheden tijdens het afspelen van een bestand. Voor advertentie-invoeging wordt PTS gebruikt om de invoegingspositie te vinden.
Discontinuïteit
Elke EXT-X-DISCONTINUITY
in de mediaplaylist moet EXT-X-DISCONTINUITY-SEQUENCE
bevatten. Met de tag EXT‑X‑DISCONTINUITY‑SEQUENCE
is synchronisatie mogelijk tussen verschillende versies van dezelfde variantstream of verschillende variantstreams.
Mediaversleuteling
Als u de mediacontent wilt versleutelen, moet deze worden versleuteld met AES-128 (versleutelt het hele segment), SAMPLE-AES (versleutelt afzonderlijke media, zoals audio of video) of SAMPLE-AES-CTR. Apple FairPlay-streams maken gebruik van SAMPLE-AES.
Ad Manager DAI ondersteunt DRM-technologie voor HLS-streams via FairPlay en andere DRM's met CMAF/gefragmenteerde MP4.
Voorbeeld
Een mediaplaylist met #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