Zastępowanie parametrów strumienia jest opcjonalne. Pozwala w odtwarzaczu lub aplikacji zastąpić domyślną wartość parametru tworzenia strumienia albo zastąpić wybór lub domyślną kolejność wersji w odpowiedzi na żądanie playlisty HLS lub DASH. Parametry te możesz przekazywać z odtwarzacza i aplikacji w implementacji z pakietem IMA SDK, z sygnalizowaniem po stronie serwera (SSB) i z interfejsem DAI API.
Zastępowanie wyboru i kolejności wersji
Domyślną kolejność playlisty definiuje wydawca. Jeśli nie podasz parametrów kolejności, playlista ma pierwotną kolejność, określoną przez wydawcę.
Określone parametry wyboru wersji i kolejności możesz zastąpić podczas tworzenia strumienia. Dzięki temu możesz wskazać zestaw wersji, które powinny znaleźć się w odpowiedzi na żądanie playlisty reklamy nadrzędnej, oraz ich kolejność. Może się to okazać przydatne, gdy chcesz, żeby konkretna wersja miała pierwszeństwo przed inną w zależności od tego, jaki użytkownik ogląda treści.
Zestaw i kolejność wersji pozostają niezmienione przez cały okres trwania strumienia. Gdy korzystasz z pakietu IMA SDK i parametrów interfejsu DAI API, parametry są akceptowane jako element struktury adTagParameters, a gdy używasz SSB – jako dodatkowe parametry HTTP GET
.
Parametr | Protokół strumieniowego przesyłania danych | Opis | Przykłady |
---|---|---|---|
dai-aor |
HLS, DASH | Zakres przepustowości wersji dźwięku, które zostaną zwrócone. Aby wybrać wszystkie większe przepustowości, określ tylko parametr startBandwidth . Aby wybrać wszystkie mniejsze przepustowości, określ tylko parametr :endBandwidth (poprzedzony dwukropkiem „:”). |
dai-aor=60000 |
dai-dlid |
HLS, DASH |
Podczas tworzenia konfiguracji sieci CDN na potrzeby treści wideo na żądanie zdefiniuj domyślną konfigurację i dodatkowe ustawienia wyświetlania CDN. Pozwala to skonfigurować kilka sieci CDN i na początku sesji dynamicznie wybierać tę, z której chcesz wyświetlać treści, przy użyciu pary klucz-wartość. Gdy utworzysz i zapiszesz konfiguracje CDN, do każdej z nich Ad Manager przypisze nazwę. Powinna ona być przekazywana do żądania utworzenia strumienia jako wartość parametru Jeśli do żądania nie zostanie przekazana żadna nazwa, Ad Manager użyje domyślnej sieci CDN. |
( |
dai-excl |
HLS, DASH | Odtworzenia do wykluczenia z playlisty. Obsługiwane są elementy subtitles , codec , audio-lang , subtitle-lang , iframe i resolution . Możesz wykluczyć rozdzielczość, kodeki audio, kodeki wideo i języki dźwięku lub napisów, używając jednej wartości lub listy wielu wartości rozdzielonych przecinkami. Prefiks podany w elemencie codec jest też obsługiwany z sufiksem „*”, który powoduje, że wykluczane są wszystkie wersje reklamy z elementem codec z podanym prefiksem. |
Jeden kodek Wiele kodeków Kodek z prefiksem Dźwięk w jednym języku Napisy w jednym języku Wiele opcji Rozdzielczość |
dai-os |
HLS | Przepustowość wersji wideo należy umieścić u góry playlisty reklamy nadrzędnej. Zostanie wybrana wersja o wartości najbliższej parametrowi startBandwidth . Jeśli dwie wartości są w równej odległości, zostanie wybrana wartość najniższa. Jeśli podasz ten parametr, ale nie określisz parametru dai-aor , wszystkie wersje obejmujące tylko dźwięk zostaną wykluczone. |
dai-os=1700000 |
dai-ot |
HLS |
Informacje o typie kolejności opisujące typ wartości podanych w parametrze Jeśli podasz parametr |
dai-ot=bw dai-ot=bw_res |
dai-ov |
HLS |
Rozdzielone przecinkami wartości określające kolejność playlist multimediów, które zostaną zwrócone. Wszystkie wartości muszą być używane razem z parametrem Jeśli wiele wersji ma jednakową wartość parametru kolejności (na przykład dwie wersje z taką samą przepustowością, ale różną rozdzielczością), zostaną one uporządkowane względem siebie w pierwotnej kolejności. |
|
dai-sr |
HLS, DASH |
Zakres przepustowości wersji wideo, które zostaną zwrócone.Aby wybrać wszystkie większe przepustowości, określ tylko parametr Wymuszanie przepustowości dotyczy tylko treści wideo.
|
dai-sr=1300000:2500000 |
Inne parametry zastępowania
Parametr | Protokół strumieniowego przesyłania danych | Opis | Przykłady |
---|---|---|---|
dai-ah |
HLS, DASH | Określa, czy w transmisji na żywo powinien być stosowany czas bez reklam. Czas bez reklam musi być określony w konfiguracji transmisji na żywo. | Włącz czas bez reklam:dai-ah=1 |
dai-apto (Beta) |
HLS, DASH |
Czas oczekiwania na decyzje dotyczące bloku reklamowego (w milisekundach) na potrzeby VOD i transmisji na żywo. Ta wartość jest wykorzystywana w przypadku decyzji o przerwie w trakcie filmu lub po filmie, które są podejmowane na etapie tworzenia transmisji (a nie w przypadku wszystkich późniejszych decyzji dotyczących reklam, które są podejmowane po utworzeniu transmisji). W przypadku przerw, które miały już miejsce, czas oczekiwania jest dostępny pod warunkiem używania playlist typu Zdarzenie lub parametru dai-dpb. Wartość parametru musi być większa od 0 i nie może przekraczać 10 000.
Ustawienie bardzo niskiej lub wysokiej wartości może mieć wpływ na wypełnienie reklamą lub wygodę użytkownika. |
dai-apto=4000 |
dai-dpb |
HLS, DASH |
Określa, czy włączyć decyzje dotyczące wcześniejszych przerw na potrzeby linearnych transmisji innych niż SSB (ten parametr jest ignorowany w przypadku strumieni SSB). Jeśli ta opcja jest włączona, decyzje dotyczące wcześniejszych przerw są podejmowane na podstawie przerw w trakcie odtwarzania. Może mieć wpływ na czas rozpoczęcia, który można kontrolować za pomocą parametru Wcześniejsze przerwy pozostaną nieobejrzane, chyba że użytkownik przewinie wstecz (może to zwiększyć współczynnik wykorzystania kodu). |
Włączanie decyzji dotyczących wcześniejszych przerw:dai-dpb=true Wyłączanie decyzji dotyczących wcześniejszych przerw na potrzeby playlist typu Zdarzenie protokołu HLS: dai-dpb=false |
dai-dvr |
HLS, DASH | Czas wyświetlania okna DVR (w sekundach) odtwarzanych treści i reklam, które użytkownik może przewijać wstecz i odtwarzać płynnie. Obecna wartość domyślna to 100 sekund lub wartość określona podczas konfiguracji transmisji na żywo. Możesz jednak określić nową maksymalną wartość każdej transmisji na żywo – do 100 sekund w przypadku SSB lub 1800 sekund, jeśli używasz pakietu SDK lub interfejsu API. Jeśli chcesz ustawić dłuższy czas DVR, skontaktuj się z menedżerem konta. Wskazówki i użytkowanieRzeczywista długość wyświetlania okna DVR zwracanej playlisty może być nieco większa lub mniejsza w zależności od czasu trwania podstawowych segmentów. Wartości te mogą się też nieznacznie różnić w zależności od wersji. Maksymalna wartość rzeczywistego okna nie powinna być większa niż wartość okna DVR określona w zdarzeniu. Jeśli będzie większa, zostanie automatycznie ograniczona. Okna DVR strumieni SSB są też ograniczane, tak aby ich wartość była mniejsza niż w przypadku strumieni pakietów SDK lub publicznych interfejsów API. Staramy się, by zwracany był zgodny plik manifestu, jednak określenie bardzo małej lub bardzo dużej wartości może powodować problemy z odtwarzaniem. Aby mieć pewność, że wszystko działa prawidłowo, dokładnie przetestuj odtwarzanie z uwzględnieniem określonego czasu wyświetlania okna DVR. Unikaj używania różnych okien na różnych urządzeniach. Ustalenie rozmiaru okna na 30 sekund na jednym urządzeniu i na 31 lub 35 sekund na innym urządzeniu ma niekorzystny wpływ na wydajność. Zamiast tego używaj zasobników okien (np. 35 sekund na jednym zestawie urządzeń, 10 minut na innym zestawie itd.). Umożliwia to efektywniejsze przydzielanie zasobów i zwiększa wydajność. |
dai-dvr=60 |
dai-emsgv |
HLS |
Wersja Event Message jest parametrem tworzenia strumienia, który pozwala obiektom wywołującym określać wersje „emsg” dla treści w formacie CMAF (Common Media Application Format). Standard HLS wymaga „emsg” w wersji 1. To ustawienie jest przydatne w przypadku platform takich jak Roku, które nie obsługują standardowej wersji 1 i wymagają wersji 0.
|
dai-emsgv=1 |
dai-pre (Beta) |
HLS, DASH | Określa, czy w przypadku transmisji na żywo z włączoną reklamą przed filmem powinna wyświetlać się reklama przed filmem, a nie w trakcie filmu, jeśli te reklamy się nakładają. Domyślnie wyświetla się nakładająca się reklama w trakcie filmu, a nie reklama przed filmem. | dai-pre=1 |
Przykłady zastępowania parametrów
Żądanie
https://dai.google.com/linear/hls/event/<klucz_zasobów>/master.m3u8?dai-ot=bw&dai-ov=2025837,1406061
Odpowiedź
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2025837,RESOLUTION=960x540,CODECS="mp4a.40.2,avc1.4d401f"
https://dai.google.com/linear/hls/event/<klucz_zasobów>/encoder/<identyfikator_kodera>/session/<identyfikator sesji>/bandwidth/2025837.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1406061,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f"
https://dai.google.com/linear/hls/event/<klucz_zasobów>/encoder/<identyfikator_kodera>/session/<identyfikator sesji>/bandwidth/1406061.m3u8
Żądanie
https://dai.google.com/linear/hls/event/<klucz_zasobów>/master.m3u8?dai-ot=bw&dai-ov=audio,1406061
Odpowiedź
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=64000,RESOLUTION=480x270,CODECS="mp4a.40.2"
https://dai.google.com/linear/hls/event/<klucz_zasobów>/encoder/<identyfikator_kodera>/session/<identyfikator_sesji>/bandwidth/audio.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1406061,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f"
https://dai.google.com/linear/hls/event/<klucz_zasobów>/encoder/<identyfikator_kodera>/session/<identyfikator_sesji>/bandwidth/1406061.m3u8
Żądanie
https://dai.google.com/linear/hls/event/<klucz_zasobów>/master.m3u8?dai-ot=bw_res&dai-ov=1400000:640x360,audio
Odpowiedź
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1406061,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f"
https://dai.google.com/linear/hls/event/<klucz_zasobów>/encoder/<identyfikator_kodera>/session/<identyfikator_sesji>/bandwidth/1406061.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=64000,RESOLUTION=480x270,CODECS="mp4a.40.2"
https://dai.google.com/linear/hls/event/<klucz_zasobów>/encoder/<identyfikator_kodera>/session/<identyfikator_sesji>/bandwidth/audio.m3u8
Żądanie
https://dai.google.com/linear/hls/event/<klucz_pliku>/master.m3u8?dai-sr=1300000:2500000&dai-aor=60000
Odpowiedź
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1406061,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f"
https://dai.google.com/linear/hls/event/<klucz_zasobów>/encoder/<identyfikator kodera>/session/<identyfikator_sesji>/bandwidth/1406061.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2025837,RESOLUTION=960x540,CODECS="mp4a.40.2,avc1.4d401f"
https://dai.google.com/linear/hls/event/<klucz_zasobów>/encoder/<identyfikator kodera>/session/<identyfikator_sesji>/bandwidth/2025837.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=64000,RESOLUTION=480x270,CODECS="mp4a.40.2"
https://dai.google.com/linear/hls/event/<klucz_zasobów>/encoder/<identyfikator kodera>/session/<identyfikator_sesji>/bandwidth/audio.m3u8
Żądanie
https://dai.google.com/linear/hls/event/<klucz_pliku>/master.m3u8?dai-os=1700000
Odpowiedź
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1406061,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f"
https://dai.google.com/linear/hls/event/<klucz_zasobów>/encoder/<identyfikator_kodera>/session/<identyfikator_sesji>/bandwidth/1406061.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2025837,RESOLUTION=960x540,CODECS="mp4a.40.2,avc1.4d401f"
https://dai.google.com/linear/hls/event/<klucz_zasobów>/encoder/<identyfikator_kodera>/session/<identyfikator_sesji>/bandwidth/2025837.m3u8
Oryginalny plik manifestu z napisami
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",LANGUAGE="en",NAME="English",AUTOSELECT=YES,URI="tt-en.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",LANGUAGE="de",NAME="Deutsch",AUTOSELECT=YES,URI="tt-de.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="stereo",LANGUAGE="en",NAME="English",DEFAULT=YES,AUTOSELECT=YES,URI="audio.m3u8"
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=889549,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f" SUBTITLES="subs"
https://dai.google.com/linear/hls/event/<klucz_zasobów>/encoder/<identyfikator_kodera>/session/<identyfikator_sesji>/bandwidth/889549.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1406061,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f" SUBTITLES="subs"
https://dai.google.com/linear/hls/event/<klucz_zasobów>/encoder/<identyfikator_kodera>/session/<identyfikator_sesji>/bandwidth/2025837.m3u8
Żądanie
https://dai.google.com/linear/hls/event/<klucz_pliku>/master.m3u8?dai-excl=subtitles
Odpowiedź
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="stereo",LANGUAGE="en",NAME="English",DEFAULT=YES,AUTOSELECT=YES,URI="audio.m3u8"
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=889549,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f" SUBTITLES="subs"
https://dai.google.com/linear/hls/event/<klucz_zasobów>/encoder/<identyfikator_kodera>/session/<identyfikator_sesji>/bandwidth/889549.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1406061,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f" SUBTITLES="subs"
https://dai.google.com/linear/hls/event/<klucz_zasobów>/encoder/<identyfikator_kodera>/session/<identyfikator_sesji>/bandwidth/2025837.m3u8
Oryginalny plik manifestu z kodekami ac‑3, eac‑3
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=6107776,RESOLUTION=1920x1080,CODECS="avc1.640028,ec-3",AUDIO="AUDIO-EAC3"
https://truman.com/ssai/hls/event/<kod_zdarzenia>/encoder/<identyfikator_kodera>/session/<identyfikator_sesji>/bandwidth/6107776.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2212301,RESOLUTION=960x540,CODECS="avc1.640028,ec-3",AUDIO="AUDIO-EAC3"
https://truman.com/ssai/hls/event/<kod_zdarzenia>/encoder/<identyfikator_kodera>/session/<identyfikator_sesji>/bandwidth/2212301.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=6295776,RESOLUTION=1920x1080,CODECS="ac-3,avc1.640028",AUDIO="AUDIO-AC3"
https://truman.com/ssai/hls/event/<kod_zdarzenia>/encoder/<identyfikator_kodera>/session/<identyfikator_sesji>/bandwidth/6295776.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2400301,RESOLUTION=960x540,CODECS="ac-3,avc1.640028",AUDIO="AUDIO-AC3"
https://truman.com/ssai/hls/event/<kod_zdarzenia>/encoder/<identyfikator_kodera>/session/<identyfikator_sesji>/bandwidth/2400301.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=6045381,RESOLUTION=1920x1080,CODECS="avc1.640028,mp4a.40.2",AUDIO="AUDIO-AAC"
https://truman.com/ssai/hls/event/<kod_zdarzenia>/encoder/<identyfikator_kodera>/session/<identyfikator_sesji>/bandwidth/6045381.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2149906,RESOLUTION=960x540,CODECS="avc1.640028,mp4a.40.2",AUDIO="AUDIO-AAC"
https://truman.com/ssai/hls/event/<kod_zdarzenia>/encoder/<identyfikator_kodera>/session/<identyfikator_sesji>/bandwidth/2149906.m3u8
#EXT-X-MEDIA:TYPE=AUDIO,URI="audio-eac3.m3u8",GROUP-ID="AUDIO-EAC3",LANGUAGE="en",NAME="ENGLISH",AUTOSELECT=YES
#EXT-X-MEDIA:TYPE=AUDIO,URI="audio-ac3.m3u8",GROUP-ID="AUDIO-AC3",LANGUAGE="en",NAME="ENGLISH",AUTOSELECT=YES
#EXT-X-MEDIA:TYPE=AUDIO,URI="audio-aac.m3u8",GROUP-ID="AUDIO-AAC",LANGUAGE="en",NAME="ENGLISH",AUTOSELECT=YES
Wykluczanie 1 kodeka
Żądanie
http://truman.com/ssai/event/<event_code>/master.m3u8?dai-excl=codec:ec-3
Odpowiedź
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=6295776,RESOLUTION=1920x1080,CODECS="ac-3,avc1.640028",AUDIO="AUDIO-AC3"
https://truman.com/ssai/hls/event/<kod_zdarzenia>/encoder/<identyfikator_kodera>/session/<identyfikator_sesji>/bandwidth/6295776.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2400301,RESOLUTION=960x540,CODECS="ac-3,avc1.640028",AUDIO="AUDIO-AC3"
https://truman.com/ssai/hls/event/<kod_zdarzenia>/encoder/<identyfikator_kodera>/session/<identyfikator_sesji>/bandwidth/2400301.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=6045381,RESOLUTION=1920x1080,CODECS="avc1.640028,mp4a.40.2",AUDIO="AUDIO-AAC"
https://truman.com/ssai/hls/event/<kod_zdarzenia>/encoder/<identyfikator_kodera>/session/<identyfikator_sesji>/bandwidth/6045381.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2149906,RESOLUTION=960x540,CODECS="avc1.640028,mp4a.40.2",AUDIO="AUDIO-AAC"
https://truman.com/ssai/hls/event/<kod_zdarzenia>/encoder/<identyfikator_kodera>/session/<identyfikator_sesji>/bandwidth/2149906.m3u8
#EXT-X-MEDIA:TYPE=AUDIO,URI="audio-ac3.m3u8",GROUP-ID="AUDIO-AC3",LANGUAGE="en",NAME="ENGLISH",AUTOSELECT=YES
#EXT-X-MEDIA:TYPE=AUDIO,URI="audio-aac.m3u8",GROUP-ID="AUDIO-AAC",LANGUAGE="en",NAME="ENGLISH",AUTOSELECT=YES
Wykluczanie wielu kodeków
Żądanie
http://truman.com/ssai/event/<kod_zdarzenia>/master.m3u8?dai-excl=codec:ec-3,codec:ac-3
Odpowiedź
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=6045381,RESOLUTION=1920x1080,CODECS="avc1.640028,mp4a.40.2",AUDIO="AUDIO-AAC"
https://truman.com/ssai/hls/event/<kod_zdarzenia>/encoder/<identyfikator_kodera>/session/<identyfikator_sesji>/bandwidth/6045381.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2149906,RESOLUTION=960x540,CODECS="avc1.640028,mp4a.40.2",AUDIO="AUDIO-AAC"
https://truman.com/ssai/hls/event/<kod_zdarzenia>/encoder/<identyfikator_kodera>/session/<identyfikator_sesji>/bandwidth/2149906.m3u8
#EXT-X-MEDIA:TYPE=AUDIO,URI="audio-aac.m3u8",GROUP-ID="AUDIO-AAC",LANGUAGE="en",NAME="ENGLISH",AUTOSELECT=YES