Contoh konfigurasi

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 saling bergantung. Nilai properti channelCount harus sama dengan jumlah tata letak dalam array channelLayout. Nilai ini juga harus sama dengan jumlah saluran dalam streaming input yang dipetakan.

Streaming audio dasar

Berikut adalah contoh streaming 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"
}

Streaming audio dengan pemetaan

Berikut adalah contoh streaming 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
      }
    ]
  }
}

Streaming audio dengan mixing

Berikut adalah contoh streaming 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
  }
}

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

Streaming 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 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 streaming di 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 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 frame Kecepatan Bit Profil Tinggi 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

Untuk audio, rekomendasi didasarkan pada jumlah saluran:

Saluran Kecepatan Bit AAC (Kbps)
2.0 64
2.0 160
5.1 384

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