A substituição dos parâmetros de stream é opcional. Esse recurso ficará disponível se você quiser que o player ou o aplicativo mude um valor padrão de um parâmetro de criação de stream ou mude a seleção ou a ordem padrão das variantes quando a playlist HLS ou DASH for solicitada. É possível transmitir esses parâmetros do player ou do app para as implementações do SDK do IMA, do beacon do lado do servidor (SSB, na sigla em inglês) e da API DAI.
Modificar a seleção e a ordem das variantes
A ordem padrão da playlist é determinada pelo editor. Se nenhum parâmetro de ordem for especificado, as listas serão retornadas na ordem original do editor.
É possível modificar os parâmetros de seleção e ordem das variantes especificados durante a criação do stream, o que permite especificar o subconjunto de variantes que devem ser incluídas na resposta a uma solicitação da playlist master e a ordem dessas variantes. Isso pode ser útil quando você quer que uma variante específica tenha prioridade sobre outra dependendo do usuário que acessa o conteúdo.
O subconjunto e a ordem das variantes permanecem os mesmos durante todo o período do stream. Os parâmetros são aceitos como parte da estrutura adTagParameters ao usar os parâmetros SDK do IMA e API DAI, ou como parâmetros HTTP GET
adicionais ao usar SSB.
Parâmetro | Protocolo de streaming | Descrição | Exemplos |
---|---|---|---|
dai-aor |
HLS, DASH | É o intervalo de larguras de banda das variantes de áudio retornadas. Para selecionar todas as larguras de banda mais altas, especifique somente startBandwidth . Para selecionar todas as larguras de banda inferiores, especifique somente :endBandwidth (prefixado com dois-pontos ":"). |
dai-aor=60000 |
dai-dlid |
HLS, DASH |
Ao criar uma configuração da CDN para seu conteúdo de vídeo on demand, defina uma configuração da CDN padrão e as configurações adicionais de exibição para a CDN. Assim você pode configurar mais de uma CDN e escolher de maneira dinâmica qual delas será usada para veiculação no início de uma sessão, usando uma chave-valor. Depois de configurar e salvar as configurações da CDN, o Ad Manager atribuirá um nome a ela. Esse nome deve ser transmitido à solicitação de criação de stream como um valor do parâmetro Se nenhum nome for transmitido à solicitação, o Ad Manager usará a CDN padrão. |
|
dai-excl |
HLS, DASH | São as versões que serão excluídas da playlist. Compatível com subtitles , codec , audio-lang , subtitle-lang , iframe e resolution . É possível excluir a resolução, codecs de áudio, codecs de vídeo e idiomas de áudio e/ou legendas usando um único valor ou uma lista de vários valores separados por vírgulas. O prefixo Codec também é compatível com o sufixo "*", que exclui todas as versões com codec e com o prefixo fornecido. |
Codec único Vários codecs Codec de prefixo Áudio em um único idioma Legendas em um único idioma Várias seleções Resolução |
dai-os |
HLS | É a largura de banda da variante de vídeo colocada na parte superior da playlist master. A variante com o valor mais próximo de startBandwidth é selecionada. Se houver dois valores equidistantes, o mais baixo será selecionado. Caso esse parâmetro seja fornecido e dai-aor não esteja definido, todas as variantes somente de áudio vão ser excluídas. |
dai-os=1700000 |
dai-ot |
HLS |
Contém informações do tipo de ordem, classificando os valores especificados pelo parâmetro Se o parâmetro |
dai-ot=bw dai-ot=bw_res |
dai-ov |
HLS |
São valores separados por vírgulas especificando a ordem em que as playlists de mídia serão retornadas. Esse parâmetro precisa ser usado junto com Se houver diversas variantes com o mesmo valor de ordem (por exemplo, duas variantes com a mesma largura de banda, mas resoluções diferentes), elas seguirão a ordem original. |
|
dai-sr |
HLS, DASH |
É o intervalo de larguras de banda das variantes de vídeo retornadas. Para selecionar todas as larguras de banda mais altas, especifique somente A restrição da largura de banda é somente para conteúdo de vídeo.
|
dai-sr=1300000:2500000 |
Outros parâmetros de modificação
Parâmetro | Protocolo de streaming | Descrição | Exemplos |
---|---|---|---|
dai-ah |
HLS, DASH | Especifica se uma transmissão ao vivo deve ter o intervalo de anúncio aplicado ou não. A duração do intervalo do anúncio precisa ser especificada na configuração da transmissão ao vivo. | Ativar o intervalo de anúncio:dai-ah=1 |
dai-apto (Beta) |
HLS, DASH |
É o tempo limite de decisão do conjunto de anúncios em milissegundos para a criação de VOD e transmissões ao vivo. Esse valor é usado em uma decisão de intervalo intermediário ou de intervalo passado que acontece na criação do stream (nem todas as decisões de anúncios futuras são feitas após a criação do stream). Para intervalos de anúncio que já passaram, só está disponível com o uso de playlists do tipo EVENTO ou do parâmetro dai-dpb. É possível fazer essa definição para qualquer valor maior que 0 e até 10.000.
Definir um valor muito baixo ou alto pode afetar o preenchimento do anúncio ou a experiência do usuário. |
dai-apto=4000 |
dai-dpb |
HLS, DASH |
Especifica se é necessário ativar a decisão de intervalos passados para streams lineares não SSB. O parâmetro é ignorado para streams SSB. Se estiver ativado, os intervalos passados vão ser determinados com decisões em intervalos intermediários. Isso talvez afete a latência de inicialização, que pode ser controlada com o parâmetro Intervalos passados não vão ser visualizados, a menos que o usuário retroceda, e isso talvez aumente a contagem de fornecimento de códigos. |
Ativar a decisão de intervalos passados:dai-dpb=true Desativar a decisão de intervalos passados para playlists do tipo EVENTO de HLS: dai-dpb=false |
dai-dvr |
HLS, DASH | É a duração do DVR (em segundos) de conteúdo ao vivo e anúncios que o usuário pode retroceder sem interromper a reprodução.
O padrão atual para esse valor é 100 segundos, ou o valor especificado durante a configuração da transmissão ao vivo. No entanto, um novo máximo pode ser especificado para cada transmissão ao vivo, até 100 segundos para SSB, ou 1.800 segundos ao usar o SDK ou a API. Se você quiser uma duração de DVR maior, entre em contato com seu gerente de contas. Orientações e usoA duração real do DVR da playlist que está sendo retornada pode ser um pouco maior ou menor dependendo da duração dos segmentos subjacentes. Também pode ser um pouco diferente nas variantes. O valor máximo da janela não deve ser maior do que o valor da janela de DVR especificado no evento. Se o valor for maior, ele será limitado automaticamente. As janelas de DVR para streams SSB também são limitadas a um valor menor em comparação com os streams do SDK ou da API public. Embora façamos o possível para retornar um manifesto compatível, especificar um valor muito pequeno ou muito grande pode causar problemas na reprodução. A reprodução deve ser testada com a duração da janela de DVR desejada para garantir que tudo está funcionando corretamente. Evite usar janelas diferentes em dispositivos distintos. Especificar um tamanho de janela de 30 segundos para um dispositivo e de 31 ou 35 segundos para outro dispositivo não é adequado considerando o desempenho. Em vez disso, use intervalos de janelas (por exemplo, 35 segundos para um conjunto de dispositivos, 10 minutos para outro conjunto etc.). Isso permite uma alocação de recursos e uma performance mais eficientes. |
dai-dvr=60 |
dai-emsgv |
HLS |
A versão Event Message é um parâmetro de criação de stream que permite que os autores da chamada especifiquem versões "emsg" para conteúdo tipo Common Media Application Format (CMAF). O padrão HLS requer a versão 1 do "emsg". Essa configuração é útil para plataformas que não são compatíveis com a versão padrão 1 e precisam da versão 0, como o Roku.
|
dai-emsgv=1 |
dai-pre (Beta) |
HLS, DASH | Especifica se uma transmissão ao vivo com um anúncio precedente ativado vai mostrar um anúncio precedente em vez de um intermediário caso eles se sobreponham. O comportamento padrão mostra o anúncio intermediário sobreposto em vez do anúncio precedente. | dai-pre=1 |
Exemplos de modificação de parâmetros
Solicitação
https://dai.google.com/linear/hls/event/<asset_key>/master.m3u8?dai-ot=bw&dai-ov=2025837,1406061
Resposta
#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/<asset_key>/encoder/<encoder_id>/session/<session_id>/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/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/1406061.m3u8
Solicitação
https://dai.google.com/linear/hls/event/<asset_key>/master.m3u8?dai-ot=bw&dai-ov=audio,1406061
Resposta
#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/<asset_key>/encoder/<encoder_id>/session/<session_id>/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/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/1406061.m3u8
Solicitação
https://dai.google.com/linear/hls/event/<asset_key>/master.m3u8?dai-ot=bw_res&dai-ov=1400000:640x360,audio
Resposta
#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/<asset_key>/encoder/<encoder_id>/session/<session_id>/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/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/audio.m3u8
Solicitação
https://dai.google.com/linear/hls/event/<asset_key>/master.m3u8?dai-sr=1300000:2500000&dai-aor=60000
Resposta
#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/<asset_key>/encoder/<encoder_id>/session/<session_id>/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/<asset_key>/encoder/<encoder_id>/session/<session_id>/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/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/audio.m3u8
Solicitação
https://dai.google.com/linear/hls/event/<asset_key>/master.m3u8?dai-os=1700000
Resposta
#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/<asset_key>/encoder/<encoder_id>/session/<session_id>/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/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/2025837.m3u8
Manifesto original com legendas
#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/<asset_key>/encoder/<encoder_id>/session/<session_id>/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/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/2025837.m3u8
Solicitação
https://dai.google.com/linear/hls/event/<asset_key>/master.m3u8?dai-excl=subtitles
Resposta
#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/<asset_key>/encoder/<encoder_id>/session/<session_id>/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/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/2025837.m3u8
Manifesto original com 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/<event_code>/encoder/<encoder_id>/session/<session_id>/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/<event_code>/encoder/<encoder_id>/session/<session_id>/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/<event_code>/encoder/<encoder_id>/session/<session_id>/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/<event_code>/encoder/<encoder_id>/session/<session_id>/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/<event_code>/encoder/<encoder_id>/session/<session_id>/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/<event_code>/encoder/<encoder_id>/session/<session_id>/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
Excluir um codec
Solicitação
http://truman.com/ssai/event/<event_code>/master.m3u8?dai-excl=codec:ec-3
Resposta
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=6295776,RESOLUTION=1920x1080,CODECS="ac-3,avc1.640028",AUDIO="AUDIO-AC3"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/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/<event_code>/encoder/<encoder_id>/session/<session_id>/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/<event_code>/encoder/<encoder_id>/session/<session_id>/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/<event_code>/encoder/<encoder_id>/session/<session_id>/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
Excluir vários codecs
Solicitação
http://truman.com/ssai/event/<event_code>/master.m3u8?dai-excl=codec:ec-3,codec:ac-3
Resposta
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=6045381,RESOLUTION=1920x1080,CODECS="avc1.640028,mp4a.40.2",AUDIO="AUDIO-AAC"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/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/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/2149906.m3u8
#EXT-X-MEDIA:TYPE=AUDIO,URI="audio-aac.m3u8",GROUP-ID="AUDIO-AAC",LANGUAGE="en",NAME="ENGLISH",AUTOSELECT=YES