Este guia descreve a funcionalidade de opções de manifesto suportadas da API Video Stitcher. Isto permite-lhe personalizar o manifesto do vídeo editado. As opções do manifesto são configuradas no pedido de criação da sessão. Para mais informações, consulte o seguinte:
- Faça a gestão de uma sessão em direto
- Faça a gestão de uma sessão em direto ativada pelo Google Ad Manager
- Faça a gestão de uma sessão de VOD
- Faça a gestão de uma sessão de VOD ativada pelo Google Ad Manager
Antes de começar
Certifique-se de que conhece os conceitos introdutórios e a terminologia da API Video Stitcher. Para mais informações, consulte a vista geral técnica.
Introdução
Por predefinição, o manifesto do vídeo unido contém as mesmas representações multimédia que o manifesto do vídeo de origem. O manifesto de origem pode conter várias representações de multimédia que nem todos os leitores conseguem reproduzir. Por exemplo, um vídeo codificado pode conter codecs de vídeo H.264 e H.265, mas um leitor num dispositivo pode apenas conseguir reproduzir H.264.
Ao especificar os codecs ou as taxas de bits a incluir no manifesto de vídeo, pode especificar as representações de vídeo a gerar no manifesto de vídeo unidas.
Opções do manifesto
O objeto ManifestOptions
oferece-lhe algumas opções para personalizar o manifesto do vídeo unido.
HLS
Pode personalizar o seguinte para manifestos de vídeo HLS unidos:
- Filtre por codecs
- Inclua apenas determinadas resoluções de vídeo
- Incluir apenas determinadas velocidades de frames
- Incluir apenas determinadas taxas de bits
- Ordene as renderizações de vídeo
Para as secções seguintes, considere o seguinte manifesto de vídeo de origem:
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=1920x1080,CODECS="avc1.42e00a,mp4a.40.2,FRAME-RATE=25.000"
h264/fhd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2,FRAME-RATE=25.000"
h264/sd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=240000,RESOLUTION=1280x720,CODECS="avc1.42e00a,mp4a.40.2,FRAME-RATE=25.000"
h264/hd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=400000,RESOLUTION=1920x1080,CODECS="hvc1.1.4.L126.B0,mp4a.40.2,FRAME-RATE=50.000"
h265/fhd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=100000,RESOLUTION=640x360,CODECS="hvc1.1.4.L126.B0,mp4a.40.2,FRAME-RATE=50.000"
h265/sd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=200000,RESOLUTION=1280x720,CODECS="hvc1.1.4.L126.B0,mp4a.40.2,FRAME-RATE=50.000"
h265/hd/index.m3u8
Filtre por codecs
Para filtrar a renderização de vídeo por codecs, defina os codecs no campo manifestOptions
opcional quando criar uma sessão. Por exemplo, para apresentar apenas H.264 no manifesto unido, defina o codec na matriz includeRenditions
:
{ "manifestOptions": { "includeRenditions": [ { "codecs": "avc1.42e00a,mp4a.40.2", }, ], }, }
O seguinte é apresentado no manifesto unido:
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=1920x1080,CODECS="avc1.42e00a,mp4a.40.2,FRAME-RATE=25.000"
h264/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2,FRAME-RATE=25.000"
h264/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=240000,RESOLUTION=1280x720,CODECS="avc1.42e00a,mp4a.40.2,FRAME-RATE=25.000"
h264/index.m3u8
Inclua apenas determinadas resoluções de vídeo
Para filtrar a renderização de vídeo por resolução de vídeo, defina a resolução de vídeo no campo manifestOptions
opcional quando criar uma sessão. Por exemplo, para apresentar apenas as resoluções de vídeo 1920x1080
e 640x360
no manifesto sincronizado, defina as resoluções de vídeo na matriz includeRenditions
:
{ "manifestOptions": { "includeRenditions": [ { "videoResolution": { "widthPixels": 1920, "heightPixels": 1080, }, }, { "videoResolution": { "widthPixels": 640, "heightPixels": 360, }, }, ], }, }
O seguinte é apresentado no manifesto unido:
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=1920x1080,CODECS="avc1.42e00a,mp4a.40.2,FRAME-RATE=25.000"
h264/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2,FRAME-RATE=25.000"
h264/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=400000,RESOLUTION=1920x1080,CODECS="hvc1.1.4.L126.B0,mp4a.40.2,FRAME-RATE=50.000"
h265/fhd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=100000,RESOLUTION=640x360,CODECS="hvc1.1.4.L126.B0,mp4a.40.2,FRAME-RATE=50.000"
h265/sd/index.m3u8
Incluir apenas determinadas velocidades de frames
Para filtrar a renderização de vídeo por velocidades de frames, defina a velocidade de frames no campo manifestOptions
opcional quando criar uma sessão. Por exemplo, para apresentar apenas as taxas de fotogramas 25.0
no manifesto sincronizado, defina a taxa de fotogramas na matriz includeRenditions
:
{ "manifestOptions": { "includeRenditions": [ { "frameRate": 25.0 }, ], }, }
O seguinte é apresentado no manifesto unido:
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=1920x1080,CODECS="avc1.42e00a,mp4a.40.2,FRAME-RATE=25.000"
h264/fhd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2,FRAME-RATE=25.000"
h264/sd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=240000,RESOLUTION=1280x720,CODECS="avc1.42e00a,mp4a.40.2,FRAME-RATE=25.000"
h264/hd/index.m3u8
Incluir apenas 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 quando criar uma sessão. Por exemplo, para apresentar apenas duas taxas de bits no manifesto unidas, defina as taxas de bits na matriz includeRenditions
:
{ "manifestOptions": { "includeRenditions": [ { "bitrateBps": 150000, }, { "bitrateBps": 440000, }, ], }, }
O seguinte é apresentado no manifesto unido:
#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 velocidade de bits
Alguns leitores podem ser sensíveis à ordem das renderizações de vídeo. Pode
definir a ordem das renderizações de vídeo como ascending
ou descending
, como no
seguinte exemplo:
{ "manifestOptions": { "bitrateOrder": "ascending", }, }
O seguinte é apresentado no manifesto unido:
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=100000,RESOLUTION=640x360,CODECS="hvc1.1.4.L126.B0,mp4a.40.2,FRAME-RATE=50.000"
h265/sd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2,FRAME-RATE=25.000"
h264/sd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=200000,RESOLUTION=1280x720,CODECS="hvc1.1.4.L126.B0,mp4a.40.2,FRAME-RATE=50.000"
h265/hd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=240000,RESOLUTION=1280x720,CODECS="avc1.42e00a,mp4a.40.2,FRAME-RATE=25.000"
h264/hd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=400000,RESOLUTION=1920x1080,CODECS="hvc1.1.4.L126.B0,mp4a.40.2,FRAME-RATE=50.000"
h265/fhd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=1920x1080,CODECS="avc1.42e00a,mp4a.40.2,FRAME-RATE=25.000"
h264/fhd/index.m3u8
DASH
Pode personalizar o seguinte para manifestos de vídeo DASH unidos:
- Filtre por codecs
- Inclua apenas determinadas resoluções de vídeo
- Incluir apenas determinadas velocidades de frames
- Incluir apenas determinadas taxas de bits
- Ordene as renderizações de vídeo
Para as secções seguintes, 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" frameRate="25/1">
...
</Representation>
<Representation mimeType="video/mp4" id="1280x720-h264" codecs="avc1.64001E" width="1280" height="720" startWithSAP="1" bandwidth="240000" frameRate="25/1">
...
</Representation>
<Representation mimeType="video/mp4" id="640x360-h265" codecs="hvc1.1.4.L126.B0" width="640" height="360" startWithSAP="1" bandwidth="100000" frameRate="50/1">
...
</Representation>
<Representation mimeType="video/mp4" id="1280x720-h265" codecs="hvc1.1.4.L126.B0" width="1280" height="720" startWithSAP="1" bandwidth="200000" frameRate="50/1">
...
</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>
Filtre por codecs
Para filtrar a renderização de vídeo por codecs, defina os codecs no campo manifestOptions
opcional quando criar uma sessão. Por exemplo, para apresentar apenas H.264 no manifesto unido, defina o codec na matriz includeRenditions
:
{ "manifestOptions": { "includeRenditions": [ { "codecs": "hvc1.1.4.L126.B0", }, ], }, }
O seguinte é apresentado no manifesto unido:
<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" frameRate="50/1">
...
</Representation>
<Representation mimeType="video/mp4" id="1280x720-h265" codecs="hvc1.1.4.L126.B0" width="1280" height="720" startWithSAP="1" bandwidth="200000" frameRate="50/1">
...
</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>
Inclua apenas determinadas resoluções de vídeo
Para filtrar a renderização de vídeo por resolução de vídeo, defina a resolução de vídeo no campo manifestOptions
opcional quando criar uma sessão. Por exemplo, para apresentar apenas resoluções de vídeo 640x360
no manifesto sincronizado, defina a resolução de vídeo na matriz includeRenditions
:
{ "manifestOptions": { "includeRenditions": [ { "videoResolution": { "widthPixels": 640, "heightPixels": 360, }, }, ], }, }
O seguinte é apresentado no manifesto unido:
<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" frameRate="25/1">
...
</Representation>
<Representation mimeType="video/mp4" id="640x360-h265" codecs="hvc1.1.4.L126.B0" width="640" height="360" startWithSAP="1" bandwidth="100000" frameRate="50/1">
...
</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 apenas determinadas velocidades de frames
Para filtrar a renderização de vídeo por velocidades de frames, defina a velocidade de frames no campo manifestOptions
opcional quando criar uma sessão. Por exemplo, para apresentar apenas a velocidade de frames 25.0
no manifesto sincronizado, defina a velocidade de frames na matriz includeRenditions
:
{ "manifestOptions": { "includeRenditions": [ { "frameRate": 25.0 }, ], }, }
O seguinte é apresentado no manifesto unido:
<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" frameRate="25/1">
...
</Representation>
<Representation mimeType="video/mp4" id="1280x720-h264" codecs="avc1.64001E" width="1280" height="720" startWithSAP="1" bandwidth="240000" frameRate="25/1">
...
</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 quando criar uma sessão. Por exemplo, para apresentar apenas duas taxas de bits no manifesto unidas, defina as taxas de bits na matriz includeRenditions
:
{ "manifestOptions": { "includeRenditions": [ { "bitrateBps": 150000, }, { "bitrateBps": 240000, }, ], }, }
O seguinte é apresentado no manifesto unido:
<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" frameRate="25/1">
...
</Representation>
<Representation mimeType="video/mp4" id="1280x720-h264" codecs="avc1.64001E" width="1280" height="720" startWithSAP="1" bandwidth="240000" frameRate="25/1">
...
</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 velocidade de bits
Alguns leitores podem ser sensíveis à ordem das renderizações de vídeo. Pode
definir a ordem das renderizações de vídeo como ascending
ou descending
, como no
seguinte exemplo:
{ "manifestOptions": { "bitrateOrder": "descending", }, }
O seguinte é apresentado no manifesto unido:
<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" frameRate="25/1">
...
</Representation>
<Representation mimeType="video/mp4" id="1280x720-h265" codecs="hvc1.1.4.L126.B0" width="1280" height="720" startWithSAP="1" bandwidth="200000" frameRate="50/1">
...
</Representation>
<Representation mimeType="video/mp4" id="640x360-h264" codecs="avc1.64001E" width="640" height="360" startWithSAP="1" bandwidth="150000" frameRate="25/1">
...
</Representation>
<Representation mimeType="video/mp4" id="640x360-h265" codecs="hvc1.1.4.L126.B0" width="640" height="360" startWithSAP="1" bandwidth="100000" frameRate="50/1">
...
</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>