このページでは、入力メディア ファイル(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/" } } }