Auf dieser Seite finden Sie einige Konfigurationsbeispiele fรผr die Codierung einer Eingabemediendatei (d. h. ein ElementaryStream
).
Videostream
VideoStream
-Properties haben keine Abhรคngigkeiten. Sie kรถnnen Attribute wie Auflรถsung (Hรถhe und Breite), Bitrate und Framerate unabhรคngig festlegen.
{
"videoStream": {
"h264": {
"profile": "high",
"preset": "veryfast",
"heightPixels": 360,
"widthPixels": 640,
"pixelFormat": "yuv420p",
"bitrateBps": 550000,
"rateControlMode": "vbr",
"crfLevel": 21,
"vbvSizeBits": 550000,
"vbvFullnessBits": 495000,
"gopDuration": "3s",
"entropyCoder": "cabac",
"bFrameCount": 3,
"frameRate": 30,
"aqStrength": 1
}
},
"key": "video-stream0"
}
Audiostream
Bestimmte AudioStream
-Attribute sind unterschiedlich. Der Attributwert channelCount
muss der Anzahl der Layouts im Array channelLayout
entsprechen. Dieser Wert muss auch der Anzahl der Kanรคle in einem zugewiesenen Eingabestream entsprechen.
Einfacher Audiostream
Das folgende Beispiel zeigt einen nicht zugeordneten Audiostream ohne Ton.
{
"audioStream": {
"codec": "aac",
"bitrateBps": 64000,
"channelCount": 2,
"channelLayout": [
"fl",
"fr"
],
"sampleRateHertz": 48000,
"languageCode": "en-US",
"displayName": "English"
},
"key": "audio-stream0"
}
Audiostream mit Zuordnung
Im Folgenden finden Sie ein Beispiel fรผr einen mit Audio verknรผpften Audiostream. Die Ausgabe-Stereo-AudioStream
besteht aus den folgenden Eingaben:
- Track 1
- Kanal 0
- Track 1
- Kanal 1
Der Attributwert channelCount
muss der Anzahl der unter mapping
definierten Objekte entsprechen, die jeweils einen eigenen outputChannel
haben.
{
"key": "audio-stream0",
"audioStream": {
"codec": "aac",
"bitrateBps": 64000,
"channelCount": 2,
"channelLayout": [
"fl",
"fr"
],
"sampleRateHertz": 48000,
"languageCode": "en-US",
"displayName": "English",
"mapping": [
{
"atomKey": "atom0",
"inputKey": "video_and_stereo_audio",
"inputTrack": 1,
"inputChannel": 0,
"outputChannel": 0,
"gainDb": 0
},
{
"atomKey": "atom0",
"inputKey": "video_and_stereo_audio",
"inputTrack": 1,
"inputChannel": 1,
"outputChannel": 1,
"gainDb": 0
}
]
}
}
Audiostream mit Mischpult
Im Folgenden finden Sie ein Beispiel fรผr einen gemischten Audiostream. Die Ausgabe-Stereo-AudioStream
besteht aus den folgenden Eingaben:
- Track 2
- Kanal 0
- Kanal 2
- Kanal 4
- Track 2
- Kanal 1
- Kanal 3
- Kanal 5
{
"key": "audio-stream0",
"audioStream": {
"codec": "aac",
"bitrateBps": 128000,
"channelCount": 2,
"mapping": [
{
"atomKey": "atom0",
"inputKey": "video_and_stereo_audio",
"inputTrack": 2,
"inputChannel": 0,
"outputChannel": 0,
"gainDb": 0
},
{
"atomKey": "atom0",
"inputKey": "video_and_stereo_audio",
"inputTrack": 2,
"inputChannel": 2,
"outputChannel": 0,
"gainDb": 0
},
{
"atomKey": "atom0",
"inputKey": "video_and_stereo_audio",
"inputTrack": 2,
"inputChannel": 4,
"outputChannel": 0,
"gainDb": 0
},
{
"atomKey": "atom0",
"inputKey": "video_and_stereo_audio",
"inputTrack": 2,
"inputChannel": 1,
"outputChannel": 1,
"gainDb": 0
},
{
"atomKey": "atom0",
"inputKey": "video_and_stereo_audio",
"inputTrack": 2,
"inputChannel": 3,
"outputChannel": 1,
"gainDb": 0
},
{
"atomKey": "atom0",
"inputKey": "video_and_stereo_audio",
"inputTrack": 2,
"inputChannel": 5,
"outputChannel": 1,
"gainDb": 0
}
],
"sampleRateHertz": 44100
}
}
Mehrsprachige Audiostreams aus einer einzigen Datei
Im Folgenden findest du ein Beispiel fรผr die Konfiguration einer einzelnen Eingabevideodatei mit Video und mehreren Audiotracks in verschiedenen Sprachen. Mit dem mapping[]
-Objekt werden mehrere Audiostreams erstellt, einer pro Sprache. Das Video und jeder Audiostream sind sowohl im HLS- als auch im DASH-Manifest enthalten.
{
"outputUri": "gs://STORAGE_BUCKET_NAME/",
"config": {
"inputs": [
{
"key": "input0",
"uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO"
}
],
"editList": [
{
"key": "atom0",
"inputs": [
"input0"
],
"startTimeOffset": "0s"
}
],
"elementaryStreams": [
{
"key": "video-stream0",
"videoStream": {
"h264": {
"widthPixels": 640,
"heightPixels": 360,
"frameRate": 30,
"bitrateBps": 500000
}
}
},
{
"key": "audio-stream0",
"audioStream": {
"codec": "aac",
"bitrateBps": 64000,
"channelCount": 2,
"channelLayout": [
"fl",
"fr"
],
"mapping": [
{
"atomKey": "atom0",
"inputKey": "input0",
"inputTrack": 1,
"inputChannel": 0,
"outputChannel": 0
},
{
"atomKey": "atom0",
"inputKey": "input0",
"inputTrack": 1,
"inputChannel": 1,
"outputChannel": 1
}
],
"sampleRateHertz": 48000,
"languageCode": "en-US",
"displayName": "English"
}
},
{
"key": "audio-stream1",
"audioStream": {
"codec": "aac",
"bitrateBps": 64000,
"channelCount": 2,
"channelLayout": [
"fl",
"fr"
],
"mapping": [
{
"atomKey": "atom0",
"inputKey": "input0",
"inputTrack": 2,
"inputChannel": 0,
"outputChannel": 0
},
{
"atomKey": "atom0",
"inputKey": "input0",
"inputTrack": 2,
"inputChannel": 1,
"outputChannel": 1
}
],
"sampleRateHertz": 48000,
"languageCode": "es-ES",
"displayName": "Spanish"
}
},
{
"key": "audio-stream2",
"audioStream": {
"codec": "aac",
"bitrateBps": 64000,
"channelCount": 2,
"channelLayout": [
"fl",
"fr"
],
"mapping": [
{
"atomKey": "atom0",
"inputKey": "input0",
"inputTrack": 3,
"inputChannel": 0,
"outputChannel": 0
},
{
"atomKey": "atom0",
"inputKey": "input0",
"inputTrack": 3,
"inputChannel": 1,
"outputChannel": 1
}
],
"sampleRateHertz": 48000,
"languageCode": "fr-Fr",
"displayName": "French"
}
}
],
"muxStreams": [
{
"key": "sd",
"container": "fmp4",
"elementaryStreams": [
"video-stream0"
]
},
{
"key": "audio-0",
"container": "fmp4",
"elementaryStreams": [
"audio-stream0"
]
},
{
"key": "audio-1",
"container": "fmp4",
"elementaryStreams": [
"audio-stream1"
]
},
{
"key": "audio-2",
"container": "fmp4",
"elementaryStreams": [
"audio-stream2"
]
}
],
"manifests": [
{
"fileName": "manifest.m3u8",
"type": "HLS",
"muxStreams": [
"sd",
"audio-0",
"audio-1",
"audio-2"
]
},
{
"fileName": "manifest.mpd",
"type": "DASH",
"muxStreams": [
"sd",
"audio-0",
"audio-1",
"audio-2"
]
}
]
}
}
Mehrsprachige Audiostreams aus mehreren Audiodateien
Im Folgenden findest du ein Beispiel fรผr die Konfiguration einer Eingabevideodatei, die Video und nur einen Audiotrack in der Standardsprache enthรคlt. Auรerdem werden zwei separate Eingabe-Audiodateien verwendet, eine pro Sprache. Mit dem mapping[]
-Objekt werden mehrere Audiostreams erstellt, einer pro Sprache. Das Video und jeder Audiostream sind sowohl im HLS- als auch im DASH-Manifest enthalten.
{
"outputUri": "gs://STORAGE_BUCKET_NAME/",
"config": {
"inputs": [
{
"key": "input0",
"uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO"
},
{
"key": "input1",
"uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_AUDIO1"
},
{
"key": "input2",
"uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_AUDIO2"
}
],
"editList": [
{
"key": "atom0",
"inputs": [
"input0",
"input1",
"input2"
],
"startTimeOffset": "0s"
}
],
"elementaryStreams": [
{
"key": "video-stream0",
"videoStream": {
"h264": {
"widthPixels": 640,
"heightPixels": 360,
"frameRate": 30,
"bitrateBps": 500000
}
}
},
{
"key": "audio-stream0",
"audioStream": {
"codec": "aac",
"bitrateBps": 64000,
"channelCount": 2,
"channelLayout": [
"fl",
"fr"
],
"mapping": [
{
"atomKey": "atom0",
"inputKey": "input0",
"inputTrack": 1,
"inputChannel": 0,
"outputChannel": 0
},
{
"atomKey": "atom0",
"inputKey": "input0",
"inputTrack": 1,
"inputChannel": 1,
"outputChannel": 1
}
],
"sampleRateHertz": 48000,
"languageCode": "en-US",
"displayName": "English"
}
},
{
"key": "audio-stream1",
"audioStream": {
"codec": "aac",
"bitrateBps": 64000,
"channelCount": 2,
"channelLayout": [
"fl",
"fr"
],
"mapping": [
{
"atomKey": "atom0",
"inputKey": "input1",
"inputTrack": 0,
"inputChannel": 0,
"outputChannel": 0
},
{
"atomKey": "atom0",
"inputKey": "input1",
"inputTrack": 0,
"inputChannel": 1,
"outputChannel": 1
}
],
"sampleRateHertz": 48000,
"languageCode": "es-ES",
"displayName": "Spanish"
}
},
{
"key": "audio-stream2",
"audioStream": {
"codec": "aac",
"bitrateBps": 64000,
"channelCount": 2,
"channelLayout": [
"fl",
"fr"
],
"mapping": [
{
"atomKey": "atom0",
"inputKey": "input2",
"inputTrack": 0,
"inputChannel": 0,
"outputChannel": 0
},
{
"atomKey": "atom0",
"inputKey": "input2",
"inputTrack": 0,
"inputChannel": 1,
"outputChannel": 1
}
],
"sampleRateHertz": 48000,
"languageCode": "fr-Fr",
"displayName": "French"
}
}
],
"muxStreams": [
{
"key": "sd",
"container": "fmp4",
"elementaryStreams": [
"video-stream0"
]
},
{
"key": "audio-0",
"container": "fmp4",
"elementaryStreams": [
"audio-stream0"
]
},
{
"key": "audio-1",
"container": "fmp4",
"elementaryStreams": [
"audio-stream1"
]
},
{
"key": "audio-2",
"container": "fmp4",
"elementaryStreams": [
"audio-stream2"
]
}
],
"manifests": [
{
"fileName": "manifest.m3u8",
"type": "HLS",
"muxStreams": [
"sd",
"audio-0",
"audio-1",
"audio-2"
]
},
{
"fileName": "manifest.mpd",
"type": "DASH",
"muxStreams": [
"sd",
"audio-0",
"audio-1",
"audio-2"
]
}
]
}
}
Textstream
TextStream
-Properties haben keine Abhรคngigkeiten. Sie kรถnnen Attribute unabhรคngig festlegen.
In Textstreams kann eine Bearbeitungsliste verwendet werden, um die Ausgabedatei zu รคndern. In den folgenden Abschnitten wird die Verwendung der Bearbeitungsliste zum Bereitstellen von Untertiteln erlรคutert.
Das folgende Beispiel zeigt einen Textstream mit einem Atom in der Bearbeitungsliste.
{
"editList":[
{
"key":"atom0",
"inputs":[
"video_input0",
"caption_input0"
],
"startTimeOffset":"0s",
"endTimeOffset":"300s"
}
],
"elementaryStreams":[
{
"key": "cea-stream0",
"textStream": {
"codec": "cea708",
"languageCode": "en-US",
"displayName": "English",
"mapping": [
{
"atomKey": "atom0",
"inputKey": "caption_input0",
"inputTrack": 0
}
]
}
}
]
}
Das folgende Beispiel zeigt einen Textstream mit zwei Atomen in der Bearbeitungsliste.
{
"editList":[
{
"key":"atom0",
"inputs":[
"video_input0",
"caption_input0"
],
"startTimeOffset":"0s",
"endTimeOffset":"300s"
},
{
"key":"atom1",
"inputs":[
"video_input1",
"caption_input1"
],
"startTimeOffset":"0s",
"endTimeOffset":"300s"
}
],
"elementaryStreams":[
{
"key": "cea-stream0",
"textStream": {
"codec": "cea708",
"languageCode": "en-US",
"displayName": "English",
"mapping": [
{
"atomKey": "atom0",
"inputKey": "caption_input0",
"inputTrack": 0
},
{
"atomKey": "atom1",
"inputKey": "caption_input1",
"inputTrack": 0
}
]
}
}
]
}
Erweitert
In den folgenden Abschnitten werden verschiedene erweiterte Konfigurationen beschrieben.
Nur Audioausgabe
Bei der folgenden Konfiguration werden MP4- und TS-Dateien nur mit Audio ausgegeben.
{
"config": {
"inputs": [
{
"key": "input0",
"uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO"
}
],
"elementaryStreams": [
{
"key": "audio-stream0",
"audioStream": {
"codec": "aac",
"bitrateBps": 64000,
"languageCode": "en-US",
"displayName": "English"
}
}
],
"muxStreams": [
{
"key": "audio-only-ts",
"fileName": "audio-only.ts",
"container": "ts",
"elementaryStreams": [
"audio-stream0"
]
},
{
"key": "audio-only-mp4",
"fileName": "audio-only.mp4",
"container": "mp4",
"elementaryStreams": [
"audio-stream0"
]
}
],
"manifests": [
{
"fileName": "manifest.m3u8",
"type": "HLS",
"muxStreams": [
"audio-only-ts"
]
}
],
"output": {
"uri": "gs://STORAGE_BUCKET_NAME/STORAGE_OUTPUT_FOLDER/"
}
}
}
MuxStream und fmp4
Ein MuxStream
, der den fmp4-Container verwendet, kann nur einen einzigen ElementaryStream
enthalten.
Verwenden Sie fรผr diesen Container zwei MuxStreams
: eine fรผr Audio und eine fรผr Videos:
"muxStreams":[
{
"key": "hd3-video",
"container": "fmp4",
"elementaryStreams":["video-stream1"]
},
{
"key": "hd3-audio",
"container": "fmp4",
"elementaryStreams":["audio-stream1"]
}
],
Streams in mehreren Manifesten wiederverwenden
Die folgende Beispielkonfiguration zeigt zwei Video- und eine Audiocodierung, die sowohl in HLS- als auch in DASH-Manifesten verwendet werden:
{
"config": {
"inputs": [
{
"key": "input0",
"uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO"
}
],
"elementaryStreams": [
{
"videoStream": {
"h264": {
"heightPixels": 360,
"widthPixels": 640,
"bitrateBps": 500000,
"frameRate": 30
}
},
"key": "video-stream0"
},
{
"videoStream": {
"h264": {
"heightPixels": 720,
"widthPixels": 1280,
"bitrateBps": 3200000,
"frameRate": 30
}
},
"key": "video-stream1"
},
{
"audioStream": {
"codec": "aac",
"bitrateBps": 64000,
"sampleRateHertz": 48000
},
"key": "audio-stream0"
}
],
"muxStreams": [
{
"key": "video-only-sd",
"container": "fmp4",
"elementaryStreams": [
"video-stream0"
]
},
{
"key": "video-only-hd",
"container": "fmp4",
"elementaryStreams": [
"video-stream1"
]
},
{
"key": "audio-only",
"container": "fmp4",
"elementaryStreams": [
"audio-stream0"
]
}
],
"manifests": [
{
"fileName": "manifest.m3u8",
"type": "HLS",
"muxStreams": [
"video-only-sd",
"video-only-hd",
"audio-only"
]
},
{
"fileName": "manifest.mpd",
"type": "DASH",
"muxStreams": [
"video-only-sd",
"video-only-hd",
"audio-only"
]
}
],
"output": {
"uri": "gs://STORAGE_BUCKET_NAME/STORAGE_OUTPUT_FOLDER/"
}
}
}
Empfohlene Einstellungen fรผr die Transcodierung mehrerer Profile
Fรผge fรผr die Ausgabeauflรถsung und -bitrate je nach Eingabeauflรถsung/-Framerate (50/60 fps) den Schritt mit der hรถheren Framerate fรผr 50/60 fps hinzu, falls zutreffend. Hinweis: Das Hinzufรผgen zusรคtzlicher Schritte erfordert mehr Rechenleistung. Die folgende Leiter wird empfohlen:
Auflรถsung (ScanMode)/Framerate | H.264-Hochprofil-Bitrate (Kbit/s) |
---|---|
170x96 p12/15 | 130 |
256 ร 144 p25/30 | 240 |
416 ร 234 p25/30 | 300 |
640 ร 360 p25/30 | 400 |
768 ร 432 p25/30 | 750 |
768 ร 432 p25/30 | 1.100 |
960 ร 540 p25/30 | 2200 |
1280 ร 720 p25/30 | 3300 |
1280 ร 720 p50/60 | 5500 |
1920 ร 1080 p25/30 | 6000 |
1920 ร 1080 p50/60 | 9000 |
Bei Audio basieren die Empfehlungen auf der Anzahl der Kanรคle:
Kanรคle | AAC-Bitrate (kbit/s) |
---|---|
2,0 | 64 |
2,0 | 160 |
5.1 | 384 |
Mit dieser Ausgabeleiter kannst du eine Konfiguration erstellen, die HLS- und MPEG-DASH-Manifeste mit verschiedenen Kombinationen ausgibt:
{
"config": {
"inputs": [
{
"key": "input0",
"uri": "gs://my-bucket/input0.mp4"
}
],
"elementaryStreams": [
{
"key": "video-stream0",
"videoStream": {
"h264": {
"heightPixels": 96,
"widthPixels": 170,
"bitrateBps": 130000,
"frameRate": 15,
"gopDuration": "4.0s",
"pixelFormat": "yuv420p",
"rateControlMode": "crf",
"crfLevel": 10,
"bFrameCount": 3,
"profile": "high",
"enableTwoPass": true,
"preset": "medium"
}
}
},
{
"key": "video-stream1",
"videoStream": {
"h264": {
"heightPixels": 144,
"widthPixels": 256,
"bitrateBps": 240000,
"frameRate": 30,
"gopDuration": "4.0s",
"pixelFormat": "yuv420p",
"rateControlMode": "crf",
"crfLevel": 10,
"bFrameCount": 3,
"profile": "high",
"enableTwoPass": true,
"preset": "medium"
}
}
},
{
"key": "video-stream2",
"videoStream": {
"h264": {
"heightPixels": 234,
"widthPixels": 416,
"bitrateBps": 300000,
"frameRate": 30,
"gopDuration": "4.0s",
"pixelFormat": "yuv420p",
"rateControlMode": "crf",
"crfLevel": 10,
"bFrameCount": 3,
"profile": "high",
"enableTwoPass": true,
"preset": "medium"
}
}
},
{
"key": "video-stream3",
"videoStream": {
"h264": {
"heightPixels": 360,
"widthPixels": 640,
"bitrateBps": 400000,
"frameRate": 30,
"gopDuration": "4.0s",
"pixelFormat": "yuv420p",
"rateControlMode": "crf",
"crfLevel": 10,
"bFrameCount": 3,
"profile": "high",
"enableTwoPass": true,
"preset": "medium"
}
}
},
{
"key": "video-stream4",
"videoStream": {
"h264": {
"heightPixels": 432,
"widthPixels": 768,
"bitrateBps": 1100000,
"frameRate": 30,
"gopDuration": "4.0s",
"pixelFormat": "yuv420p",
"rateControlMode": "crf",
"crfLevel": 10,
"bFrameCount": 3,
"profile": "high",
"enableTwoPass": true,
"preset": "medium"
}
}
},
{
"key": "video-stream5",
"videoStream": {
"h264": {
"heightPixels": 540,
"widthPixels": 960,
"bitrateBps": 2200000,
"frameRate": 30,
"gopDuration": "4.0s",
"pixelFormat": "yuv420p",
"rateControlMode": "crf",
"crfLevel": 10,
"bFrameCount": 3,
"profile": "high",
"enableTwoPass": true,
"preset": "medium"
}
}
},
{
"key": "video-stream6",
"videoStream": {
"h264": {
"heightPixels": 720,
"widthPixels": 1280,
"bitrateBps": 3300000,
"frameRate": 30,
"gopDuration": "4.0s",
"pixelFormat": "yuv420p",
"rateControlMode": "crf",
"crfLevel": 10,
"bFrameCount": 3,
"profile": "high",
"enableTwoPass": true,
"preset": "medium"
}
}
},
{
"key": "video-stream7",
"videoStream": {
"h264": {
"heightPixels": 720,
"widthPixels": 1280,
"bitrateBps": 5500000,
"frameRate": 60,
"gopDuration": "4.0s",
"pixelFormat": "yuv420p",
"rateControlMode": "crf",
"crfLevel": 10,
"bFrameCount": 6,
"profile": "high",
"enableTwoPass": true,
"preset": "medium"
}
}
},
{
"key": "video-stream8",
"videoStream": {
"h264": {
"heightPixels": 1080,
"widthPixels": 1920,
"bitrateBps": 6000000,
"frameRate": 30,
"gopDuration": "4.0s",
"pixelFormat": "yuv420p",
"rateControlMode": "crf",
"crfLevel": 10,
"bFrameCount": 3,
"profile": "high",
"enableTwoPass": true,
"preset": "medium"
}
}
},
{
"key": "video-stream9",
"videoStream": {
"h264": {
"heightPixels": 1080,
"widthPixels": 1920,
"bitrateBps": 9000000,
"frameRate": 60,
"gopDuration": "4.0s",
"pixelFormat": "yuv420p",
"rateControlMode": "crf",
"crfLevel": 10,
"bFrameCount": 6,
"profile": "high",
"enableTwoPass": true,
"preset": "medium"
}
}
},
{
"key": "audio-stream0",
"audioStream": {
"codec": "aac",
"bitrateBps": 32000
}
},
{
"key": "audio-stream1",
"audioStream": {
"codec": "aac",
"bitrateBps": 64000
}
},
{
"key": "audio-stream2",
"audioStream": {
"codec": "aac",
"bitrateBps": 96000
}
},
{
"key": "audio-stream3",
"audioStream": {
"codec": "aac",
"bitrateBps": 128000
}
},
{
"key": "audio-stream4",
"audioStream": {
"codec": "aac-he",
"bitrateBps": 160000
}
},
{
"key": "audio-stream5",
"audioStream": {
"codec": "aac-he-v2",
"bitrateBps": 384000
}
}
],
"muxStreams": [
{
"key": "1",
"container": "ts",
"elementaryStreams": [
"video-stream0",
"audio-stream0"
],
"segmentSettings": {
"segmentDuration": "4.0s",
"individualSegments": true
}
},
{
"key": "2",
"container": "ts",
"elementaryStreams": [
"video-stream1",
"audio-stream0"
],
"segmentSettings": {
"segmentDuration": "4.0s",
"individualSegments": true
}
},
{
"key": "3",
"container": "ts",
"elementaryStreams": [
"video-stream2",
"audio-stream1"
],
"segmentSettings": {
"segmentDuration": "4.0s",
"individualSegments": true
}
},
{
"key": "4",
"container": "ts",
"elementaryStreams": [
"video-stream3",
"audio-stream1"
],
"segmentSettings": {
"segmentDuration": "4.0s",
"individualSegments": true
}
},
{
"key": "5",
"container": "ts",
"elementaryStreams": [
"video-stream4",
"audio-stream2"
],
"segmentSettings": {
"segmentDuration": "4.0s",
"individualSegments": true
}
},
{
"key": "6",
"container": "ts",
"elementaryStreams": [
"video-stream5",
"audio-stream3"
],
"segmentSettings": {
"segmentDuration": "4.0s",
"individualSegments": true
}
},
{
"key": "7",
"container": "ts",
"elementaryStreams": [
"video-stream6",
"audio-stream3"
],
"segmentSettings": {
"segmentDuration": "4.0s",
"individualSegments": true
}
},
{
"key": "8",
"container": "ts",
"elementaryStreams": [
"video-stream7",
"audio-stream4"
],
"segmentSettings": {
"segmentDuration": "4.0s",
"individualSegments": true
}
},
{
"key": "9",
"container": "ts",
"elementaryStreams": [
"video-stream8",
"audio-stream4"
],
"segmentSettings": {
"segmentDuration": "4.0s",
"individualSegments": true
}
},
{
"key": "10",
"container": "ts",
"elementaryStreams": [
"video-stream9",
"audio-stream5"
],
"segmentSettings": {
"segmentDuration": "4.0s",
"individualSegments": true
}
},
{
"key": "video-1",
"container": "fmp4",
"elementaryStreams": [
"video-stream0"
],
"segmentSettings": {
"segmentDuration": "4.0s",
"individualSegments": true
}
},
{
"key": "video-2",
"container": "fmp4",
"elementaryStreams": [
"video-stream1"
],
"segmentSettings": {
"segmentDuration": "4.0s",
"individualSegments": true
}
},
{
"key": "video-3",
"container": "fmp4",
"elementaryStreams": [
"video-stream2"
],
"segmentSettings": {
"segmentDuration": "4.0s",
"individualSegments": true
}
},
{
"key": "video-4",
"container": "fmp4",
"elementaryStreams": [
"video-stream3"
],
"segmentSettings": {
"segmentDuration": "4.0s",
"individualSegments": true
}
},
{
"key": "video-5",
"container": "fmp4",
"elementaryStreams": [
"video-stream4"
],
"segmentSettings": {
"segmentDuration": "4.0s",
"individualSegments": true
}
},
{
"key": "video-6",
"container": "fmp4",
"elementaryStreams": [
"video-stream5"
],
"segmentSettings": {
"segmentDuration": "4.0s",
"individualSegments": true
}
},
{
"key": "video-7",
"container": "fmp4",
"elementaryStreams": [
"video-stream6"
],
"segmentSettings": {
"segmentDuration": "4.0s",
"individualSegments": true
}
},
{
"key": "video-8",
"container": "fmp4",
"elementaryStreams": [
"video-stream7"
],
"segmentSettings": {
"segmentDuration": "4.0s",
"individualSegments": true
}
},
{
"key": "video-9",
"container": "fmp4",
"elementaryStreams": [
"video-stream8"
],
"segmentSettings": {
"segmentDuration": "4.0s",
"individualSegments": true
}
},
{
"key": "video-10",
"container": "fmp4",
"elementaryStreams": [
"video-stream9"
],
"segmentSettings": {
"segmentDuration": "4.0s",
"individualSegments": true
}
},
{
"key": "audio-1",
"container": "fmp4",
"elementaryStreams": [
"audio-stream0"
],
"segmentSettings": {
"segmentDuration": "4.0s",
"individualSegments": true
}
},
{
"key": "audio-2",
"container": "fmp4",
"elementaryStreams": [
"audio-stream1"
],
"segmentSettings": {
"segmentDuration": "4.0s",
"individualSegments": true
}
},
{
"key": "audio-3",
"container": "fmp4",
"elementaryStreams": [
"audio-stream2"
],
"segmentSettings": {
"segmentDuration": "4.0s",
"individualSegments": true
}
},
{
"key": "audio-4",
"container": "fmp4",
"elementaryStreams": [
"audio-stream3"
],
"segmentSettings": {
"segmentDuration": "4.0s",
"individualSegments": true
}
},
{
"key": "audio-5",
"container": "fmp4",
"elementaryStreams": [
"audio-stream4"
],
"segmentSettings": {
"segmentDuration": "4.0s",
"individualSegments": true
}
},
{
"key": "audio-6",
"container": "fmp4",
"elementaryStreams": [
"audio-stream5"
],
"segmentSettings": {
"segmentDuration": "4.0s",
"individualSegments": true
}
}
],
"manifests": [
{
"fileName": "manifest.m3u8",
"type": "HLS",
"muxStreams": [
"10",
"9",
"8",
"7",
"6",
"5",
"4",
"3",
"2",
"1"
]
},
{
"fileName": "manifest.mpd",
"type": "DASH",
"muxStreams": [
"video-10",
"video-9",
"video-8",
"video-7",
"video-6",
"video-5",
"video-4",
"video-3",
"video-2",
"video-1",
"audio-6",
"audio-5",
"audio-4",
"audio-3",
"audio-2",
"audio-1"
]
}
],
"output": {
"uri": "gs://STORAGE_BUCKET_NAME/STORAGE_OUTPUT_FOLDER/"
}
}
}