Opsi manifes

Panduan ini menjelaskan fitur opsi manifes yang didukung dari Video Stitcher API. Dengan begitu, Anda dapat menyesuaikan manifes video yang digabungkan. Opsi manifes dikonfigurasi dalam permintaan pembuatan sesi. Untuk informasi selengkapnya, lihat referensi berikut:

Sebelum memulai

Pastikan Anda memahami konsep dan terminologi pengantar di Video Stitcher API. Untuk mengetahui informasi selengkapnya, lihat ringkasan teknis.

Pengantar

Secara default, manifes video yang digabungkan akan berisi rendering media yang sama dengan manifes video sumber. Manifes sumber dapat berisi beberapa interpretasi media yang tidak dapat diputar oleh semua pemutar. Misalnya, video yang dienkode dapat berisi codec video H.264 dan H.265, tetapi pemutar di satu perangkat mungkin hanya dapat memutar H.264.

Dengan menentukan codec atau kecepatan bit yang akan disertakan dalam manifes video, Anda dapat menentukan render video yang akan ditampilkan dalam manifes video yang digabungkan.

Opsi manifes

Objek ManifestOptions memberi Anda beberapa opsi untuk menyesuaikan manifes video yang digabungkan.

HLS

Anda dapat menyesuaikan hal berikut untuk manifes video HLS yang digabungkan:

  • Memfilter menurut codec
  • Hanya menyertakan kecepatan bit tertentu
  • Mengurutkan render video

Untuk bagian berikutnya, asumsikan manifes video sumber berikut:

#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=1920x1080,CODECS="avc1.42e00a,mp4a.40.2"
h264/fhd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2"
h264/sd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=240000,RESOLUTION=1280x720,CODECS="avc1.42e00a,mp4a.40.2"
h264/hd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=400000,RESOLUTION=1920x1080,CODECS="hvc1.1.4.L126.B0,mp4a.40.2"
h264/fhd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=100000,RESOLUTION=640x360,CODECS="hvc1.1.4.L126.B0,mp4a.40.2"
h264/sd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=200000,RESOLUTION=1280x720,CODECS="hvc1.1.4.L126.B0,mp4a.40.2"
h264/hd/index.m3u8

Memfilter menurut codec

Untuk memfilter rendering video menurut codec, tetapkan codec di kolom manifestOptions opsional saat membuat sesi. Misalnya, untuk hanya menampilkan H.264 dalam manifes yang digabungkan, tetapkan codec dalam array includeRenditions:

{
  "manifestOptions": {
    "includeRenditions": [
      {
        "codecs": "avc1.42e00a,mp4a.40.2",
      },
    ],
  },
}

Berikut ini yang akan ditampilkan dalam manifes yang digabungkan:

#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=1920x1080,CODECS="avc1.42e00a,mp4a.40.2"
h264/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2"
h264/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=240000,RESOLUTION=1280x720,CODECS="avc1.42e00a,mp4a.40.2"
h264/index.m3u8

Hanya menyertakan kecepatan bit tertentu

Untuk memfilter rendering video menurut kecepatan bit, tetapkan kecepatan bit di kolom manifestOptions opsional saat membuat sesi. Misalnya, untuk hanya menampilkan dua kecepatan bit dalam manifes yang digabungkan, tetapkan kecepatan bit dalam array includeRenditions:

{
  "manifestOptions": {
    "includeRenditions": [
      {
        "bitrateBps": 150000,
      },
      {
        "bitrateBps": 440000,
      },
    ],
  },
}

Berikut ini yang akan ditampilkan dalam manifes yang digabungkan:

#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=1920x1080,CODECS="avc1.42e00a,mp4a.40.2"
h264/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2"
h264/index.m3u8

Urutkan menurut kecepatan bit

Beberapa pemutar mungkin sensitif terhadap urutan rendering video. Anda dapat menetapkan urutan rendering video ke ascending atau descending, seperti dalam hal berikut:

