全部产品
Search
文档中心

:GenerateVideoPlaylist

更新时间:Jan 27, 2026

Menghasilkan playlist dari file video untuk transkoding langsung (live transcoding). Output berupa file M3U8 yang memungkinkan pemutaran segera dan transkoding sesuai permintaan berdasarkan progres pemutaran. Dibandingkan dengan transkoding offline, metode ini secara signifikan mengurangi waktu tunggu transkoding serta menurunkan beban transkoding dan penyimpanan.

Deskripsi operasi

  • Sebelum menggunakan API ini, pastikan Anda memahami metode penagihan dan harga Intelligent Media Management.

  • Sebelum memanggil API ini, pastikan terdapat proyek aktif di wilayah saat ini. Untuk informasi selengkapnya, lihat Manajemen proyek.

  • Secara default, API ini hanya memproses satu aliran video, audio, atau subtitle. Anda juga dapat mengonfigurasi jumlah aliran video, audio, dan subtitle yang akan diproses.
    Penting Parameter Video, Audio, dan Subtitle dalam Targets tidak boleh semuanya kosong. Jika suatu parameter dibiarkan kosong, pemrosesan yang sesuai akan dinonaktifkan. Misalnya, jika parameter Video kosong, pemrosesan video dinonaktifkan, dan file TS output tidak berisi aliran video.
  • Video sumber harus memiliki durasi minimal 0.x detik. Durasi minimum bervariasi sedikit tergantung pada laju frame output.

  • API ini mendukung pembuatan baik Media Playlist maupun Master Playlist. Untuk informasi selengkapnya, lihat deskripsi parameter dalam dokumen ini.

  • Ini adalah API sinkron. Transkoding hanya dipicu saat pemutaran atau pra-transkoding. Anda dapat mengatur parameter Notification untuk menerima hasil task transkoding melalui pesan notifikasi asinkron.

  • Untuk informasi lebih lanjut tentang fitur API ini, lihat Live transcoding.

  • Fitur pemrosesan data OSS juga dapat digunakan untuk menghasilkan playlist. Namun, fitur ini hanya menghasilkan Media Playlist dan menggunakan parameter yang disederhanakan. Untuk informasi selengkapnya, lihat topik pemrosesan data OSS Generate a playlist.

Coba sekarang

Coba API ini di OpenAPI Explorer tanpa perlu penandatanganan manual. Panggilan yang berhasil akan secara otomatis menghasilkan contoh kode SDK sesuai dengan parameter Anda. Unduh kode tersebut dengan kredensial bawaan yang aman untuk penggunaan lokal.

Test

RAM authorization

Tabel berikut menjelaskan otorisasi yang diperlukan untuk memanggil API ini. Anda dapat menentukannya dalam kebijakan Resource Access Management (RAM). Kolom pada tabel dijelaskan sebagai berikut:

  • Action: Aksi yang dapat digunakan dalam elemen Action pada pernyataan kebijakan izin RAM untuk memberikan izin guna melakukan operasi tersebut.

  • API: API yang dapat Anda panggil untuk melakukan aksi tersebut.

  • Access level: Tingkat akses yang telah ditentukan untuk setiap API. Nilai yang valid: create, list, get, update, dan delete.

  • Resource type: Jenis resource yang mendukung otorisasi untuk melakukan aksi tersebut. Ini menunjukkan apakah aksi tersebut mendukung izin tingkat resource. Resource yang ditentukan harus kompatibel dengan aksi tersebut. Jika tidak, kebijakan tersebut tidak akan berlaku.

    • Untuk API dengan izin tingkat resource, jenis resource yang diperlukan ditandai dengan tanda bintang (*). Tentukan Nama Sumber Daya Alibaba Cloud (ARN) yang sesuai dalam elemen Resource pada kebijakan.

    • Untuk API tanpa izin tingkat resource, ditampilkan sebagai All Resources. Gunakan tanda bintang (*) dalam elemen Resource pada kebijakan.

  • Condition key: Kunci kondisi yang didefinisikan oleh layanan. Kunci ini memungkinkan kontrol granular, berlaku baik hanya untuk aksi maupun untuk aksi yang terkait dengan resource tertentu. Selain kunci kondisi spesifik layanan, Alibaba Cloud menyediakan serangkaian common condition keys yang berlaku di semua layanan yang didukung RAM.

  • Dependent action: Aksi dependen yang diperlukan untuk menjalankan aksi tersebut. Untuk menyelesaikan aksi tersebut, pengguna RAM atau role RAM harus memiliki izin untuk melakukan semua aksi dependen.

Action

Access level

Resource type

Condition key

Dependent action

imm:GenerateVideoPlaylist

none

*Project

