すべてのプロダクト
Search
ドキュメントセンター

ApsaraVideo Live:CreateRtcMPUEventSub

最終更新日:Jul 15, 2026

ストリームミキシングおよびリレーのイベントサブスクリプションを作成します。

操作説明

ストリームミキシングおよびリレーのイベントサブスクリプションを作成します。サブスクリプションの作成時に、コールバック URL、サブスクライブするアプリケーション、チャンネル情報などのパラメーターを設定できます。

QPS 制限

この操作の単一ユーザー QPS 制限は、1 秒あたり 50 回の呼び出しです。制限を超えると API 呼び出しがスロットリングされ、ビジネスに影響が出る可能性があります。この操作は適切に呼び出してください。

今すぐお試しください

この API を OpenAPI Explorer でお試しください。手作業による署名は必要ありません。呼び出しに成功すると、入力したパラメーターに基づき、資格情報が組み込まれた SDK コードが自動的に生成されます。このコードをダウンロードしてローカルで使用できます。

テスト

RAM 認証

下表に、この API を呼び出すために必要な認証情報を示します。認証情報は、RAM (Resource Access Management) ポリシーを使用して定義できます。以下で各列名について説明します。

  • アクション:特定のリソースに対して実行可能な操作。ポリシー構文ではAction要素として指定します。

  • API:アクションを具体的に実行するための API。

  • アクセスレベル:各 API に対して事前定義されているアクセスの種類。有効な値:create、list、get、update、delete。

  • リソースタイプ:アクションが作用するリソースの種類。リソースレベルでの権限をサポートするかどうかを示すことができます。ポリシーの有効性を確保するため、アクションの対象として適切なリソースを指定してください。

    • リソースレベルの権限を持つ API の場合、必要なリソースタイプはアスタリスク (*) でマークされます。ポリシーのResource要素で対応する ARN を指定してください。

    • リソースレベルの権限を持たない API の場合、「すべてのリソース」と表示され、ポリシーのResource要素でアスタリスク (*) でマークされます。

  • 条件キー:サービスによって定義された条件のキー。このキーにより、きめ細やかなアクセス制御が可能になります。この制御は、アクション単体に適用することも、特定のリソースに対するアクションに適用することもできます。Alibaba Cloud は、サービス固有の条件キーに加えて、すべての RAM 統合サービスに適用可能な一連の共通条件キーを提供しています。

  • 依存アクション:ある特定のアクションを実行するために、前提として実行が必要となる他のアクション。依存アクションの権限も RAM ユーザーまたは RAM ロールに付与する必要があります。

アクション

アクセスレベル

リソースタイプ

条件キー

依存アクション

live:CreateRtcMPUEventSub

create

*All resources.

*

なし なし

リクエストパラメーター

パラメーター

必須 / 任意

説明

AppId

string

必須

サブスクライブするアプリケーションの ID です。ApsaraVideo Live > Live+ > ApsaraVideo Real-time Communication > アプリケーション管理 に移動して、アプリケーション ID を確認できます。アプリケーションが存在しない場合は、アプリケーションの作成 をクリックして作成してください。

説明

アプリケーション ID は、大文字と小文字、数字、アンダースコア、ハイフン (-) で構成され、最大 64 文字です。

yourAppId

ChannelIds

string

任意

コールバックを受信したいストリームミキシングタスクのチャンネル ID です。複数のチャンネル ID をカンマ (,) で区切って指定できます。

説明
  • このパラメーターを空のままにすると、デフォルトで指定された AppId 配下のすべてのストリームミキシングおよびリレータスクのコールバックが受信されます。

  • 複数のチャンネル ID を指定する場合、重複を含めないでください。一度に最大 20 個のチャンネル ID を指定できます。

  • 各チャンネル ID は、大文字と小文字、数字、アンダースコア、ハイフン (-) で構成され、最大値は 64 文字です。

yourChannelIds

CallbackUrl

string

必須

コールバック URL です。URL のフォーマットについては、以下のコールバックコンテンツ仕様を参照してください。

説明

コールバック URL のプロトコルは HTTP または HTTPS である必要があります。URL に使用できる文字は、a-z、A-Z、0-9、-、_、?、%、=、#、.、/、+ のみです。URL は 2083 文字を超えることはできません。

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

コールバックコンテンツの例

コールバックコンテンツは、HTTP/HTTPS POST リクエストとしてビジネスサーバーに送信されます。文字エンコーディングは UTF-8 で、リクエストボディは JSON 構造です。ビジネスサーバーが HTTP ステータスコード 200 で応答すると、コールバックは成功とみなされます。以下はコールバックコンテンツの例です。

説明

ストリームミキシングおよびリレーが正常に機能しているかどうかを判断するには、コールバック通知と、対応する CDN ベンダーが提供するオンライストリームのステータスの両方を使用してください。

{
	"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": ""
	}
}

コールバック情報

コールバックヘッダーには以下のフィールドが含まれます。

フィールド説明
Content-Typeデータタイプ。固定値: application/json
Ali-Rtc-Timestampタイムスタンプ。
Ali-Rtc-Signature署名値。

コールバックボディには以下のフィールドが含まれます。

フィールドタイプ説明
EventTypeIntegerコールバックイベントタイプ。ストリームミキシングおよびリレーのコールバックの場合、値は 1 に固定されます。1
MsgIdStringこのコールバックを一意に識別するコールバック ID。*****973C-4529-A334*****
AppIdStringサブスクライブするアプリケーションの ID。yourAppId
SubIdStringサブスクリプション ID。Sub-******9799B2C4500******
TaskIdStringリレータスク ID。yourTaskId
CallbackTsIntegerコールバックリクエストが開始された時点のタイムスタンプ (ミリ秒単位)。1712656430476
PayloadJSON Objectコールバックイベント情報。-
  • コールバックイベント情報 (Payload)

