In diesem Leitfaden werden die unterstützten Manifestoptionen der Video Stitcher API beschrieben. So kannst du das Manifest des zusammengefügten Videos anpassen. Die Manifestoptionen werden in der Anfrage zur Sitzungserstellung konfiguriert. Weitere Informationen nachstehend:
- Livesitzung verwalten
- Live-Sitzungen verwalten, die über Google Ad Manager aktiviert wurden
- VOD-Sitzung verwalten
- Eine von Google Ad Manager aktivierte VOD-Sitzung verwalten
Hinweise
Sie müssen mit den einführenden Konzepten und der Terminologie der Video Stitcher API vertraut sein. Weitere Informationen finden Sie in der technischen Übersicht.
Einleitung
Standardmäßig enthält das zusammengeführte Videomanifest dieselben Medienwiedergaben wie das Quellvideomanifest. Das Quellmanifest kann mehrere Mediendarstellungen enthalten, die nicht alle Player abspielen können. Ein codiertes Video kann beispielsweise sowohl H.264- als auch H.265-Videocodecs enthalten, ein Player auf einem Gerät kann aber möglicherweise nur H.264 wiedergeben.
Wenn du angibtst, welche Codecs oder Bitraten im Videomanifest enthalten sein sollen, kannst du festlegen, welche Videowiedergabeformen im zusammengefügten Videomanifest ausgegeben werden sollen.
Manifestoptionen
Mit dem Objekt ManifestOptions
hast du einige Möglichkeiten, das Manifest des zusammengefügten Videos anzupassen.
HLS
Für zusammengeführte HLS-Videomanifeste kannst du Folgendes anpassen:
- Nach Codecs filtern
- Nur bestimmte Bitrate einschließen
- Videowiedergabevarianten bestellen
Für die folgenden Abschnitte wird das folgende Manifest für das Quellvideo angenommen:
#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
Nach Codecs filtern
Wenn du die Videowiedergabe nach Codecs filtern möchtest, musst du beim Erstellen einer Sitzung die Codecs im optionalen Feld manifestOptions
festlegen. Wenn du beispielsweise nur H.264 im zusammengeführten Manifest anzeigen möchtest, lege den Codec im includeRenditions
-Array fest:
{ "manifestOptions": { "includeRenditions": [ { "codecs": "avc1.42e00a,mp4a.40.2", }, ], }, }
Im zusammengeführten Manifest wird Folgendes angezeigt:
#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
Nur bestimmte Bitrate einschließen
Wenn du die Videowiedergabe nach Bitrate filtern möchtest, lege die Bitrate beim Erstellen einer Sitzung im optionalen Feld manifestOptions
fest. Wenn du beispielsweise nur zwei Bitrate im zusammengefügten Manifest anzeigen möchtest, lege die Bitrate im includeRenditions
-Array fest:
{ "manifestOptions": { "includeRenditions": [ { "bitrateBps": 150000, }, { "bitrateBps": 440000, }, ], }, }
Im zusammengeführten Manifest wird Folgendes angezeigt:
#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
Nach Bitrate sortieren
Einige Player sind möglicherweise empfindlich gegenüber der Reihenfolge der Videowiedergabe. Du kannst die Reihenfolge der Videowiedergabe auf ascending
oder descending
festlegen, wie hier:
{ "manifestOptions": { "bitrateOrder": "ascending", }, }
Im zusammengeführten Manifest wird Folgendes angezeigt:
#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
Für zusammengeführte DASH-Videomanifeste kannst du Folgendes anpassen:
- Nach Codecs filtern
- Nur bestimmte Bitrate einschließen
- Videowiedergabevarianten bestellen
Für die folgenden Abschnitte wird das folgende Manifest für das Quellvideo angenommen:
<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>
Nach Codecs filtern
Wenn du die Videowiedergabe nach Codecs filtern möchtest, musst du beim Erstellen einer Sitzung die Codecs im optionalen Feld manifestOptions
festlegen. Wenn du beispielsweise nur H.264 im zusammengeführten Manifest anzeigen möchtest, lege den Codec im includeRenditions
-Array fest:
{ "manifestOptions": { "includeRenditions": [ { "codecs": "hvc1.1.4.L126.B0", }, ], }, }
Im zusammengeführten Manifest wird Folgendes angezeigt:
<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>
Bestimmte Bitraten einschließen
Wenn du die Videowiedergabe nach Bitrate filtern möchtest, lege die Bitrate beim Erstellen einer Sitzung im optionalen Feld manifestOptions
fest. Wenn du beispielsweise nur zwei Bitrate im zusammengefügten Manifest anzeigen möchtest, lege die Bitrate im includeRenditions
-Array fest:
{ "manifestOptions": { "includeRenditions": [ { "bitrateBps": 150000, }, { "bitrateBps": 240000, }, ], }, }
Im zusammengeführten Manifest wird Folgendes angezeigt:
<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>
Nach Bitrate sortieren
Einige Player sind möglicherweise empfindlich gegenüber der Reihenfolge der Videowiedergabe. Du kannst die Reihenfolge der Videowiedergabe auf ascending
oder descending
festlegen, wie hier:
{ "manifestOptions": { "bitrateOrder": "descending", }, }
Im zusammengeführten Manifest wird Folgendes angezeigt:
<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>