acs:imm:{#regionId}:{#accountId}:project/{#ProjectName}

None None

Parameter permintaan

Parameter

Type

Required

Description

Example

ProjectName

string

Yes

Nama proyek. Untuk informasi selengkapnya tentang cara mendapatkan nama proyek, lihat Buat proyek.

immtest

UserData

string

No

Informasi kustom. Informasi ini dikembalikan dalam pesan notifikasi asinkron untuk membantu Anda mengaitkan pesan tersebut dengan layanan Anda. Panjang maksimum adalah 2.048 byte.

{"ID": "user1","Name": "test-user1","Avatar": "http://example.com?id=user1"}

SourceURI

string

Yes

URI OSS dari video.

URI OSS harus dalam format oss://${Bucket}/${Object}. ${Bucket} adalah nama bucket OSS yang berada di wilayah yang sama dengan proyek saat ini. ${Object} adalah path lengkap file, termasuk ekstensi nama file.

Catatan

Hanya bucket penyimpanan OSS Standard yang didukung. Bucket dengan daftar putih Perlindungan hotlink tidak didukung.

oss://test-bucket/test-source-object/video.mp4

SourceStartTime

number

No

Waktu mulai untuk menghasilkan playlist. Satuan: detik (s). Nilai yang valid:

  • 0 (default) atau kosong: dimulai dari awal video sumber.

  • Lebih besar dari 0: dimulai dari titik waktu tertentu dalam video sumber.

Catatan

Anda dapat mengatur parameter ini bersama dengan parameter SourceDuration untuk menghasilkan playlist dari bagian tertentu video sumber.

0

SourceDuration

number

No

Durasi playlist yang dihasilkan. Satuan: detik (s). Nilai yang valid:

  • 0 (default) atau kosong: berlanjut hingga akhir video sumber.

  • Lebih besar dari 0: berlangsung selama durasi yang ditentukan dari waktu mulai.

Catatan

Jika durasi yang ditentukan melebihi akhir video sumber, nilai default akan digunakan.

0

SourceSubtitles

array<object>

No

Daftar subtitle yang akan ditambahkan. Nilai default kosong. Anda dapat menambahkan hingga dua subtitle.

object

No

Informasi subtitle.

URI

string

Yes

URI OSS dari file subtitle yang akan disematkan.

URI OSS harus dalam format oss://${Bucket}/${Object}. ${Bucket} adalah nama bucket OSS yang berada di wilayah yang sama dengan proyek saat ini. ${Object} adalah path lengkap file.

Catatan

Parameter MasterURI tidak boleh kosong. URI OSS dari file subtitle yang akan disematkan, oss://${Bucket}/${Object}, harus berada di direktori yang sama atau subdirektori dari direktori yang ditentukan oleh MasterURI.

oss://test-bucket/test-object/subtitle/eng.vtt

Language

string

No

Bahasa subtitle. Nilainya harus sesuai dengan standar ISO 639-2. Nilai default kosong.

eng

MasterURI

string

No

URI OSS dari Master Playlist.

URI OSS harus dalam format oss://${Bucket}/${Object}. ${Bucket} adalah nama bucket OSS yang berada di wilayah yang sama dengan proyek saat ini. ${Object} adalah path lengkap file dengan ekstensi nama file .m3u8.

Catatan

Jika playlist memiliki input subtitle atau beberapa output target, MasterURI wajib diisi. URI subtitle atau URI target harus berada di direktori yang sama atau subdirektori dari direktori yang ditentukan oleh MasterURI.

oss://test-bucket/test-object/master.m3u8

Targets

array<object>

Yes

Array playlist transkoding langsung. Panjang maksimum array adalah 6. Setiap target sesuai dengan maksimal satu Media Playlist video dan satu atau lebih Media Playlist subtitle.

Catatan

Jika Anda mengonfigurasi lebih dari satu target, parameter MasterURI tidak boleh kosong.

array<object>

No

Detail task transkoding langsung.

URI

string

No

Awalan URI OSS untuk file output transkoding langsung. File output mencakup file M3U8 dan file TS.

URI OSS harus dalam format oss://${Bucket}/${Object}. ${Bucket} adalah nama bucket OSS yang berada di wilayah yang sama dengan proyek saat ini. ${Object} adalah awalan path lengkap file, tanpa ekstensi nama file.

  • Contoh: Jika URI adalah oss://test-bucket/test-object/output-video, maka dihasilkan satu file oss://test-bucket/test-object/output-video.m3u8 dan beberapa file oss://test-bucket/test-object/output-video-${token}-${index}.ts. ${token} adalah string unik yang dihasilkan berdasarkan parameter transkoding dan disertakan dalam respons API. ${index} adalah nomor urut file TS yang dihasilkan, dimulai dari 0.

Catatan

Jika parameter MasterURI tidak kosong, URI harus berada di direktori yang sama atau subdirektori dari direktori yang ditentukan oleh MasterURI.

oss://test-bucket/test-object/output-video

Video TargetVideo

No

Pengaturan parameter untuk pemrosesan video. Nilai kosong (default) menonaktifkan pemrosesan video. File TS output tidak akan berisi aliran video.

Catatan

Bidang Video dan Subtitle dalam target yang sama bersifat saling eksklusif. Jika bidang Video diatur, bidang Subtitle akan diabaikan.

Audio TargetAudio

No

Pengaturan parameter untuk pemrosesan audio. Nilai kosong (default) menonaktifkan pemrosesan audio. File TS output tidak akan berisi aliran audio.

Catatan

Bidang Audio dan Subtitle dalam target yang sama bersifat saling eksklusif. Jika bidang Audio diatur, bidang Subtitle akan diabaikan. Anda dapat mengatur Audio dan Video secara bersamaan. Audio menentukan informasi audio dalam video output. Anda juga dapat hanya mengatur Audio untuk menghasilkan informasi audio saja.

Subtitle TargetSubtitle

No

Pengaturan parameter untuk pemrosesan subtitle.

Catatan

Bidang Subtitle bersifat saling eksklusif dengan bidang Video dan Audio dalam target yang sama. Subtitle hanya dapat dihasilkan jika bidang Subtitle diatur secara independen.

TranscodeAhead

integer

No

Jumlah file TS yang ditranskode terlebih dahulu saat transkoding langsung dipicu. Secara default, video selama 2 menit ditranskode terlebih dahulu.

  • Contoh: Jika Duration bernilai 10, nilai default TranscodeAhead adalah 12. Anda dapat menentukan parameter ini untuk mengontrol jumlah transkode maju asinkron. Nilainya harus berada dalam rentang [10, 30].

12

Duration

number

No

Durasi pemutaran satu file TS. Satuan: detik (s). Nilai default: 10. Rentang nilai: [5, 15].

10

InitialTranscode

number

No

Durasi transkoding awal. Satuan: detik (s). Nilai default: 30.

  • Jika Anda mengatur parameter ini ke 0, pra-transkoding tidak dilakukan.

  • Jika Anda mengatur parameter ini ke nilai kurang dari 0 atau melebihi panjang video sumber, seluruh video akan ditranskode pada awalnya.

  • Jika durasi yang ditentukan berakhir di tengah file TS, transkoding akan berlanjut hingga akhir file TS tersebut.

Catatan

Parameter ini terutama digunakan untuk mengurangi waktu tunggu pemutaran pertama dan meningkatkan pengalaman pengguna. Untuk menggantikan skenario VOD tradisional, Anda dapat mencoba mentranskode seluruh video pada awalnya.

30

InitialSegments

array

No

Array durasi untuk file TS yang ditranskode awal. Panjang maksimum array adalah 6. Nilai default kosong. Parameter ini bersifat independen dari parameter Duration.

number

No

Durasi file TS yang ditranskode awal. Nilainya harus berada dalam rentang [1, Duration].

  • Contoh: Jika array durasi file TS awal adalah [2, 2, 4, 4, 8, 8], maka durasi file TS dengan nomor urut 0 adalah 2, durasi file TS dengan nomor urut 1 adalah 2, durasi file TS dengan nomor urut 2 adalah 4, durasi file TS dengan nomor urut 3 adalah 4, durasi file TS dengan nomor urut 4 adalah 8, dan durasi file TS dengan nomor urut 5 adalah 8.

Catatan

Menyesuaikan durasi lebih pendek untuk file TS yang ditranskode awal dapat membuat pemuatan video lebih lancar.

[2, 2, 4, 4, 8, 8]

Tags

object

No

Menambahkan tag objek OSS ke file TS yang dihasilkan. Anda dapat menggunakan tag OSS untuk mengontrol siklus hidup file OSS.

Catatan

Tag untuk target saat ini merupakan gabungan dari tag yang didefinisikan di level ini dan tag yang didefinisikan di level induk. Jika suatu tag memiliki nama yang sama, nilai di level saat ini yang digunakan.

string

No

Nilai tag.

{\"key1\":\"value1\"}

Tags

object

No

Menambahkan tag objek OSS ke file TS yang dihasilkan. Anda dapat menggunakan tag untuk mengontrol siklus hidup file OSS.

{"key1": "value1", "key2": "value2"}

string

No

Nilai tag.

{"key1": "value1", "key2": "value2"}

CredentialConfig CredentialConfig

No

Jika Anda tidak memiliki persyaratan khusus, biarkan parameter ini kosong.

Konfigurasi otorisasi berantai. Parameter ini tidak wajib. Untuk informasi selengkapnya, lihat Gunakan otorisasi berantai untuk mengakses sumber daya entitas lain.

Notification Notification

No

Konfigurasi notifikasi pesan. Untuk informasi selengkapnya, klik Notification. Untuk informasi tentang format pesan notifikasi asinkron, lihat Format pesan notifikasi asinkron.

OverwritePolicy

string

No

Kebijakan untuk menimpa Media Playlist yang sudah ada. Nilai yang valid:

  • overwrite (default): Menimpa Media Playlist yang sudah ada.

  • skip-existing: Melewati pembuatan dan mempertahankan Media Playlist yang sudah ada.

overwrite

Elemen respons

Element

Type

Description

Example

object

Skema Respons

RequestId

string

ID permintaan.

CA995EFD-083D-4F40-BE8A-BDF75FFF*****

Duration

number

Durasi total video output.

1082

Token

string

Token dari Master Playlist.

92376fbb-171f-4259-913f-705f7ee0****

MasterURI

string

URI OSS dari Master Playlist.

oss://test-bucket/test-object/master.m3u8

VideoPlaylist

array<object>

Daftar file Media Playlist video.

object

Informasi tentang file Media Playlist video.

Token

string

Token yang dihasilkan untuk Media Playlist video. Anda dapat menggunakan parameter ini untuk menyusun URI file TS yang dihasilkan.

Catatan

Anda dapat menggunakan nilai token yang dikembalikan untuk menyusun URI file TS hasil transkoding. Formatnya adalah oss://${Bucket}/${Object}-${Token}-${Index}.ts. oss://${Bucket}/${Object} adalah URI target yang ditentukan dalam parameter permintaan. ${Token} adalah parameter yang dikembalikan. ${Index} adalah nomor urut file TS.

affe0c6042f09722fec95a21b8b******

URI

string

URI OSS dari Media Playlist video.

oss://test-bucket/test-object/output-video.m3u8

Resolution

string

Resolusi video.

640x480

FrameRate

string

Laju frame video.

25/1

AudioPlaylist

array<object>

Daftar file Media Playlist audio.

object

Informasi tentang file Media Playlist audio.

Token

string

Token yang dihasilkan untuk Media Playlist audio. Anda dapat menggunakan parameter ini untuk menyusun URI file TS yang dihasilkan.

affe0c6042f09722fec95a21b8b******

URI

string

URI OSS dari Media Playlist audio.

oss://test-bucket/test-object/output-audio.m3u8

Channels

integer

Jumlah kanal audio.

1

SubtitlePlaylist

array<object>

Daftar file Media Playlist subtitle.

object

Informasi tentang file Media Playlist subtitle.

Token

string

Token yang dihasilkan untuk Media Playlist subtitle. Anda dapat menggunakan parameter ini untuk menyusun URI file subtitle yang dihasilkan.

Catatan

Anda dapat menggunakan nilai token yang dikembalikan untuk menyusun URI file subtitle hasil transkoding. Formatnya adalah oss://${Bucket}/${Object}-${Token}_${Index}.ts. oss://${Bucket}/${Object} adalah URI subtitle yang ditentukan dalam parameter permintaan. ${Token} adalah parameter yang dikembalikan. ${Index} adalah nomor urut subtitle.

affe0c6042f09722fec95a21b8b******

URI

string

URI OSS dari Media Playlist subtitle.

oss://test-bucket/test-object/output-subtitle.m3u8

Language

string

Bahasa aliran subtitle.

Catatan

Bahasa diperoleh dari informasi aliran subtitle video sumber yang ditentukan oleh SourceURI. Jika video sumber tidak berisi informasi bahasa, parameter ini kosong.

eng

Index

integer

Nomor urut aliran subtitle, dimulai dari 0.

1

Contoh

Respons sukses

JSONformat

{
  "RequestId": "CA995EFD-083D-4F40-BE8A-BDF75FFF*****",
  "Duration": 1082,
  "Token": "92376fbb-171f-4259-913f-705f7ee0****",
  "MasterURI": "oss://test-bucket/test-object/master.m3u8",
  "VideoPlaylist": [
    {
      "Token": "affe0c6042f09722fec95a21b8b******",
      "URI": "oss://test-bucket/test-object/output-video.m3u8",
      "Resolution": "640x480",
      "FrameRate": "25/1"
    }
  ],
  "AudioPlaylist": [
    {
      "Token": "affe0c6042f09722fec95a21b8b******",
      "URI": "oss://test-bucket/test-object/output-audio.m3u8",
      "Channels": 1
    }
  ],
  "SubtitlePlaylist": [
    {
      "Token": "affe0c6042f09722fec95a21b8b******",
      "URI": "oss://test-bucket/test-object/output-subtitle.m3u8",
      "Language": "eng",
      "Index": 1
    }
  ]
}

Kode kesalahan

Lihat Error Codes untuk daftar lengkap.

Catatan rilis

Lihat Release Notes untuk daftar lengkap.