All Products
Search
Document Center

ApsaraVideo Live:Perekaman sesuai permintaan

Last Updated:Jul 15, 2026

ApsaraVideo Live mengelola konfigurasi perekaman menggunakan templat perekaman. Sistem mencocokkan URL ingest dengan templat perekaman yang sesuai berdasarkan domain ingest, nama aplikasi, dan nama aliran dalam URL tersebut. Templat perekaman mendukung dua metode perekaman sesuai permintaan: Control by ingest parameters dan Control by HTTP callback. Anda dapat menggunakan metode ini untuk secara dinamis menentukan apakah akan merekam aliran live tertentu berdasarkan aturan bisnis Anda.

Control by ingest parameters

Jika metode pemicu templat perekaman diatur ke "Ingest parameter settings", Anda dapat langsung mengontrol perekaman aliran saat ini dengan menggunakan parameter record_config dalam URL ingest.

  • Format parameter: record_config={"NeedRecord": <true/false>}

  • Deskripsi parameter: true mengaktifkan perekaman, sedangkan false menonaktifkannya.

  • Catatan: Saat membuat URL ingest, Anda harus melakukan URL-encode pada parameter tersebut.

Sebagai contoh, asumsikan URL ingest adalah: rtmp://push.example.com/live/stream1

Untuk mengaktifkan perekaman dengan parameter ini, gunakan URL berikut: rtmp://push.example.com/live/stream1?record_config=%7B%22NeedRecord%22%3Atrue%7D&auth_key=xxx

Batasan:

Metode pemicu ini hanya mendukung perekaman source stream, bukan transcoded streams. Jika perekaman Anda mencakup aliran yang telah dikodekan ulang, pilih metode pemicu yang berbeda.

Control by HTTP callback

Cara kerja

  1. Saat aliran live diingest, jika metode pemicu untuk templat perekaman yang cocok diatur ke Callback confirmation, ApsaraVideo Live mengirim permintaan HTTP ke callback URL yang telah Anda konfigurasi sebelumnya untuk memeriksa apakah aliran tersebut akan direkam.

  2. Server aplikasi Anda menerima permintaan tersebut dan mengembalikan instruksi perekaman (izinkan atau tolak) berdasarkan logika bisnis Anda.

  3. ApsaraVideo Live kemudian memulai atau melewatkan perekaman sesuai dengan respons Anda.

Anda harus terlebih dahulu mengonfigurasi callback URL dalam pengaturan callback event domain. Untuk informasi selengkapnya, lihat Live recording callbacks dan On-demand recording callbacks.

Parameter permintaan

Parameter

Tipe

Deskripsi

domain

String

Domain ingest.

app

String

Nama aplikasi.

stream

String

Nama aliran.

codec

String

Format encoding. Nilai yang valid:

  • h264

  • h265

vbitrate

String

Bitrate video. Satuan: kbps.

Contoh permintaan

GET /?app=seq_all&domain=demo.aliyundoc.com&stream=ondemand8&vbitrate=2000&codec=h264 HTTP/1.1
Host: pull.aliyundoc.com
User-Agent: Go-http-client/1.1
Accept-Encoding: gzip

Parameter respons

Setelah server Anda menerima permintaan callback, server tersebut harus mengembalikan kode status HTTP 200 dan badan JSON yang berisi parameter berikut:

Parameter

Tipe

Wajib

Deskripsi

ApiVersion

String

Tidak

Versi API. Nilai default: 1.0.

NeedRecord

Bool

Ya

Menentukan apakah akan merekam aliran.

Interval

JSONObject

Tidak

Menentukan interval perekaman untuk setiap format. Rentang nilai yang valid: 5 hingga 21600. Satuan: detik.

Format

JSONArray

Tidak

Format perekaman. Format yang didukung meliputi MP4, FLV, dan M3U8.

Contoh respons

{
  "ApiVersion": "1.0",
  "NeedRecord": true,
  "Interval": {
    "Mp4": 300,
    "Flv": 120,
    "M3U8": 180
  },
  "Format": ["mp4","flv"]
}

Penanganan parameter respons

Setelah layanan perekaman menerima respons dari server Anda, layanan tersebut membandingkan parameter yang dikembalikan dengan konfigurasi perekaman asli dan menerapkan penggantian sebagai berikut:

  • Penggantian Interval: Jika respons mencakup parameter Interval, nilainya akan menggantikan interval perekaman dalam konfigurasi perekaman asli.

  • Interseksi Format: Parameter Format dalam respons diinterseksikan dengan format yang ditentukan dalam konfigurasi perekaman asli. Misalnya, jika templat perekaman asli dikonfigurasi untuk format MP4 dan FLV, sedangkan respons callback adalah ["mp4", "m3u8"], hanya format MP4 yang direkam. Jika hasil interseksi kosong, aliran tidak akan direkam.

Titik akhir callback Anda harus mengembalikan kode status HTTP 200. Kode status lainnya dianggap sebagai kegagalan callback, sehingga perekaman dinonaktifkan secara default.

Ukuran maksimum badan respons callback adalah 2.048 byte. Respons yang melebihi batas ini akan dipotong untuk mencegah serangan berbahaya.

Catatan penggunaan

Jika layanan Anda menggunakan fitur penarikan aliran sesuai permintaan—di mana ApsaraVideo Live menarik aliran dari server origin hanya ketika pengguna memulai pemutaran dan berhenti menarik saat tidak ada penonton—ketentuan berikut berlaku:

  • Prasyarat perekaman: Dalam skenario penarikan aliran sesuai permintaan, perekaman (baik otomatis, sesuai permintaan, maupun manual) dimulai hanya setelah pengguna memulai pemutaran.

  • Tidak ada perekaman tanpa pemutaran: Jika tidak ada klien yang memutar aliran, ApsaraVideo Live tidak menarik aliran dari server origin, sehingga tidak ada file perekaman yang dihasilkan.