All Products
Search
Document Center

ApsaraVideo Live:CreateRtcMPUEventSub

Last Updated:Jul 15, 2026

Membuat langganan event untuk pencampuran dan penerusan aliran.

Deskripsi operasi

Membuat langganan event untuk pencampuran dan penerusan aliran. Saat membuat langganan, Anda dapat mengonfigurasi parameter seperti URL callback, aplikasi yang berlangganan, dan informasi saluran.

Batas QPS

Batas QPS per pengguna tunggal untuk operasi ini adalah 50 panggilan per detik. Jika batas terlampaui, panggilan API akan dibatasi (throttled), yang dapat memengaruhi bisnis Anda. Panggil operasi ini dengan tepat.

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

live:CreateRtcMPUEventSub

create

*Semua sumber daya.

*

None None

Parameter permintaan

Parameter

Type

Required

Description

Example

AppId

string

Yes

ID aplikasi yang berlangganan. Anda dapat melihat ID aplikasi dengan menavigasi ke ApsaraVideo Live > Live+ > ApsaraVideo Real-time Communication > Manajemen Aplikasi. Jika tidak ada aplikasi, buat satu dengan mengklik Buat Aplikasi.

Catatan

ID aplikasi terdiri dari huruf besar dan kecil, angka, garis bawah, dan tanda hubung (-), dengan maksimal 64 karakter.

yourAppId

ChannelIds

string

No

ID saluran tugas pencampuran aliran yang ingin Anda terima callback-nya. Anda dapat menentukan beberapa ID saluran yang dipisahkan oleh koma (,).

Catatan
  • Jika Anda membiarkan parameter ini kosong, callback untuk semua tugas pencampuran dan penerusan aliran di bawah AppId yang ditentukan akan diterima secara default.

  • Saat menentukan beberapa ID saluran, jangan sertakan duplikat. Anda dapat menentukan hingga 20 ID saluran sekaligus.

  • Setiap ID saluran terdiri dari huruf besar dan kecil, angka, garis bawah, dan tanda hubung (-), dengan maksimal 64 karakter.

yourChannelIds

CallbackUrl

string

Yes

URL callback. Untuk format URL, lihat spesifikasi konten callback di bawah ini.

Catatan

Protokol URL callback harus HTTP atau HTTPS. URL hanya boleh berisi karakter berikut: a-z, A-Z, 0-9, -, _, ?, %, =, #, ., /, dan +. URL tidak boleh melebihi 2083 karakter.

http://****.com/callback

Contoh konten callback

Konten callback dikirim ke server bisnis Anda sebagai permintaan HTTP/HTTPS POST. Enkoding karakter adalah UTF-8, dan body permintaan adalah struktur JSON. Ketika server bisnis Anda merespons dengan kode status HTTP 200, callback dianggap berhasil. Berikut adalah contoh konten callback:

Catatan

Untuk menentukan apakah pencampuran dan penerusan aliran berfungsi dengan baik, gunakan notifikasi callback dan status aliran online yang disediakan oleh vendor CDN terkait.

{
	"EventType": 1,
	"MsgId": "42bba8b5-94ab-468c-9dae-9b501dd****",
	"AppId": "rtcdev",
	"SubId": "Sub-9799B2C45009799B2*****",
	"TaskId": "mpucallbacktest",
	"CallbackTs": 1712656430476,
	"Payload": {
		"DstUrl": "rtmp://domain/app/stream?auth",
		"EventTs": 1712656430384,
		"EventCode": 1,
		"ErrorCode": 0,
		"ErrorMessage": ""
	}
}

Informasi callback

Header callback berisi bidang berikut:

BidangDeskripsi
Content-TypeTipe data. Nilai tetap: application/json
Ali-Rtc-TimestampTimestamp.
Ali-Rtc-SignatureNilai tanda tangan.

Body callback berisi bidang berikut:

BidangTipeDeskripsiContoh
EventTypeIntegerTipe event callback. Untuk callback pencampuran dan penerusan aliran, nilainya tetap 1.1
MsgIdStringID callback yang secara unik mengidentifikasi callback ini.*****973C-4529-A334*****
AppIdStringID aplikasi yang berlangganan.yourAppId
SubIdStringID langganan.Sub-******9799B2C4500******
TaskIdStringID tugas penerusan.yourTaskId
CallbackTsIntegerTimestamp dalam milidetik saat permintaan callback dimulai.1712656430476
PayloadObjek JSONInformasi event callback.-
  • Informasi event callback (Payload)

BidangTipeDeskripsiContoh
DstUrlStringURL tujuan untuk penerusan.rtmp://domain/app/stream?auth
EventTsIntegerTimestamp dalam milidetik saat event callback terjadi.1712656430384
EventCodeIntegerKode event callback.1
ErrorCodeIntegerKode error event callback.10001
ErrorMessageStringPesan error event callback.rtmp server init failed

Kode event callback

