Le protocole HTTP Live Streaming (HLS) est un protocole de streaming vidéo en direct à débit adaptatif qui permet de diffuser du contenu vidéo avec une qualité élevée. Dans Ad Manager, l'insertion dynamique d'annonce est compatible avec la version 3 du HLS. Ce guide d'intégration détaille les exigences et les recommandations concernant l'utilisation du HLS.
Découvrez les fonctionnalités compatibles avec la vidéo en direct et à la demande.Fonctionnalité | Flux linéaire en direct | Vidéo à la demande |
---|---|---|
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 (groupes de rendu) |
||
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 |
* Compatibilité avec les diffusions en direct pour les playlists de type EVENT uniquement.
Accéder à une section spécifique
- Playlists et groupes de rendu
- Codecs et résolution
- Durée des segments et Alignement de l'horodatage
- Discontinuité
- Chiffrement multimédia
Playlists et groupes de rendu
(Recommandé) Utilisez le format d'encodage du contenu GZIP pour diffuser les playlists. Dans les playlists principales et les segments, les variantes peuvent utiliser soit les URL absolues, soit les URL relatives.
Tous les éléments d'annonce sont transcodés de manière à inclure les playlists I-FRAME, y compris les écrans. Dans Ad Manager, l'insertion dynamique d'annonce ne génère pas de playlists I-FRAME à partir du contenu ni de groupes de rendu sur la base de combinaisons d'éléments vidéo et audio.
- Pour le contenu linéaire en direct : si nécessaire, les playlists I-FRAME doivent être générées et fractionnées par l'encodeur/le packageur. Les groupes de rendu sont diffusés lorsqu'ils sont générés par l'encodeur en direct.
- Pour la vidéo à la demande : si nécessaire, les playlists I-FRAME doivent être fournies dans le fichier manifeste principal au moment de l'ingestion. Ad Manager ne génère une erreur que si le fichier de playlist I-FRAME fourni n'est pas accessible ni analysé. Les groupes de rendu sont diffusés lorsqu'ils sont fournis dans le fichier manifeste principal.
Codecs et résolution
Les playlists principales HLS destinées aux éléments de diffusion en direct et de vidéo à la demande doivent comprendre les attributs facultatifs CODECS
et RESOLUTION
. Ces attributs permettent de trouver des annonces qui correspondent à ces paramètres d'encodage. En l'absence de ces valeurs, les annonces sont mises en correspondance uniquement sur la base de la bande passante. Il peut donc y avoir une différence de résolution ou de codecs entre l'annonce et le contenu. Cette différence est susceptible de nuire à l'expérience utilisateur et d'engendrer des problèmes de lecture sur différents appareils.
L'attribut CODECS
doit contenir les codecs audio et vidéo. Votre encodeur peut ajouter des variantes à l'URL de votre playlist principale à tout moment ou en supprimer de celle-ci.
Codecs audio
L'insertion dynamique d'annonce est compatible avec le codec audio AAC. Elle accepte également les codecs AC-3 et E-AC-3.
CODECS
et RESOLUTION
.Assurez-vous que votre encodeur est configuré de façon que les URL restent cohérentes entre chaque variante d'URL afin d'éviter que les utilisateurs rencontrent des problèmes de lecture.
Exemple
Prenons l'exemple d'une playlist principale renfermant les paramètres CODECS et RESOLUTION suivants :
#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
Durée des segments
Dans les playlists de contenus multimédias HLS, la durée des segments multimédias doit être définie sous la forme de nombres décimaux à virgule flottante. L'utilisation de la virgule flottante pour la définition de la durée permet de déterminer avec précision le moment auquel une coupure publicitaire commence et celui auquel elle se termine. Moins les valeurs de durée sont précises, moins le système est en mesure de déterminer avec précision le moment auquel la coupure publicitaire se produit dans le flux généré.
Exemple
Prenons l'exemple d'une playlist de contenus multimédias comprenant la balise #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
Alignement de l'horodatage
L'horodatage de présentation (PTS) doit être identique entre les segments des variantes de playlists de contenus multimédias. Les images P et B dépendent d'autres images pour le décodage. Le codec H.264 dépend également d'images non adjacentes pour une meilleure compression. Étant donné que ces types d'images dépendent d'autres images pour le décodage et la présentation, l'horodatage de décodage (DTS) indique une séquence dans laquelle les images sont décodées et l'horodatage de présentation (PTS) indique une séquence dans laquelle les images sont présentées. L'alignement du PTS est important lorsque vous adaptez la lecture d'un élément à un débit différent. L'insertion d'annonce utilise le PTS pour trouver la position d'insertion de l'annonce.
Discontinuité
Dans la playlist de contenus multimédias, toute balise EXT-X-DISCONTINUITY
doit correspondre à EXT-X-DISCONTINUITY-SEQUENCE
. La balise EXT‑X‑DISCONTINUITY‑SEQUENCE
permet de synchroniser les différentes interprétations d'une même variante de flux ou de plusieurs variantes de flux.
Chiffrement multimédia
Si vous voulez chiffrer le contenu multimédia, vous devez utiliser les formats suivants :
- AES-128 (chiffre l'intégralité du segment)
- SAMPLE-AES (chiffre un support spécifique, audio ou vidéo par exemple)
- SAMPLE-AES-CTR.
Dans Ad Manager, l'insertion dynamique d'annonce est compatible avec la technologie DRM pour les flux HLS utilisant FairPlay et d'autres DRM avec le format CMAF/MP4 fragmenté.
Exemple
Prenons l'exemple d'une playlist de contenus multimédias comprenant la balise #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