HTTP Live Streaming (HLS) ist ein Protokoll für Video per Livestream mit adaptiver Bitrate und ermöglicht das Streaming von Videoinhalten in hoher Qualität. Die dynamische Anzeigenbereitstellung für Ad Manager unterstützt die HLS-Version 3. In diesem Integrationsleitfaden werden die Anforderungen und Empfehlungen zur Verwendung von HLS beschrieben.
Unterstützte Funktionen für Video per Livestream und Video-on-DemandFunktion | Lineare Livestreams | 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 (Wiedergabegruppen) |
||
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 |
* Wird nur in Livestreams für Playlists vom Typ „Ereignis“ unterstützt
Zu einem bestimmten Bereich wechseln
- Playlists und Wiedergabegruppen
- Attribute „CODECS“ und „RESOLUTION“
- Segmentdauer und Zeitstempelausrichtung
- Attribut „DISCONTINUITY“
- Medienverschlüsselung
Playlists und Wiedergabegruppen
Zum Ausliefern der Playlists sollte die GZIP-Contentcodierung verwendet werden. Für die Varianten in Masterplaylists und Segmenten können absolute oder relative URLs verwendet werden.
Alle Anzeigenassets werden in I-FRAME-Playlists transcodiert, einschließlich Slates. Für die dynamische Anzeigenbereitstellung in Ad Manager werden keine I-FRAME-Playlists aus dem Content und auch keine neuen Wiedergabegruppen basierend auf Kombinationen von Video/Audio generiert.
- Für lineare Livestreams: I-FRAME-Playlists müssen bei Bedarf vom Encoder/Packager generiert und konditioniert werden. Wiedergabegruppen werden so ausgeliefert, wie sie vom Live-Encoder generiert werden.
- Für Video-on-Demand (VOD): I-FRAME-Playlists müssen gegebenenfalls bei der Aufnahme im Mastermanifest enthalten sein. In Ad Manager wird nur dann ein Fehler ausgelöst, wenn nicht auf die angegebene I-FRAME-Playlistdatei zugegriffen oder sie nicht geparst werden kann. Wiedergabegruppen werden so ausgeliefert, wie sie im Mastermanifest bereitgestellt werden.
Attribute „CODECS“ und „RESOLUTION“
HLS-Masterplaylists für Livestreams und VOD-Assets müssen die optionalen Attribute CODECS
und RESOLUTION
enthalten. Mithilfe dieser Attribute werden Anzeigen gesucht, die den Codierungseinstellungen entsprechen und somit geeignet sind. Falls diese Werte nicht angegeben werden, erfolgt die Anzeigenauswahl ausschließlich anhand der Bandbreite. Dies kann zur Folge haben, dass RESOLUTION und CODECS von Anzeige und Content sich unterscheiden. Dies kann wiederum zu einer schlechten Nutzererfahrung und Problemen bei der Wiedergabe auf verschiedenen Geräten führen.
Das Attribut CODECS
muss sowohl die Audio- als auch die Video-Codecs enthalten. Der Encoder kann der URL Ihrer Masterplaylist jederzeit Varianten hinzufügen oder diese aus ihr entfernen.
Audio-Codecs
Bei der dynamischen Anzeigenbereitstellung werden der Codec „AAC-Audio“ sowie die Codecs „AC-3“ und „E-AC-3“ unterstützt.
CODECS
und RESOLUTION
gleich sein.Damit bei der Wiedergabe keine Probleme auftreten, muss der Encoder so konfiguriert sein, dass für die einzelnen Varianten konsistente URLs verwendet werden.
Beispiel
Masterplaylist mit CODECS und 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
Segmentdauer
Bei HLS-Mediaplaylists muss die Dauer der Mediasegmente als dezimale Gleitkommazahl angegeben werden. Die Genauigkeit einer Gleitkommazahl ist für die Dauer erforderlich, damit der Beginn und das Ende einer Werbeunterbrechung exakt bestimmt werden können. Je ungenauer die Werte für die Dauer sind, desto schlechter kann das System ermitteln, wann die Werbeunterbrechungen im Stream auftreten.
Beispiel
Mediaplaylist mit #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
Zeitstempelabstimmung
Der PTS-Wert (Presentation Timestamp) der Segmente in Variantenmediaplaylists muss abgestimmt werden. Der P-Frame und B-Frame verweisen zur Decodierung eines Frames auf andere Frames. Auch der H.264-Codec verweist auf Frames, die nicht nebeneinanderliegen, um eine optimierte Komprimierung zu erzielen. Weil diese Frames bei der Decodierung und Präsentation auf andere Frames angewiesen sind, wird mit dem DTS-Wert (Decode Timestamp) die Reihenfolge angegeben, in der die Frames decodiert werden, und mit dem PTS-Wert die Reihenfolge, in der sie präsentiert werden. Die Abstimmung des PTS-Werts ist wichtig, wenn Sie während der Wiedergabe eines Assets eine Anpassung an eine andere Bitrate vornehmen. Bei der Anzeigenbereitstellung wird anhand des PTS-Werts ermittelt, an welcher Position die Anzeige ausgeliefert werden soll.
Attribut „DISCONTINUITY“
Für jedes Vorkommen von EXT-X-DISCONTINUITY
in der Mediaplaylist muss ein EXT-X-DISCONTINUITY-SEQUENCE
-Tag vorhanden sein. Das EXT‑X‑DISCONTINUITY‑SEQUENCE
-Tag ermöglicht die Synchronisierung verschiedener Wiedergaben desselben Variantenstreams oder unterschiedlicher Variantenstreams.
Mediaverschlüsselung
Zur Verschlüsselung des Mediacontents muss eine der folgenden Methoden verwendet werden:
- AES-128 (das gesamte Segment wird verschlüsselt)
- SAMPLE-AES (einzelne Medien wie Audio oder Video werden verschlüsselt)
- SAMPLE-AES-CTR
Bei der dynamischen Anzeigenbereitstellung über Google Ad Manager werden die Technologie für digitale Rechteverwaltung (DRM) für HLS-Streams mithilfe von FairPlay sowie andere DRM-Technologien mit CMAF / fragmentierten MP4-Dateien unterstützt.
Beispiel
Mediaplaylist mit #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