BidangNilaiDeskripsiFrekuensi callback
MPU_STATE_PREPARING0Tugas penerusan dibuat dan dipicu.Dipanggil kembali hanya sekali.
MPU_STATE_ESTABLISHING1Tugas penerusan sedang membangun koneksi.Dipanggil kembali setiap 5 detik.
MPU_STATE_RUNNING2Tugas penerusan sedang berjalan.Dipanggil kembali hanya sekali.
MPU_STATE_RECOVERING3Tugas penerusan terputus dan sedang pulih.Dipanggil kembali setiap 5 detik.
MPU_STATE_TERMINATED4Tugas penerusan telah berakhir, termasuk penghentian normal, kegagalan startup, atau keluar abnormal. Alasan spesifik ditunjukkan oleh ErrorCode dan ErrorMessage.Dipanggil kembali hanya sekali.

Gambar berikut menunjukkan contoh transisi state untuk event callback: Catatan:

  1. Pesan callback mungkin tiba di server bisnis Anda tidak berurutan. Anda dapat mengurutkan event berdasarkan EventTs di Payload. Jika Anda hanya memerlukan state terbaru dari event callback, abaikan event kedaluwarsa yang tiba kemudian.

  2. Untuk tugas pencampuran dan penerusan aliran yang dibuat dengan memanggil CreateMixStreamRelayTask (baru), tugas akan berhenti secara otomatis setelah semua pengguna meninggalkan room selama periode waktu tertentu, dan callback MPU_STATE_TERMINATED dikirim.

  3. Konfigurasi callback hanya memengaruhi tugas baru dan tidak memengaruhi tugas yang sudah ada:

a. Tugas yang dimulai sebelum konfigurasi callback diaktifkan tidak mengirim callback.

b. Tugas yang dimulai setelah konfigurasi callback diaktifkan mengirim callback.

c. Tugas yang dimulai sebelum konfigurasi callback dihapus terus mengirim callback hingga tugas berakhir.

d. Tugas yang dimulai setelah konfigurasi callback dihapus tidak mengirim callback.

Kode error callback

Ketika tugas penerusan berakhir, ErrorCode dan ErrorMessage menunjukkan alasan penghentian.

Kode errorPesan errorDeskripsi
0Tugas berhenti secara normal.
10001rtmp server init failedPembentukan koneksi gagal. Tugas berakhir secara abnormal.
10002rtmp server internal errorTerjadi error server internal. Tugas berakhir secara abnormal.
10003task idle timeoutTugas berakhir karena idle terlalu lama.

Autentikasi callback

Autentikasi event callback diaktifkan secara default. Logika autentikasi adalah sebagai berikut:

  • Saat ApsaraVideo Live memulai permintaan callback, header permintaan HTTP(S) berisi bidang Ali-Rtc-Timestamp dan Ali-Rtc-Signature untuk verifikasi tanda tangan oleh server penerima pesan callback. Nilai Ali-Rtc-Signature dihitung sebagai berikut: Ali-Rtc-Signature=MD5SUM(MD5CONTENT), di mana MD5CONTENT=URL Callback|Nilai Ali-Rtc-Timestamp|Kunci Autentikasi. URL callback adalah URL callback lengkap yang Anda konfigurasikan. Kunci autentikasi adalah AppKey yang dihasilkan saat Anda membuat AppId.

  • Saat server penerima pesan callback menerima pesan callback, server tersebut menggabungkan URL callback, nilai Ali-Rtc-Timestamp, dan kunci autentikasi, menghitung nilai MD5 untuk memperoleh string terenkripsi, lalu membandingkan string terenkripsi yang dihitung dengan nilai bidang Ali-Rtc-Signature di header permintaan HTTP(S) yang dikirim oleh ApsaraVideo Real-time Communication. Jika nilai tidak cocok, permintaan tidak valid.

Percobaan ulang callback saat gagal

Saat Alibaba Cloud memulai permintaan callback, callback dianggap berhasil hanya ketika server bisnis Anda merespons dengan kode status HTTP 200. Jika callback gagal, Alibaba Cloud akan mencoba ulang 7 kali dengan interval 1 detik, 2 detik, 5 detik, 10 detik, 1 menit, 2 menit, dan 5 menit. Setiap percobaan ulang menghasilkan catatan callback yang sesuai.

Elemen respons

Element

Type

Description

Example

object

RequestId

string

ID permintaan.

******3B-0E1A-586A-AC29-742247******

SubId

string

ID langganan.

Sub-******9799B2C4500******

Contoh

Respons sukses

JSONformat

{
  "RequestId": "******3B-0E1A-586A-AC29-742247******",
  "SubId": "Sub-******9799B2C4500******"
}

Kode kesalahan

HTTP status code

Error code

Error message

Description

400 InvalidParam %s. Validasi parameter gagal.
400 MissingParam %s, please check and try again later. Parameter yang diperlukan tidak ada. Periksa dan coba lagi.
400 InvalidAppId %s, please check and try again later. AppId tidak valid. Periksa dan coba lagi.
500 InternalError InternalError
403 OperationDenied Your account has not enabled the Live service
403 Forbidden %s, please check and try again later. Anda tidak memiliki izin yang diperlukan. Periksa dan coba lagi.

Lihat Error Codes untuk daftar lengkap.

Catatan rilis

Lihat Release Notes untuk daftar lengkap.