フィールドタイプ説明
DstUrlStringリレー先の URL。rtmp://domain/app/stream?auth
EventTsIntegerコールバックイベントが発生した時点のタイムスタンプ (ミリ秒単位)。1712656430384
EventCodeIntegerコールバックイベントコード。1
ErrorCodeIntegerコールバックイベントのエラーコード。10001
ErrorMessageStringコールバックイベントのエラーメッセージ。rtmp server init failed

コールバックイベントコード

フィールド説明コールバック頻度
MPU_STATE_PREPARING0リレータスクが作成され、トリガーされました。1 回のみコールバックされます。
MPU_STATE_ESTABLISHING1リレータスクが接続を確立中です。5 秒ごとにコールバックされます。
MPU_STATE_RUNNING2リレータスクが実行中です。1 回のみコールバックされます。
MPU_STATE_RECOVERING3リレータスクが中断され、復旧中です。5 秒ごとにコールバックされます。
MPU_STATE_TERMINATED4リレータスクが終了しました。これには、正常な停止、起動失敗、または異常終了が含まれます。具体的な理由は ErrorCode と ErrorMessage で示されます。1 回のみコールバックされます。

次の図は、コールバックイベントの状態遷移の例を示しています。 注意:

  1. コールバックメッセージは、ビジネスサーバーに順序不同で到着する場合があります。Payload 内の EventTs に基づいてイベントを並べ替えることができます。コールバックイベントの最新の状態のみが必要な場合は、後から到着する期限切れのイベントを無視してください。

  2. CreateMixStreamRelayTask (new) を呼び出して作成されたストリームミキシングおよびリレータスクの場合、すべてのユーザーがルームから退出してから一定時間後にタスクが自動的に停止し、MPU_STATE_TERMINATED コールバックが送信されます。

  3. コールバック設定は新しいタスクにのみ影響し、既存のタスクには影響しません。

a. コールバック設定が有効になる前に開始されたタスクは、コールバックを送信しません。

b. コールバック設定が有効になった後に開始されたタスクは、コールバックを送信します。

c. コールバック設定が削除される前に開始されたタスクは、タスクが終了するまでコールバックを送信し続けます。

d. コールバック設定が削除された後に開始されたタスクは、コールバックを送信しません。

コールバックエラーコード

リレータスクが終了すると、ErrorCode と ErrorMessage に終了理由が示されます。

エラーコードエラーメッセージ説明
0タスクは正常に停止しました。
10001rtmp server init failed接続の確立に失敗しました。タスクは異常終了しました。
10002rtmp server internal error内部サーバーエラーが発生しました。タスクは異常終了しました。
10003task idle timeoutタスクが長時間アイドル状態だったため終了しました。

コールバック認証

コールバックイベント認証はデフォルトで有効になっています。認証ロジックは以下の通りです。

  • ApsaraVideo Live がコールバックリクエストを開始すると、HTTP(S) リクエストヘッダーに Ali-Rtc-Timestamp および Ali-Rtc-Signature フィールドが含まれ、コールバックメッセージ受信サーバーによる署名検証が行われます。Ali-Rtc-Signature の値は、Ali-Rtc-Signature=MD5SUM(MD5CONTENT) として計算されます。ここで、MD5CONTENT=コールバック URL|Ali-Rtc-Timestamp 値|認証キー です。コールバック URL は、設定した完全なコールバック URL です。認証キーは、AppId の作成時に生成された AppKey です。

  • コールバックメッセージ受信サーバーは、コールバックメッセージを受信すると、コールバック URL、Ali-Rtc-Timestamp 値、および認証キーを連結し、MD5 値を計算して暗号化文字列を取得します。その後、計算された暗号化文字列と、ApsaraVideo Real-time Communication から送信された HTTP(S) リクエストヘッダー内の Ali-Rtc-Signature フィールド値を比較します。値が一致しない場合、そのリクエストは無効です。

失敗時のコールバック再試行

Alibaba Cloud がコールバックリクエストを開始した際、ビジネスサーバーが HTTP ステータスコード 200 で応答した場合にのみ、コールバックは成功とみなされます。コールバックが失敗した場合、Alibaba Cloud は 1 秒、2 秒、5 秒、10 秒、1 分、2 分、5 分の間隔で 7 回再試行します。各再試行に対して、対応するコールバックレコードが生成されます。

レスポンスフィールド

フィールド

説明

object

RequestId

string

リクエスト ID。

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

SubId

string

サブスクリプション ID。

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

成功レスポンス

JSONJSON

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

エラーコード

HTTP ステータスコード

エラーコード

エラーメッセージ

説明

400 InvalidParam %s. パラメーター検証に失敗しました。
400 MissingParam %s, please check and try again later. 必須パラメーターが不足しています。確認して再試行してください。
400 InvalidAppId %s, please check and try again later. AppId が無効です。確認して再試行してください。
500 InternalError InternalError
403 OperationDenied Your account has not enabled the Live service
403 Forbidden %s, please check and try again later. 必須の権限がありません。確認して再試行してください。

完全なリストについては、「エラーコード」をご参照ください。

変更履歴

完全なリストについては、「変更履歴」をご参照ください。