{
  "manifestOptions": {
    "bitrateOrder": "ascending",
  },
}

Berikut ini yang akan ditampilkan dalam manifes yang digabungkan:

#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=100000,RESOLUTION=640x360,CODECS="hvc1.1.4.L126.B0,mp4a.40.2"
h264/sd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2"
h264/sd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=200000,RESOLUTION=1280x720,CODECS="hvc1.1.4.L126.B0,mp4a.40.2"
h264/hd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=240000,RESOLUTION=1280x720,CODECS="avc1.42e00a,mp4a.40.2"
h264/hd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=400000,RESOLUTION=1920x1080,CODECS="hvc1.1.4.L126.B0,mp4a.40.2"
h264/fhd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=1920x1080,CODECS="avc1.42e00a,mp4a.40.2"
h264/fhd/index.m3u8

DASH

Anda dapat menyesuaikan hal berikut untuk manifes video DASH yang digabungkan:

  • Memfilter menurut codec
  • Hanya menyertakan kecepatan bit tertentu
  • Mengurutkan render video

Untuk bagian berikutnya, asumsikan manifes video sumber berikut:

<Period id="0" start="PT33160.000S">
  <AdaptationSet segmentAlignment="true" maxWidth="1280" maxHeight="720">
    <Representation mimeType="video/mp4" id="640x360-h264" codecs="avc1.64001E" width="640" height="360" startWithSAP="1" bandwidth="150000">
      ...
    </Representation>
    <Representation mimeType="video/mp4" id="1280x720-h264" codecs="avc1.64001E" width="1280" height="720" startWithSAP="1" bandwidth="240000">
      ...
    </Representation>
    <Representation mimeType="video/mp4" id="640x360-h265" codecs="hvc1.1.4.L126.B0" width="640" height="360" startWithSAP="1" bandwidth="100000">
      ...
    </Representation>
    <Representation mimeType="video/mp4" id="1280x720-h265" codecs="hvc1.1.4.L126.B0" width="1280" height="720" startWithSAP="1" bandwidth="200000">
      ...
    </Representation>
  </AdaptationSet>
  <AdaptationSet segmentAlignment="true">
    <Representation mimeType="audio/mp4" id="640x360-audio" codecs="mp4a.40.2" audioSamplingRate="44100" startWithSAP="1" bandwidth="48472">
      ...
    </Representation>
    <Representation mimeType="audio/mp4" id="1280x720-audio" codecs="mp4a.40.2" audioSamplingRate="44100" startWithSAP="1" bandwidth="48472">
      ...
    </Representation>
  </AdaptationSet>
</Period>

Memfilter menurut codec

Untuk memfilter rendering video menurut codec, tetapkan codec di kolom manifestOptions opsional saat membuat sesi. Misalnya, untuk hanya menampilkan H.264 dalam manifes yang digabungkan, tetapkan codec dalam array includeRenditions:

{
  "manifestOptions": {
    "includeRenditions": [
      {
        "codecs": "hvc1.1.4.L126.B0",
      },
    ],
  },
}

Berikut ini yang akan ditampilkan dalam manifes yang digabungkan:

<Period id="0" start="PT33160.000S">
  <AdaptationSet segmentAlignment="true" maxWidth="1280" maxHeight="720">
    <Representation mimeType="video/mp4" id="640x360-h265" codecs="hvc1.1.4.L126.B0" width="640" height="360" startWithSAP="1" bandwidth="100000">
      ...
    </Representation>
    <Representation mimeType="video/mp4" id="1280x720-h265" codecs="hvc1.1.4.L126.B0" width="1280" height="720" startWithSAP="1" bandwidth="200000">
      ...
    </Representation>
  </AdaptationSet>
  <AdaptationSet segmentAlignment="true">
    <Representation mimeType="audio/mp4" id="640x360-audio" codecs="mp4a.40.2" audioSamplingRate="44100" startWithSAP="1" bandwidth="48472">
      ...
    </Representation>
    <Representation mimeType="audio/mp4" id="1280x720-audio" codecs="mp4a.40.2" audioSamplingRate="44100" startWithSAP="1" bandwidth="48472">
      ...
    </Representation>
  </AdaptationSet>
