HTTP Live Streaming (HLS) è un protocollo di video in live streaming con velocità in bit adattiva che consente streaming di alta qualità di contenuti video. L'inserimento di annunci dinamici (DAI) di Ad Manager supporta la versione 3 di HLS. Questa guida all'integrazione descrive in dettaglio i requisiti e i consigli per l'utilizzo di HLS.
Scopri quali funzionalità sono supportate per i contenuti dal vivo e i video on demandFunzionalità | Lineare dal vivo | 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 (Gruppi di rendering) |
||
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 |
* Supportata nei live streaming solo per le playlist di tipo EVENT.
Vai a una sezione specifica
- Playlist e gruppi di rendering
- Codec e risoluzione
- Durata del segmento e Allineamento del timestamp
- Discontinuità
- Crittografia dei contenuti multimediali
Playlist e gruppi di rendering
Pubblica playlist utilizzando la codifica dei contenuti GZIP (consigliata). Le varianti nelle playlist principali e nei segmenti possono usare URL assoluti o relativi.
Tutte le risorse pubblicitarie sono transcodificate per includere le playlist di I-FRAME, inclusi i contenuti slate. L'inserimento di annunci dinamici di Ad Manager non genera playlist I-FRAME dal contenuto né genera nuovi gruppi di rendering basati su combinazioni di video/audio.
- Per i lineari dal vivo: se richiesto, le playlist I-FRAME devono essere generate e condizionate dal codificatore/strumento per la creazione di pacchetti. I gruppi di rendering vengono pubblicati così come vengono generati dal codificatore live.
- Per i video on demand (VOD): se richieste, le playlist I-FRAME devono essere fornite nel file manifest principale al momento dell'importazione. Ad Manager segnalerà un errore soltanto se non è possibile accedere al file delle playlist I-FRAME fornito o se non è possibile analizzare il file. I gruppi di rendering sono pubblicati così come vengono forniti nel file manifest principale.
Codec e risoluzione
Le playlist principali HLS per live streaming e asset video on demand (VOD) devono includere gli attributi facoltativi CODECS
e RESOLUTION
. Questi attributi permettono di individuare annunci idonei che corrispondono a queste impostazioni di codifica. Se questi valori non sono forniti, gli annunci vengono abbinati soltanto in base alla larghezza di banda e risultare in una mancata corrispondenza di risoluzione e codec tra annunci e contenuti. Ciò può compromettere l'esperienza utente e causare problemi di riproduzione fra dispositivi diversi.
L'attributo CODECS
deve contenere sia i codec audio sia i codec video. Il tuo codificatore può aggiungere o rimuovere varianti all'URL della playlist principale in qualsiasi momento.
Codec audio
DAI supporta il codec audio AAC. Supporta anche i codec AC-3 ed E-AC-3.
CODECS
e RESOLUTION
.Verifica che il tuo codificatore sia configurato per mantenere URL uniformi in tutte le varianti di URL, così da evitare problemi di riproduzione agli utenti.
Esempio
Una playlist principale con attributi CODECS e 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
Durata del segmento
Le playlist multimediali HLS devono avere durate di segmento multimediale espresse in numeri decimali con virgola mobile. La durata deve avere un valore con virgola mobile per poter determinare con precisione il momento di inizio e fine di un'interruzione pubblicitaria. Se i valori di durata non sono accurati, il sistema non sarà in grado di determinare con precisione dove si verificano le interruzioni pubblicitarie nello streaming risultante.
Esempio
Una playlist multimediale con #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
Allineamento del timestamp
Il valore di timestamp (PTS) nei segmenti delle playlist multimediali varianti deve allinearsi. P-frame e B-frame si riferiscono ad altri frame per la decodifica di un frame. Il codec H.264 fa anche riferimento ai frame che non sono adiacenti, per una migliore compressione. Dato che questi frame dipendono da altri frame per la decodifica e la presentazione, il timestamp di decodifica (DTS) fornisce una sequenza per la decodifica dei frame e il timestamp di presentazione (PTS) fornisce una sequenza per la presentazione dei frame. L'allineamento PTS è importante per garantire l'adattamento a diverse velocità in bit durante la riproduzione di un asset. L'inserimento di annunci utilizza PTS per trovare la posizione di inserimento dell'annuncio.
Discontinuità
Qualsiasi EXT-X-DISCONTINUITY
nella playlist multimediale deve avere EXT-X-DISCONTINUITY-SEQUENCE
. Il tag EXT‑X‑DISCONTINUITY‑SEQUENCE
consente la sincronizzazione tra diversi rendering della stessa variante streaming o diverse varianti streaming.
Crittografia dei contenuti multimediali
Se vuoi criptare i contenuti multimediali, devi usare:
- AES-128 (cripta l'intero segmento)
- SAMPLE-AES (cripta i singoli contenuti multimediali, come audio o video)
- SAMPLE-AES-CTR.
L'inserimento di annunci dinamici di Ad Manager supporta la tecnologia DRM per gli stream HLS tramite FairPlay e altri DRM con CMAF/MP4 frammentato.
Esempio
Una playlist multimediale con #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