Halaman ini menampilkan beberapa contoh konfigurasi untuk encoding file media
input (yaitu, ElementaryStream
).
Streaming video
Properti VideoStream
tidak memiliki dependensi satu sama lain. Anda dapat menetapkan properti seperti
resolusi (tinggi dan lebar), kecepatan bit, dan kecepatan frame secara terpisah.
{
"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"
}
Streaming audio
Properti
AudioStream
tertentu bergantung satu sama lain. Nilai properti channelCount
harus
sama dengan jumlah tata letak dalam array channelLayout
. Nilai ini juga harus
sama dengan jumlah saluran dalam
aliran input yang dipetakan.
Streaming audio dasar
Berikut adalah contoh streaming audio non-campuran yang tidak dipetakan.
{
"audioStream": {
"codec": "aac",
"bitrateBps": 64000,
"channelCount": 2,
"channelLayout": [
"fl",
"fr"
],
"sampleRateHertz": 48000,
"languageCode": "en-US",
"displayName": "English"
},
"key": "audio-stream0"
}
Streaming audio dengan pemetaan
Berikut adalah contoh streaming audio dengan pemetaan input. Stereo output
AudioStream
terdiri dari input berikut:
- Jalur 1
- Saluran 0
- Jalur 1
- Saluran 1
Perhatikan bahwa nilai properti channelCount
harus sama dengan jumlah objek
yang ditentukan dalam mapping
, masing-masing dengan outputChannel
-nya sendiri.
{
"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
}
]
}
}
Streaming audio dengan mixing
Berikut adalah contoh streaming audio campuran. Stereo output
AudioStream
terdiri dari input berikut:
- Jalur 2
- Saluran 0
- Saluran 2
- Saluran 4
- Jalur 2
- Saluran 1
- Saluran 3
- Saluran 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
}
}
Streaming audio multibahasa dari satu file
Berikut adalah contoh konfigurasi untuk satu file video input yang berisi
video dan beberapa trek audio yang berada dalam bahasa berbeda. Objek
mapping[]
digunakan untuk membuat beberapa streaming audio output, satu per bahasa. Video
dan setiap streaming audio disertakan dalam manifes HLS dan DASH.
{
"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"
]
}
]
}
}
Streaming audio multibahasa dari beberapa file audio
Berikut adalah contoh konfigurasi untuk file video input yang berisi video dan
hanya satu trek audio bahasa default. Dua file audio input terpisah juga
digunakan, satu per bahasa. Objek
mapping[]
digunakan untuk membuat beberapa streaming audio output, satu per bahasa. Video
dan setiap streaming audio disertakan dalam manifes HLS dan DASH.
{
"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"
]
}
]
}
}
Aliran teks
Properti TextStream
tidak memiliki dependensi satu sama lain. Anda dapat menetapkan properti
secara independen.
Streaming teks dapat menggunakan daftar edit untuk mengubah file output. Bagian berikut menyoroti penggunaan daftar edit untuk memberikan teks.
Contoh berikut menunjukkan aliran teks dengan satu atom dalam daftar edit.
{
"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
}
]
}
}
]
}
Contoh berikut menunjukkan aliran teks dengan dua atom dalam daftar edit.
{
"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
}
]
}
}
]
}
Lanjutan
Bagian berikut menguraikan berbagai konfigurasi lanjutan.
Output audio saja
Konfigurasi berikut menghasilkan file MP4 dan TS audio saja.
{
"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 dan fmp4
MuxStream
yang menggunakan penampung fmp4 hanya dapat berisi satu ElementaryStream
.
Untuk penampung ini, gunakan dua MuxStreams
: satu untuk audio dan satu untuk video:
"muxStreams":[
{
"key": "hd3-video",
"container": "fmp4",
"elementaryStreams":["video-stream1"]
},
{
"key": "hd3-audio",
"container": "fmp4",
"elementaryStreams":["audio-stream1"]
}
],
Menggunakan kembali streaming dalam beberapa manifes
Contoh konfigurasi berikut menunjukkan dua encoding video dan satu audio yang digunakan dalam manifes HLS dan DASH:
{
"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/"
}
}
}
Setelan yang direkomendasikan untuk melakukan transcoding beberapa profil
Untuk resolusi output dan kecepatan bit, bergantung pada resolusi input/kecepatan frame (50/60 FPS), tambahkan langkah kecepatan frame yang lebih tinggi untuk 50/60 FPS, jika berlaku. Perlu diketahui bahwa penambahan langkah tambahan memerlukan lebih banyak daya komputasi. Berikut adalah tangga yang direkomendasikan:
Resolusi (ScanMode)/Kecepatan frame | Kecepatan Bit Profil Tinggi H.264 (Kbps) |
---|---|
170x96 halaman 12/15 | 130 |
256 x 144, halaman 25/30 | 240 |
416 x 234 halaman 30/416 | 300 |
640 x 360 P25/30 | 400 |
768 x 432 halaman 30/768 | 750 |
768 x 432 halaman 30/768 | 1100 |
960 x 540 P25/30 | 2200 |
1280 x 720 halaman 25/30 | 3300 |
1280 x 720, P50/60 | 5500 |
1920 x 1080 P25/30 | 6000 |
1920x1080 p50/60 | 9.000 |
Untuk audio, rekomendasi didasarkan pada jumlah channel:
Saluran | Kecepatan Bit AAC (Kbps) |
---|---|
2.0 | 64 |
2.0 | 160 |
5.1 | 384 |
Gunakan tangga output ini untuk membuat konfigurasi yang menghasilkan manifes HLS dan MPEG-DASH dengan kombinasi yang berbeda:
{
"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/"
}
}
}