Contoh konfigurasi

Halaman ini menampilkan beberapa contoh konfigurasi untuk encoding file media input (yaitu, ElementaryStream).

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

audio

Properti AudioStream tertentu saling bergantung. Nilai properti channelCount harus sama dengan jumlah tata letak dalam array channelLayout. Nilai ini juga harus sama dengan jumlah saluran dalam input yang dipetakan.

audio dasar

Berikut adalah contoh audio yang tidak dipetakan dan tidak dicampur.

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

audio dengan pemetaan

Berikut adalah contoh audio yang dipetakan input. Output stereo AudioStream terdiri dari input berikut:

  • Jalur 1
    • Saluran 0
  • Jalur 1
    • Channel 1

Perhatikan bahwa nilai properti channelCount harus sama dengan jumlah objek yang ditentukan di bagian 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
      }
    ]
  }
}

audio dengan mixing

Berikut adalah contoh audio campuran. Output stereo AudioStream terdiri dari input berikut:

  • Lagu 2
    • Saluran 0
    • Channel 2
    • Channel 4
  • Lagu 2
    • Channel 1
    • Channel 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
  }
}

audio multibahasa dari satu file

Berikut adalah contoh konfigurasi untuk satu file video input yang berisi video dan beberapa trek audio dalam bahasa yang berbeda. Objek mapping[] digunakan untuk membuat beberapa audio output, satu per bahasa. Video dan setiap 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"
        ]
      }
    ]
  }
}

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 audio output, satu per bahasa. Video dan setiap 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"
        ]
      }
    ]
  }
}

teks

Properti TextStream tidak memiliki dependensi satu sama lain. Anda dapat menetapkan properti secara independen.

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 khusus audio.

{
  "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 di beberapa manifes

Contoh konfigurasi berikut menunjukkan dua encoding video dan satu encoding 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 mentranskode beberapa profil

Untuk resolusi dan kecepatan bit output, bergantung pada resolusi input/kecepatan frame (50/60 FPS), tambahkan langkah kecepatan frame yang lebih tinggi untuk 50/60 FPS jika berlaku. Perhatikan bahwa menambahkan langkah tambahan memerlukan lebih banyak daya komputasi. Berikut adalah hierarki yang direkomendasikan:

Resolusi (ScanMode)/Kecepatan frameKecepatan Bit Profil Tinggi H.264 (Kbps)
170x96 p12/15130
256x144 p25/30240
416x234 p25/30300
640x360 p25/30400
768x432 p25/30750
768x432 p25/301100
960x540 p25/302200
1280x720 p25/303300
1280x720 p50/605500
1920x1080 p25/306000
1920x1080 p50/609000

Untuk audio, rekomendasi didasarkan pada jumlah saluran:

SaluranKecepatan Bit AAC (Kbps)
2.064
2.0160
5.1384

Gunakan hierarki 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/"
      }
  }
}