</Period>

Menyertakan kecepatan bit tertentu

Untuk memfilter rendering video menurut kecepatan bit, tetapkan kecepatan bit di kolom manifestOptions opsional saat membuat sesi. Misalnya, untuk hanya menampilkan dua kecepatan bit dalam manifes yang digabungkan, tetapkan kecepatan bit dalam array includeRenditions:

{
  "manifestOptions": {
    "includeRenditions": [
      {
        "bitrateBps": 150000,
      },
      {
        "bitrateBps": 240000,
      },
    ],
  },
}

Berikut ini yang akan ditampilkan dalam manifes yang digabungkan:

<Period id="0" start="PT33160.000S">
  <AdaptationSet segmentAlignment="true" maxWidth="1280" maxHeight="720">
    <Representation mimeType="video/mp4" id="640x360-h264" codecs="avc1.64001E" width="640" height="360" startWithSAP="1" bandwidth="150000">
      ...
    </Representation>
    <Representation mimeType="video/mp4" id="1280x720-h264" codecs="avc1.64001E" width="1280" height="720" startWithSAP="1" bandwidth="240000">
      ...
    </Representation>
  </AdaptationSet>
  <AdaptationSet segmentAlignment="true">
    <Representation mimeType="audio/mp4" id="640x360-audio" codecs="mp4a.40.2" audioSamplingRate="44100" startWithSAP="1" bandwidth="48472">
      ...
    </Representation>
    <Representation mimeType="audio/mp4" id="1280x720-audio" codecs="mp4a.40.2" audioSamplingRate="44100" startWithSAP="1" bandwidth="48472">
      ...
    </Representation>
  </AdaptationSet>
</Period>

Urutkan menurut kecepatan bit

Beberapa pemutar mungkin sensitif terhadap urutan rendering video. Anda dapat menetapkan urutan rendering video ke ascending atau descending, seperti dalam hal berikut:

{
  "manifestOptions": {
    "bitrateOrder": "descending",
  },
}

Berikut ini yang akan ditampilkan dalam manifes yang digabungkan:

<Period id="0" start="PT33160.000S">
  <AdaptationSet segmentAlignment="true" maxWidth="1280" maxHeight="720">
    <Representation mimeType="video/mp4" id="1280x720-h264" codecs="avc1.64001E" width="1280" height="720" startWithSAP="1" bandwidth="240000">
      ...
    </Representation>
    <Representation mimeType="video/mp4" id="1280x720-h265" codecs="hvc1.1.4.L126.B0" width="1280" height="720" startWithSAP="1" bandwidth="200000">
      ...
    </Representation>
    <Representation mimeType="video/mp4" id="640x360-h264" codecs="avc1.64001E" width="640" height="360" startWithSAP="1" bandwidth="150000">
      ...
    </Representation>
    <Representation mimeType="video/mp4" id="640x360-h265" codecs="hvc1.1.4.L126.B0" width="640" height="360" startWithSAP="1" bandwidth="100000">
      ...
    </Representation>
  </AdaptationSet>
  <AdaptationSet segmentAlignment="true">
    <Representation mimeType="audio/mp4" id="640x360-audio" codecs="mp4a.40.2" audioSamplingRate="44100" startWithSAP="1" bandwidth="48472">
      ...
    </Representation>
    <Representation mimeType="audio/mp4" id="1280x720-audio" codecs="mp4a.40.2" audioSamplingRate="44100" startWithSAP="1" bandwidth="48472">
      ...
    </Representation>
  </AdaptationSet>
</Period>