Panduan ini menjelaskan fitur opsi manifes yang didukung dari Video Stitcher API. Hal ini memungkinkan Anda menyesuaikan manifes video yang digabungkan. Opsi manifes dikonfigurasi dalam permintaan pembuatan sesi. Untuk mengetahui informasi selengkapnya, lihat Membuat sesi live dan Membuat sesi VOD.
Sebelum memulai
Pastikan Anda memahami konsep dan terminologi pengantar di Video Stitcher API. Untuk informasi lebih lanjut, lihat ringkasan teknis.
Pengantar
Secara default, manifes video yang digabungkan akan berisi rendisi media yang sama dengan manifes video sumber. Manifes sumber dapat berisi beberapa rendisi media yang tidak dapat diputar semua pemain. Misalnya, video yang dienkode mungkin berisi codec video H.264 dan H.265, tetapi pemutar pada satu perangkat mungkin hanya dapat memutar H.264.
Dengan menentukan codec atau kecepatan bit yang akan disertakan dalam manifes video, Anda dapat menentukan rendisi video yang akan dihasilkan 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:
- Filter menurut codec
- Hanya sertakan kecepatan bit tertentu
- Mengurutkan rendisi 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
Filter menurut codec
Untuk memfilter penampilan 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", }, ], }, }
Hal berikut 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 sertakan kecepatan bit tertentu
Untuk memfilter penampilan 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, }, ], }, }
Hal berikut 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 rendisi video. Anda dapat
menetapkan urutan rendisi video ke ascending
atau descending
, seperti
berikut:
{ "manifestOptions": { "bitrateOrder": "ascending", }, }
Hal berikut 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:
- Filter menurut codec
- Hanya sertakan kecepatan bit tertentu
- Mengurutkan rendisi 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>
Filter menurut codec
Untuk memfilter penampilan 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", }, ], }, }
Hal berikut 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 penampilan 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, }, ], }, }
Hal berikut 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 rendisi video. Anda dapat
menetapkan urutan rendisi video ke ascending
atau descending
, seperti
berikut:
{ "manifestOptions": { "bitrateOrder": "descending", }, }
Hal berikut 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>