Este guia descreve o recurso de opções de manifesto com suporte da API Video Stitcher. Isso permite personalizar o manifesto do vídeo costurado. As opções do manifesto são configuradas na solicitação de criação da sessão. Para ver mais informações, consulte os seguintes tópicos:
- Gerenciar uma sessão ao vivo
- Gerenciar uma sessão ao vivo ativada pelo Google Ad Manager
- Gerenciar uma sessão de VOD
- Gerenciar uma sessão de VOD ativada pelo Google Ad Manager
Antes de começar
Verifique se você está familiarizado com os conceitos e a terminologia introdutórias na API Video Stitcher. Para mais informações, consulte a visão geral técnica.
Introdução
Por padrão, o manifesto de vídeo costurado vai conter as mesmas renderizações de mídia que o manifesto de vídeo de origem. O manifesto de origem pode conter várias renderizações de mídia que nem todos os players podem reproduzir. Por exemplo, um vídeo codificado pode conter codecs de vídeo H.264 e H.265, mas um player em um dispositivo pode reproduzir apenas o H.264.
Ao especificar quais codecs ou taxas de bits incluir no manifesto de vídeo, você pode especificar quais renderizações de vídeo serão geradas no manifesto de vídeo unido.
Opções de manifesto
O objeto ManifestOptions
oferece
algumas opções para personalizar o manifesto de vídeo costurado.
HLS
É possível personalizar o seguinte para manifestos de vídeo HLS unidos:
- Filtrar por codecs
- Incluir apenas alguns bitrates
- Ordenar as renderizações de vídeo
Para as próximas seções, considere o seguinte manifesto de vídeo de origem:
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=1920x1080,CODECS="avc1.42e00a,mp4a.40.2"
h264/fhd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2"
h264/sd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=240000,RESOLUTION=1280x720,CODECS="avc1.42e00a,mp4a.40.2"
h264/hd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=400000,RESOLUTION=1920x1080,CODECS="hvc1.1.4.L126.B0,mp4a.40.2"
h264/fhd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=100000,RESOLUTION=640x360,CODECS="hvc1.1.4.L126.B0,mp4a.40.2"
h264/sd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=200000,RESOLUTION=1280x720,CODECS="hvc1.1.4.L126.B0,mp4a.40.2"
h264/hd/index.m3u8
Filtrar por codecs
Para filtrar a renderização de vídeo por codecs, defina os codecs no campo
manifestOptions
opcional ao criar uma sessão. Por exemplo, para
exibir apenas H.264 no manifesto costurado, defina o codec no array
includeRenditions
:
{ "manifestOptions": { "includeRenditions": [ { "codecs": "avc1.42e00a,mp4a.40.2", }, ], }, }
O seguinte será mostrado no manifesto costurado:
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=1920x1080,CODECS="avc1.42e00a,mp4a.40.2"
h264/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2"
h264/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=240000,RESOLUTION=1280x720,CODECS="avc1.42e00a,mp4a.40.2"
h264/index.m3u8
Incluir apenas alguns bitrates
Para filtrar a renderização de vídeo por taxas de bits, defina as taxas de bits no campo
manifestOptions
opcional ao criar uma sessão. Por exemplo, para mostrar
apenas dois bitrates no manifesto costurado, defina os bitrates no array
includeRenditions
:
{ "manifestOptions": { "includeRenditions": [ { "bitrateBps": 150000, }, { "bitrateBps": 440000, }, ], }, }
O seguinte será mostrado no manifesto costurado:
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=1920x1080,CODECS="avc1.42e00a,mp4a.40.2"
h264/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2"
h264/index.m3u8
Ordenar por taxa de bits
Alguns players podem ser sensíveis à ordem das renderizações de vídeo. É possível
definir a ordem das renderizações de vídeo como ascending
ou descending
, como
neste exemplo:
{ "manifestOptions": { "bitrateOrder": "ascending", }, }
O seguinte será exibido no manifesto costurado:
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=100000,RESOLUTION=640x360,CODECS="hvc1.1.4.L126.B0,mp4a.40.2"
h264/sd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2"
h264/sd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=200000,RESOLUTION=1280x720,CODECS="hvc1.1.4.L126.B0,mp4a.40.2"
h264/hd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=240000,RESOLUTION=1280x720,CODECS="avc1.42e00a,mp4a.40.2"
h264/hd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=400000,RESOLUTION=1920x1080,CODECS="hvc1.1.4.L126.B0,mp4a.40.2"
h264/fhd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=1920x1080,CODECS="avc1.42e00a,mp4a.40.2"
h264/fhd/index.m3u8
DASH
É possível personalizar o seguinte para manifestos de vídeo DASH unidos:
- Filtrar por codecs
- Incluir apenas alguns bitrates
- Ordenar as renderizações de vídeo
Para as próximas seções, considere o seguinte manifesto de vídeo de origem:
<Period id="0" start="PT33160.000S">
<AdaptationSet segmentAlignment="true" maxWidth="1280" maxHeight="720">
<Representation mimeType="video/mp4" id="640x360-h264" codecs="avc1.64001E" width="640" height="360" startWithSAP="1" bandwidth="150000">
...
</Representation>
<Representation mimeType="video/mp4" id="1280x720-h264" codecs="avc1.64001E" width="1280" height="720" startWithSAP="1" bandwidth="240000">
...
</Representation>
<Representation mimeType="video/mp4" id="640x360-h265" codecs="hvc1.1.4.L126.B0" width="640" height="360" startWithSAP="1" bandwidth="100000">
...
</Representation>
<Representation mimeType="video/mp4" id="1280x720-h265" codecs="hvc1.1.4.L126.B0" width="1280" height="720" startWithSAP="1" bandwidth="200000">
...
</Representation>
</AdaptationSet>
<AdaptationSet segmentAlignment="true">
<Representation mimeType="audio/mp4" id="640x360-audio" codecs="mp4a.40.2" audioSamplingRate="44100" startWithSAP="1" bandwidth="48472">
...
</Representation>
<Representation mimeType="audio/mp4" id="1280x720-audio" codecs="mp4a.40.2" audioSamplingRate="44100" startWithSAP="1" bandwidth="48472">
...
</Representation>
</AdaptationSet>
</Period>
Filtrar por codecs
Para filtrar a renderização de vídeo por codecs, defina os codecs no campo
manifestOptions
opcional ao criar uma sessão. Por exemplo, para
exibir apenas H.264 no manifesto costurado, defina o codec no array
includeRenditions
:
{ "manifestOptions": { "includeRenditions": [ { "codecs": "hvc1.1.4.L126.B0", }, ], }, }
O seguinte será mostrado no manifesto costurado:
<Period id="0" start="PT33160.000S">
<AdaptationSet segmentAlignment="true" maxWidth="1280" maxHeight="720">
<Representation mimeType="video/mp4" id="640x360-h265" codecs="hvc1.1.4.L126.B0" width="640" height="360" startWithSAP="1" bandwidth="100000">
...
</Representation>
<Representation mimeType="video/mp4" id="1280x720-h265" codecs="hvc1.1.4.L126.B0" width="1280" height="720" startWithSAP="1" bandwidth="200000">
...
</Representation>
</AdaptationSet>
<AdaptationSet segmentAlignment="true">
<Representation mimeType="audio/mp4" id="640x360-audio" codecs="mp4a.40.2" audioSamplingRate="44100" startWithSAP="1" bandwidth="48472">
...
</Representation>
<Representation mimeType="audio/mp4" id="1280x720-audio" codecs="mp4a.40.2" audioSamplingRate="44100" startWithSAP="1" bandwidth="48472">
...
</Representation>
</AdaptationSet>
</Period>
Incluir determinadas taxas de bits
Para filtrar a renderização de vídeo por taxas de bits, defina as taxas de bits no campo
manifestOptions
opcional ao criar uma sessão. Por exemplo, para mostrar
apenas dois bitrates no manifesto costurado, defina os bitrates no array
includeRenditions
:
{ "manifestOptions": { "includeRenditions": [ { "bitrateBps": 150000, }, { "bitrateBps": 240000, }, ], }, }
O seguinte será mostrado no manifesto costurado:
<Period id="0" start="PT33160.000S">
<AdaptationSet segmentAlignment="true" maxWidth="1280" maxHeight="720">
<Representation mimeType="video/mp4" id="640x360-h264" codecs="avc1.64001E" width="640" height="360" startWithSAP="1" bandwidth="150000">
...
</Representation>
<Representation mimeType="video/mp4" id="1280x720-h264" codecs="avc1.64001E" width="1280" height="720" startWithSAP="1" bandwidth="240000">
...
</Representation>
</AdaptationSet>
<AdaptationSet segmentAlignment="true">
<Representation mimeType="audio/mp4" id="640x360-audio" codecs="mp4a.40.2" audioSamplingRate="44100" startWithSAP="1" bandwidth="48472">
...
</Representation>
<Representation mimeType="audio/mp4" id="1280x720-audio" codecs="mp4a.40.2" audioSamplingRate="44100" startWithSAP="1" bandwidth="48472">
...
</Representation>
</AdaptationSet>
</Period>
Ordenar por taxa de bits
Alguns players podem ser sensíveis à ordem das renderizações de vídeo. É possível
definir a ordem das renderizações de vídeo como ascending
ou descending
, como
neste exemplo:
{ "manifestOptions": { "bitrateOrder": "descending", }, }
O seguinte será mostrado no manifesto costurado:
<Period id="0" start="PT33160.000S">
<AdaptationSet segmentAlignment="true" maxWidth="1280" maxHeight="720">
<Representation mimeType="video/mp4" id="1280x720-h264" codecs="avc1.64001E" width="1280" height="720" startWithSAP="1" bandwidth="240000">
...
</Representation>
<Representation mimeType="video/mp4" id="1280x720-h265" codecs="hvc1.1.4.L126.B0" width="1280" height="720" startWithSAP="1" bandwidth="200000">
...
</Representation>
<Representation mimeType="video/mp4" id="640x360-h264" codecs="avc1.64001E" width="640" height="360" startWithSAP="1" bandwidth="150000">
...
</Representation>
<Representation mimeType="video/mp4" id="640x360-h265" codecs="hvc1.1.4.L126.B0" width="640" height="360" startWithSAP="1" bandwidth="100000">
...
</Representation>
</AdaptationSet>
<AdaptationSet segmentAlignment="true">
<Representation mimeType="audio/mp4" id="640x360-audio" codecs="mp4a.40.2" audioSamplingRate="44100" startWithSAP="1" bandwidth="48472">
...
</Representation>
<Representation mimeType="audio/mp4" id="1280x720-audio" codecs="mp4a.40.2" audioSamplingRate="44100" startWithSAP="1" bandwidth="48472">
...
</Representation>
</AdaptationSet>
</Period>