Transmisja na żywo przez HTTP (HLS) to protokół do transmisji wideo na żywo z adaptacyjną szybkością transmisji bitów, który umożliwia strumieniowe przesyłanie wysokiej jakości treści wideo. DAI w usłudze Ad Manager obsługuje HLS w wersji 3. W tym przewodniku po integracji znajdziesz wymagania i zalecenia dotyczące korzystania z technologii HLS.
Zobacz, jakie funkcje są dostępne w przypadku transmisji na żywo i wideo na żądanieFunkcja | Linearna transmisja na żywo | Wideo na żądanie (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 (grupy odwzorowania) |
||
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 |
* Obsługiwane tylko w przypadku transmisji na żywo playlist typu Zdarzenie.
Przejdź do konkretnej sekcji
- Playlisty i grupy odwzorowania
- Kodeki a rozdzielczość
- Czas trwania segmentu i wyrównywanie sygnatury czasowej
- Nieciągłość
- Szyfrowanie multimediów
Playlisty i grupy odwzorowania
Zalecamy kompresowanie playlist w formacie GZIP. Warianty w playlistach reklam nadrzędnych i segmentach mogą używać bezwzględnych adresów URL lub względnych adresów URL.
Wszystkie zasoby reklam są transkodowane, by uwzględniać playlisty I-FRAME, w tym plansze. DAI w Ad Managerze nie generuje playlist I-FRAME z treści ani nie tworzy nowych grup odwzorowania na podstawie kombinacji materiałów wideo i audio.
- Linearne transmisje na żywo: jeśli playlisty I-FRAME są wymagane, muszą zostać wygenerowane i uwarunkowane przez koder / program pakujący. Grupy odwzorowania są dostarczane według generowania ich z kodera transmisji na żywo.
- Wideo na żądanie (VOD): jeśli playlisty I-FRAME są wymagane, muszą znajdować się w głównym pliku manifestu podczas przetwarzania. Ad Manager powiadamia o błędzie tylko wtedy, gdy do dostarczonej playlisty I-FRAME nie można uzyskać dostępu lub nie da się jej przeanalizować. Grupy odwzorowania są dostarczane w postaci, w jakiej znajdują się w głównym pliku manifestu.
Kodeki a rozdzielczość
Playlisty reklam nadrzędnych HLS przeznaczone do transmisji na żywo i na żądanie (VOD) muszą zawierać opcjonalne atrybuty CODECS
i RESOLUTION
. Te atrybuty są używane do znalezienia reklam, które odpowiadają danym ustawieniom kodowania. Jeśli brakuje tych wartości, reklamy są dobierane tylko na podstawie przepustowości, przez co ich rozdzielczość i kodeki mogą być niezgodne z treścią. To może obniżyć jakość wyświetlanego materiału i prowadzić do problemów z odtwarzaniem na różnych urządzeniach.
Atrybut CODECS
musi zawierać zarówno kodeki audio, jak i wideo. Twój koder może w dowolnej chwili dodać lub usunąć warianty do URL-a playlisty reklamy nadrzędnej.
Kodeki audio
DAI obsługuje kodek audio AAC. Obsługuje też kodeki AC-3 i E-AC-3.
CODECS
i RESOLUTION
.Upewnij się, że Twój koder jest skonfigurowany tak, by każdy adres URL wariantu był spójny. Dzięki temu unikniesz problemów z odtwarzaniem.
Przykład
Playlista reklamy nadrzędnej z atrybutami CODECS i 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
Czas trwania segmentu
Playlisty z multimediami HLS muszą mieć podane długości segmentów multimediów w postaci liczb zmiennoprzecinkowych. Czas trwania segmentu powinien być oznaczony z użyciem przecinka, by dokładnie określić moment rozpoczęcia i zakończenia przerwy na reklamę. Im mniej dokładnie wskażesz wartości czasów trwania, tym mniej dokładnie system będzie określał moment wstawienia przerwy na reklamę w strumieniu.
Przykład
Playlista multimediów z tagiem #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
Wyrównywanie sygnatury czasowej
Sygnatura czasowa prezentacji (PTS) wszystkich segmentów w playlistach multimediów wariantów musi być wyrównana. Klatki P i B odwołują się do innych klatek, by dekodować pojedynczą klatkę. W kodeku H.264 zachodzi odnoszenie się do klatek, które nie znajdują się zbyt blisko siebie, by jakość kompresji była lepsza. Takie klatki są zależne od innych, dlatego sygnatura czasowa dekodowania (DTS) zawiera sekwencję, według której klatki są dekodowane, a PTS zawiera sekwencję, według której klatki są wyświetlane. Wyrównywanie PTS ma znaczenie wtedy, gdy następuje adaptacja do innej szybkości transmisji bitów jakiegoś zasobu. Wstawianie reklam używa PTS do znalezienia pozycji wstawienia reklamy.
Nieciągłość
Tag EXT-X-DISCONTINUITY
w playliście multimediów musi zawierać tag EXT-X-DISCONTINUITY-SEQUENCE
. Tag EXT-X-DISCONTINUITY-SEQUENCE
umożliwia synchronizację różnych odtworzeń tego samego strumienia wariantu lub różnych strumieni wariantów.
Szyfrowanie multimediów
Jeśli chcesz szyfrować multimedia, użyj standardów szyfrowania:
- AES-128 (szyfruje cały segment)
- SAMPLE-AES (szyfruje poszczególne elementy multimedialne, takie jak dźwięk czy wideo)
- SAMPLE-AES-CTR.
DAI w usłudze Ad Manager obsługuje technologię DRM w przypadku strumieni HLS przy użyciu FairPlay i innych DRM z treściami w formacie CMAF / plikami MP4 podzielonymi na fragmenty.
Przykład
Playlista multimediów z tagiem #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=<sygnatura>",IV=<wektor inicjalizacji>
#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=<sygnatura>"
#EXTINF:9.501,
http://media.example.com/wifi/segment28.ts