構成の例

このページでは、入力メディア ファイル(ElementaryStream)のエンコードの構成例について説明します。

動画ストリーム

VideoStream プロパティには互いに依存関係がありません。解像度(高さと幅)、ビットレート、フレームレートなどのプロパティを個別に設定できます。

{   "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 プロパティは相互に依存しています。channelCount プロパティ値は、channelLayout 配列内のレイアウトの数と同じである必要があります。この値は、マッピングされた入力ストリームのチャンネル数とも同じである必要があります。

基本的な音声ストリーム

マッピングされておらず、ミックスでないオーディオ ストリームの例を次に示します。

{   "audioStream": {     "codec": "aac",     "bitrateBps": 64000,     "channelCount": 2,     "channelLayout": [       "fl",       "fr"     ],     "sampleRateHertz": 48000,     "languageCode": "en-US",     "displayName": "English"   },   "key": "audio-stream0" } 

マッピングされた音声ストリーム

入力マッピングされた音声ストリームの例を次に示します。出力ステレオ AudioStream は、次の入力で構成されます。

  • 追跡 1:
    • チャンネル 0
  • 追跡 1:
    • チャンネル 1

channelCount プロパティ値は、mapping で定義されているオブジェクト数と一致する必要があります(それぞれに outputChannel があります)。

{   "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 は、次の入力で構成されます。

  • トラック 2
    • チャンネル 0
    • チャンネル 2
    • チャンネル 4
  • トラック 2
    • チャンネル 1
    • チャンネル 3
    • チャンネル 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   } } 

1 つのファイルからの複数言語音声ストリーム

異なる言語の動画トラックと複数の音声トラックを含む 1 つの入力動画ファイルの構成例を次に示します。mapping[] オブジェクトは、言語ごとに 1 つずつ、複数の出力音声ストリームを作成するために使用されます。動画と各音声ストリームは、HLS マニフェストと 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"         ]       }     ]   } } 

複数の音声ファイルからの複数言語音声ストリーム

動画とデフォルトの言語音声トラックを 1 つだけ含む入力動画ファイルの構成例を次に示します。2 つの個別の入力音声ファイルも、言語ごとに 1 つずつ使用されます。mapping[] オブジェクトは、言語ごとに 1 つずつ、複数の出力音声ストリームを作成するために使用されます。動画と各音声ストリームは、HLS マニフェストと 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"         ]       }     ]   } } 

テキスト ストリーム

TextStream プロパティには互いに依存関係がありません。プロパティは個別に設定できます。

テキスト ストリームでは、編集リストを使用して出力ファイルを変更できます。次のセクションでは、編集リストを使用して字幕を提供する方法について説明します。

次の例は、編集リストに 1 つの atom が含まれるテキスト ストリームを示しています。

{   "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           }         ]       }     }   ] } 

次の例は、編集リストに 2 つの atom が含まれるテキスト ストリームを示しています。

{   "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           }         ]       }     }   ] } 

詳細

以下のセクションでは、さまざまな詳細設定について説明します。

音声のみの出力

次の構成では、音声のみの MP4 ファイルと TS ファイルを出力します。

{   "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 と fmp4

fmp4 コンテナを使用する MuxStream に含めることができるのは、単一の ElementaryStream のみです。このコンテナでは、音声用と動画用の 2 つの MuxStreams を使用します。

"muxStreams":[   {     "key": "hd3-video",     "container": "fmp4",     "elementaryStreams":["video-stream1"]   },   {     "key": "hd3-audio",     "container": "fmp4",     "elementaryStreams":["audio-stream1"]   } ], 

複数のマニフェストでストリーミングを再利用する

次の構成例は、HLS マニフェストと DASH マニフェストの両方で使用される 2 つの動画エンコードと 1 つの音声エンコードを示しています。

{   "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/"     }   } } 

複数のプロファイルのコード変換に推奨される設定

入力解像度とフレームレート(50/60 FPS)に応じて、出力解像度とビットレートに対して、適用可能であれば 50/60 FPS のより高いフレームレート ステップを追加します。ステップを追加することにより、より高いコンピューティング能力が必要になります。推奨されるラダーは次のとおりです。

解像度(ScanMode)/フレームレート H.264 ハイ プロファイル ビットレート(Kbps)
170x96 p12/15 130
256x144 p25/30 240
416x234 p25/30 300
640x360 p25/30 400
768x432 p25/30 750
768x432 p25/30 1100
960x540 p25/30 2200
1280x720 p25/30 3300
1280x720 p50/60 5500
1920x1080 p25/30 6000
1920x1080 p50/60 9000

音声の場合、推奨設定はチャンネル数に基づきます。

チャネル AAC ビットレート(Kbps)
2.0 64
2.0 160
5.1 384

この出力ラダーを使用して、さまざまな組み合わせで HLS マニフェストと MPEG-DASH マニフェストを出力する構成を作成します。

{   "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/"       }   } }