ApsaraVideo Live は、ライブストリームのアップストリーミング、録画(オンデマンド録画を含む)、スナップショット、コンテンツモデレーション、およびデュアルストリームディザスタリカバリに関するイベント通知を提供します。本トピックでは、これらのコールバックの設定方法、コールバックパラメーターの一覧、および使用例について説明します。
概要
ApsaraVideo Live は、HTTP コールバックを介してイベント通知を送信します。HTTPS もサポートされています。これらの通知を受信するには、HTTP サービスをデプロイし、ApsaraVideo Live コンソールまたは API を使用してコールバック URL を設定する必要があります。
HTTP GET: ストリームのアップストリーミングまたは中断イベントが発生すると、ApsaraVideo Live はコールバック URL に対して HTTP GET リクエストを送信し、イベントの詳細を URL パラメーターとして配信します。
HTTP POST: その他の種類のイベントが発生すると、ApsaraVideo Live はコールバック URL に対して HTTP POST リクエストを送信し、イベントの詳細を JSON 本文で配信します。
一部の SSL 証明書は互換性がありません。証明書に関する問題が発生した場合は、HTTP コールバックをお試しください。
注意事項
接続性: コールバック URL はパブリックにアクセス可能である必要があります。
タイムアウトとリトライ: サービスは 5 秒以内に応答を期待します。リクエストがタイムアウトした場合、1 秒間隔で最大 5 回リトライされます。
ドメインスコープ:
ストリームアップストリーミングおよびデュアルストリームリカバリのコールバックは、アップストリーミングドメインでのみ設定できます。
録画、スナップショット、およびコンテンツモデレーションのコールバックは、ストリーミングドメインでのみ設定できます。
コールバック管理
ストリームアップストリーミングコールバック
このコールバックは、ドメインのアップストリーミングステータス(アップストリーミング成功、ストリーム中断、アップストリーミング例外など)を通知します。コールバック URL はコンソールまたは API を使用して設定します。
コンソールでの設定
ApsaraVideo Live コンソールにログインします。
左側のナビゲーションウィンドウで、機能管理 > イベントコールバック を選択します。
設定する アップストリーミングドメイン を選択します。
コールバックの設定 タブで、プッシュストリーミングコールバック スイッチを有効にし、以下のパラメーターを設定します。
コールバックタイプ: アップストリーミングおよび中断イベント、または例外イベントのコールバックを設定します。
コールバック URL: 通知を受信するためのパブリックエンドポイントです。アップストリーミングおよび中断イベントには HTTP GET を、例外イベントには HTTP POST を使用します。
コールバック認証: 認証を有効にするかどうかを選択します。有効にした場合は、認証キーを入力します。認証プロセスについては、「コールバック認証」をご参照ください。
[OK] をクリックします。
API による設定
API | 説明 |
インジェストコールバックの構成を追加します。 | |
インジェストコールバックの構成を照会します。 | |
アップストリーミングコールバック構成を削除します。 |
インジェストおよび中断イベント
コールバックロジック
ストリームプッシュの場合、ApsaraVideo Live が OnPublish メッセージを受信した後、ライブソースが少なくとも 2 秒間接続されたままの場合、アップストリーミング成功のコールバックが送信されます。
ストリーミングドメイン(ドメイン B)に対してストリームフェッチング(固定時間またはオンデマンド)を使用し、コールバック通知が必要な場合は、関連付けられたアップストリーミングドメイン(ドメイン A)に対してストリームアップストリーミングコールバックを設定してください。ロジックは一貫しており、接続が確立され、ライブソースが少なくとも 2 秒間接続されたままの場合、ストリームフェッチングは成功と見なされます。
ストリームが正常にアップストリーミングされたかどうかを判断するために、コールバック通知のみに依存しないでください。オンラインストリームリストを照会する API を呼び出すことを推奨します。再生用 URL をユーザーに配布する前に、ストリームがアクティブであることを確認してください。
ApsaraVideo Live ライブセンターが 10 秒間データを受信しない場合、サービスは自動的にアップストリーミング接続を終了します。
パラメーター
パラメーター | 説明 |
action | コールバックをトリガーしたイベントの種類。
|
ip | インジェストクライアントの IP アドレス。 |
id | ストリーム名。 |
app | アップストリーミングドメイン。アップストリーミングドメインが関連付けられていない場合、このパラメーターはストリーミングドメインを返します。 |
appname | ストリームの AppName。 |
time | コールバックが送信されたときの UNIX タイムスタンプ(秒単位)。 |
usrargs | ユーザー定義のインジェスト パラメーター。 |
node | ストリームを受信するエッジノードまたはサーバー。 |
height | 最初のコールバックでのみ提供される、ピクセル単位のビデオ高さ。 |
width | 最初のコールバックでのみ提供される、ピクセル単位のビデオ幅。 |
インジェストイベントの例
http://1.1.X.X?action=publish&ip=192.168.0.1&id=world&app=example.aliyundoc.com&appname=liveApp****&time=1609220385&usrargs={user-defined-parameters}&node=cdnvideocenter01020711****.cm3&height=720&width=1280中断イベントの例
http://1.1.X.X?action=publish_done&ip=192.168.0.0&id=world&app=example.aliyundoc.com&appname=liveApp****&time=1609220385&usrargs={user-defined-parameters}&node=cdnvideocenter01020711****.cm3&height=720&width=1280例外イベントを取り込む
パラメーター
パラメーター | 説明 |
action | publish_exception_notify |
domain | アップストリーミングドメイン。 |
appname | ストリームの AppName。 |
stream | ストリーム名。 |
ip | インジェストクライアントの IP アドレス。 |
time | コールバックが送信されたときの UNIX タイムスタンプ(秒単位)。 |
type | 例外イベントの種類。 |
event_time | 例外が発生したときの UNIX タイムスタンプ(秒単位)。 |
例外タイプ
コード | イベントタイプ |
1001 | URL に無効な文字が含まれています。 |
2001 | ビデオコーデックがブロックリストに登録されています。 |
2002 | ビデオコーデックが許可リストに登録されていません。 |
2003 | オーディオコーデックがブロックリストに登録されています。 |
2004 | オーディオコーデックが許可リストに登録されていません。 |
3001 | オーディオヘッダーの解析に失敗しました。 |
3002 | ビデオヘッダーの解析に失敗しました。 |
3003 | メタデータの解析に失敗しました。 |
4001 | ビデオの幅と高さが一致しません。 |
4002 | メタデータにはオーディオデータがないと記載されていますが、ストリームにはオーディオデータが含まれています。 |
4003 | 実際のオーディオおよびビデオデータがヘッダーと一致しません。 |
4004 | メタデータにはビデオデータがないと記載されていますが、ストリームにはビデオデータが含まれています。 |
4005 | ストリーム途中でオーディオコーデックが変更されました。 |
4006 | ストリーム途中でビデオコーデックが変更されました。 |
4007 | オーディオヘッダーの前にオーディオフレームが受信されました。 |
4008 | ビデオヘッダーの前にビデオフレームが受信されました。 |
5001 | CTS ジッターが過剰です。 |
5002 | 復号化タイムスタンプ (DTS) が単調増加ではありません。 |
5003 | オーディオとビデオのタイムスタンプの差が大きすぎます。 |
5004 | オーディオ DTS の増分が大きすぎます。 |
5005 | ビデオ DTS の増分が大きすぎます。 |
5006 | 受信したオーディオフレームの間隔が長すぎます。 |
5007 | 受信したビデオフレームの間隔が長すぎます。 |
5008 | キーフレーム間隔が長すぎます。 |
例外イベントの例
{
"action": "publish_exception_notify",
"domain": "demo.aliyundoc.com",
"appname": "liveApp****",
"stream": "liveStream****",
"ip": "141.01.****",
"time": "1739760710",
"type": "5002",
"event_time": "1739760710"
}ライブ録画コールバック
ライブ録画コールバックは、録画ステータス、ファイル生成、および録画エラーを通知します。
コンソールでの設定
ApsaraVideo Live コンソールにログインします。
左側のナビゲーションウィンドウで、機能管理 > イベントコールバック を選択します。
設定する ストリーミングドメイン名 を選択します。
コールバックの設定 タブで、録画コールバック スイッチを有効にし、以下のパラメーターを設定します。
コールバック URL: 通知を受信するためのパブリックエンドポイントです。録画コールバックには HTTP POST リクエストを使用します。
トリガーイベント: File Generation または File Generation and Recording Status を選択します。
オンデマンドコールバック URL: オンデマンド録画を設定している場合、ライブストリームが開始されるとサービスはこの URL に対して HTTP コールバックを送信します。ストリームを録画するかどうかを決定するために、サーバーはこのリクエストに応答する必要があります。デフォルトでは、このパラメーターは
*に設定されており、オンデマンド録画機能が無効になります。コールバック認証: 認証を有効にするかどうかを選択します。有効にした場合は、認証キーを入力します。認証プロセスについては、「コールバック認証」をご参照ください。
[OK] をクリックします。
API による設定
API | 説明 |
ドメインの録画コールバック構成を追加します。 | |
録画コールバック構成を照会します。 | |
ドメインの録画コールバック構成を削除します。 |
録画ステータスコールバック
録画セッションの開始または一時停止時に送信されます。
パラメーター
パラメーター | 説明 |
domain | 録画対象のストリーミングドメイン。 |
app | ストリームの AppName。 |
stream | ストリーム名。 |
event | イベント。
|
例
{
"domain": "demo.aliyundoc.com",
"app": "liveApp****",
"stream": "liveStream****",
"event": "record_started"
}ファイル生成コールバック
ファイル作成時に送信され、ファイルパス、持続時間、タイムスタンプなどの詳細を提供します。
パラメーター
パラメーター | 説明 |
domain | 録画対象のストリーミングドメイン。 |
app | ストリームの AppName。 |
stream | ストリーム名。 |
uri | OSS バケットまたは ApsaraVideo VOD バケット内の録画ファイルの相対パス。 |
record_id | インデックスファイルの ID。 |
file_url | 録画ファイルの完全な URL。 |
duration | 録画ファイルの持続時間(秒単位)。 |
start_time | 録画開始時刻(UNIX タイムスタンプ、秒単位)。 |
stop_time | 録画終了時刻(UNIX タイムスタンプ、秒単位)。 |
is_finished | 録画が完了したかどうかを示します。このパラメーターは、ライブストリームが ApsaraVideo VOD に録画された場合にのみ返されます。 |
oss_endpoint | ストレージエンドポイント。 |
oss_bucket | ストレージバケットの名前。 |
push_args |
説明
|
例
アップストリーミング URL が rtmp://demo.aliyundoc.com/liveApp****/liveStream****?callback_args1=value1&callback_myid=1231389741 の場合、コールバックペイロードは次のようになります。
{
"domain": "demo.aliyundoc.com",
"app": "liveApp****",
"stream": "liveStream****",
"uri": "liveApp****/liveStream****/0_2017-03-08-23:09:46_2017-03-08-23:10:40.flv",
"file_url": "http://****.oss-****.aliyuncs.com/liveApp****/liveStream****/0_2017-03-08-23:09:46_2017-03-08-23:10:40.flv",
"duration": 69.403,
"start_time": 1488985786,
"stop_time": 1488985840,
"push_args": {
"callback_args1": "value1",
"callback_myid": "1231389741"
}
}録画エラーコールバック
ソースストリームの例外またはストレージへの書き込み失敗(OSS)によってトリガーされます。
パラメーター
パラメーター | 説明 |
domain | 録画対象のストリーミングドメイン。 |
app | ストリームの AppName。 |
stream | ストリーム名。 |
event | イベントタイプ。
|
error_info | JSON 形式のエラー情報。以下のフィールドが含まれます。
|
file_info | ファイル情報。このパラメーターは
|
録画エラーの例
{
"domain": "example.com",
"app": "live",
"stream": "stream123",
"event": "record_error",
"error_info": {
"code": "TsSegmenterFail",
"message": "ts segmenter error"
}
}エラーコード
コード | メッセージ | 説明 |
BucketNotFound | Bucket not found | バケットが存在しないか、削除されています。 |
AccessDenied | Bucket not belong config userId | バケットが録画構成を追加したアカウントに属していません。 |
StreamFormatError | video stream format error | ライブストリームの形式が無効です。 |
UserDisable | Unauthorized access to OSS by user | ユーザーが OSS にアクセスする権限が付与されていないか、権限が取り消されています。 |
リマックスエラーの例
{
"domain": "example.com",
"app": "live",
"stream": "stream123",
"event": "transformat_error",
"error_info": {
"code": "PermissionDenied.ResourceAccess",
"message": "MTS not authorized to operate on the OutputBucket"
},
"file_info": {
"uri": "record/live/stream123/2025-11-19-03-17-03_2025-11-19-03-28-39.flv",
"start_time": 1763493420,
"stop_time": 1763494119
}
}エラーコード
コード | メッセージ | 説明 |
InvalidParameter.ResourceNotFound | The resource operated cannot be found | バケットが存在しないか、削除されています。 |
InvalidParameter.ResourceContentBad | The resource operated InputFile is bad | ソースストリームの品質に関する問題により、リマックスに失敗しました。 |
PermissionDenied.ResourceAccess | MTS not authorized to operate on the OutputBucket | ユーザーが OSS にアクセスする権限が付与されていないか、権限が取り消されています。 |
オンデマンド録画コールバック
オンデマンド録画を使用すると、ストリームメタデータに基づいてライブストリームを録画するかどうかをプログラムで決定できます。
ライブストリームが事前に設定されたオンデマンド録画テンプレート(ドメイン、アプリ、またはストリームレベル)に一致すると、録画サービスはストリームの詳細を含めて On-demand callback URL に対して HTTP リクエストを送信します。その後、サーバーはストリームを録画するかどうかを示し、特定の録画設定を提供するために応答する必要があります。
リクエストパラメーター
パラメーター | タイプ | 説明 |
domain | String | ストリーミングドメイン。 |
app | String | ストリームの AppName。 |
stream | String | ストリーム名。 |
codec | String | コーデック。有効な値:
|
vbitrate | String | ビデオビットレート。単位:kbps。 |
リクエスト例
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レスポンスパラメーター
パラメーター | タイプ | 必須 | 説明 |
ApiVersion | String | いいえ | API バージョン。デフォルト値は 1.0 です。 |
NeedRecord | Boolean | はい | ストリームを録画するかどうかを示します。 |
Interval | JSONObject | いいえ | 特定のフォーマットの録画サイクル。範囲:5 ~ 21600。単位:秒。 |
Format | JSONArray | いいえ | 録画フォーマット。サポートされているフォーマット:MP4、FLV、M3U8。 |
レスポンス例
{
"ApiVersion": "1.0",
"NeedRecord": true,
"Interval": {
"Mp4": 300,
"Flv": 120,
"M3U8": 180
},
"Format": ["mp4","flv"]
}レスポンス処理
録画サービスは、既存の構成を上書きするためにレスポンスを処理します。
Interval: 提供された Interval 値は、録画テンプレートで設定された録画サイクルを上書きします。Format: サービスは、要求された Format と録画テンプレートで事前設定されたフォーマットとの共通部分を計算します。共通のフォーマットがない場合、ストリームは録画されません。
200 以外の HTTP ステータスコードは、API エンドポイントへの呼び出しが失敗したことを示します。
レスポンスボディは 2,048 バイトを超えることはできません。セキュリティ上の理由から、この制限を超えるコンテンツはシステムによって切り捨てられます。
ライブスナップショットコールバック
ApsaraVideo Live は、ライブスナップショットのイベント通知をサポートしています。コールバック URL はコンソールまたは API を使用して設定できます。
コンソールでの設定
ApsaraVideo Live コンソールにログインします。
左側のナビゲーションウィンドウで、機能管理 > イベントコールバック を選択します。
設定する ストリーミングドメイン名 を選択します。
コールバックの設定 タブで、スナップショットコールバック スイッチを有効にし、以下のパラメーターを設定します。
コールバック URL: 通知を受信するためのパブリックエンドポイントです。スナップショットコールバックには HTTP POST リクエストを使用します。
コールバック認証: 認証を有効にするかどうかを選択します。有効にした場合は、認証キーを入力します。認証プロセスについては、「コールバック認証」をご参照ください。
[OK] をクリックします。
API 構成
API | 説明 |
ライブスナップショットコールバック構成を追加します。 | |
ライブスナップショットコールバック構成を変更します。 | |
ライブスナップショットコールバック構成を照会します。 | |
ライブスナップショットコールバック構成を削除します。 |
スナップショットコールバックパラメーター
パラメーター | 説明 |
Event | イベントの種類。値は |
DomainName | ストリーミングドメイン。 |
AppName | ストリームの AppName。 |
StreamName | ストリーム名。 |
OssBucket | スナップショットを保存する OSS バケットの名前。 |
OssEndpoint | スナップショットが保存される OSS エンドポイント。 |
OssObject | OSS バケット内のスナップショットファイルの名前。 |
CreateTime | スナップショットが作成されたときのタイムスタンプ。 |
SnapshotUrl | OSS バケット内のスナップショットファイルの完全な URL。 |
Size | 画像のサイズ(バイト単位)。 |
Width | 画像の幅(ピクセル単位)。 |
Height | 画像の高さ(ピクセル単位)。 |
例
{
"Event": "Snapshot",
"DomainName": "demo.aliyundoc.com",
"AppName": "liveApp****",
"StreamName": "liveStream****",
"OssBucket": "liveBucket****",
"OssEndpoint": "oss-cn-shan****.aliyuncs.com",
"OssObject": "1****.jpg",
"CreateTime": "2015-12-01T17:36:00Z",
"SnapshotUrl": "http://liveBucket****.oss-cn-shan****.aliyuncs.com/1****.jpg",
"Size": "36291",
"Width": "1280",
"Height": "720"
}コンテンツモデレーションコールバック
ApsaraVideo Live は、ビデオおよびオーディオのモデレーション結果に関するイベント通知をサポートしています。コールバック URL はコンソールまたは API を使用して設定できます。
ビデオモデレーションコールバック
問題があると判断されたビデオコンテンツに対してのみトリガーされます。
コンソールでの設定
ApsaraVideo Live コンソールにログインします。
左側のナビゲーションウィンドウで、機能管理 > イベントコールバック を選択します。
設定する ストリーミングドメイン名 を選択します。
コールバックの設定 タブで、動画レビューのコールバック スイッチを有効にし、コールバック URL を設定します。URL はご利用のエンドポイントを指す必要があります。ビデオモデレーションイベントがトリガーされると、ApsaraVideo Live は指定された URL に対して HTTP POST リクエストを送信し、イベントの詳細を JSON 本文で配信します。
[OK] をクリックします。
API による設定
API | 説明 |
ビデオモデレーションコールバック構成を追加します。 | |
ビデオモデレーションコールバック構成を照会します。 | |
ビデオモデレーションコールバック構成を変更します。 | |
ビデオモデレーションコールバック構成を削除します。 |
コールバックパラメーター
通知には、モデレーションの詳細と問題のあるコンテンツから取得されたスナップショットの保存場所が含まれます。
パラメーター | タイプ | 説明 |
DomainName | String | ストリーミングドメイン。 |
AppName | String | ストリームの AppName。 |
StreamName | String | ストリーム名。 |
OssEndpoint | String | OSS エンドポイント。 |
OssBucket | String | OSS バケット。 |
OssObject | String | オブジェクト名。 |
Result | JSONArray | モデレーション結果。詳細については、「Result」をご参照ください。 |
Result
パラメーター | タイプ | 説明 |
BizType | String | ビジネスタイプ。このパラメーターはモデルを選択するために使用できます。デフォルト値はドメイン名です。 |
Scene | String | 検出シーン。
|
Label | String | 結果のカテゴリ。カテゴリは検出シーンによって異なります。
カテゴリ(
ロゴの
|
Rate | Float | 信頼度スコア。範囲:0 ~ 100。 説明 この値は参考情報です。ビジネスロジックでこの値を使用しないでください。 |
Extent | String | 予約パラメーター。 |
このバージョンは新規ユーザー向けにデフォルトで提供されます。既存のユーザーは現在のバージョンのままです。このバージョンを使用するには、チケットを送信してください。
例
{
"DomainName": "demo.aliyundoc.com",
"AppName": "liveApp****",
"StreamName": "liveStream****",
"OssEndpoint": "oss-cn-hang****.aliyuncs.com",
"OssBucket": "liveBucket****",
"OssObject": "example.jpg",
"Result": [
{
"BizType": "demo.aliyundoc.com",
"Result": [
{"Label": "Porn", "Rate": 11, "Suggestion": "review", "Scene": "porn", "Extent": {}},
{"Label": "Ad", "Rate": 11, "Suggestion": "review", "Scene": "ad", "Extent": {}}
]
}
]
}オーディオモデレーションコールバック
問題があると判断されたオーディオコンテンツに対してのみトリガーされます。
コンソールでの設定
ApsaraVideo Live コンソールにログインします。
左側のナビゲーションウィンドウで、機能管理 > イベントコールバック を選択します。
設定する ストリーミングドメイン名 を選択します。
Callback Settings タブで、Audio Moderation Callbacks スイッチを有効にし、コールバック URL を設定します。URL はご利用のエンドポイントを指す必要があります。ビデオモデレーションイベントがトリガーされると、ApsaraVideo Live は指定された URL に対して HTTP POST リクエストを送信し、イベントの詳細を JSON 本文で配信します。
[OK] をクリックします。
API による設定
API | 説明 |
オーディオモデレーションコールバック構成を追加します。 | |
オーディオモデレーションコールバック構成を削除します。 | |
オーディオモデレーションコールバック構成を変更します。 | |
オーディオモデレーションコールバック構成を照会します。 |
コールバックパラメーター
通知には、問題のあるオーディオの文字起こしテキストと次の 1 分間のコンテキスト情報が含まれます。
パラメーター | タイプ | 説明 |
DomainName | String | ストリーミングドメイン。 |
AppName | String | ストリームの AppName。 |
StreamName | String | ストリーム名。 |
Timestamp | Int | タイムスタンプ(秒単位)。 |
Result | JSONArray | モデレーション結果。詳細については、「Result」をご参照ください。 |
Result
パラメーター | タイプ | 説明 |
Scene | String | 検出シーン。 |
Label | String | 検出結果のカテゴリ。有効な値:
|
Suggestion | String | 推奨アクション。有効な値:
|
Rate | Float | 信頼度スコア。範囲:0 ~ 100。 説明 この値は参考情報です。ビジネスロジックでこの値を使用しないでください。 |
Details | JSONArray | 文字起こしされたオーディオの詳細。配列には 1 つ以上の要素が含まれ、各要素は 1 文に対応します。構造については、「Detail」をご参照ください。 |
Detail
パラメーター | タイプ | 説明 |
StartTime | Int | 文の開始タイムスタンプ(秒単位)。 |
EndTime | Int | 文の終了タイムスタンプ(秒単位)。 |
Text | String | 文字起こしテキスト。 |
Label | String | 検出結果のカテゴリ。有効な値:
|
例
{
"DomainName": "example.aliyundoc.com",
"AppName": "liveApp****",
"StreamName": "5d9747eba39b44769852d276f9ff****",
"Timestamp": 1572248095,
"Result": [
{
"Scene": "antispam",
"Label": "ad",
"Suggestion": "block",
"Rate": 99.91,
"Details": [
{
"StartTime": 1572248023,
"EndTime": 1572248040,
"Text": "ホテルでは 120 日間の無料宿泊が提供されます。友人や家族と共有できます。団結街 96 番地のレセプションセンターまでお越しください。ホットライン:2285699。",
"Label": "ad"
},
{
"StartTime": 1572248040,
"EndTime": 1572248070,
"Text": "温泉リゾートタウンの中心部に位置する、希少なクラシックヴィラのコレクションをご発見ください。有名な龍多温泉や歴史的な梁河金塔の隣にあり、贅沢と自然が融合する場所です。",
"Label": "normal"
},
{
"StartTime": 1572248072,
"EndTime": 1572248077,
"Text": "楽しいひとときと居心地のよい日々を、美しい皆さまと共に、より気楽にお過ごしください。",
"Label": "normal"
},
{
"StartTime": 1572248078,
"EndTime": 1572248086,
"Text": "fme043 忙しさから少し離れて、居心地のよい音楽と映画でお過ごしください。",
"Label": "normal"
}
]
}
]
}デュアルストリームディザスタリカバリコールバック
このコールバックは、フェールオーバーのためにストリームスイッチが発生したときに通知します。
コンソールでの設定
ApsaraVideo Live コンソールにログインします。
左側のナビゲーションウィンドウで、機能管理 > イベントコールバック を選択します。
設定する アップストリーミングドメイン を選択します。
コールバックの設定 タブで、デュアルストリームディザスタリカバリコールバック スイッチを有効にし、コールバック URL を設定します。
[OK] をクリックします。
コールバックパラメーター
パラメーター | 説明 |
action | イベントタイプ。固定値: |
domain | アップストリーミングドメイン。 |
appname | ストリームの AppName。 |
streamname | ストリーム名。 |
upstreamsequence | スイッチ後のプライマリストリームの識別子。 |
upstreamip | スイッチ後にプライマリストリームをプッシュするクライアントの IP アドレス。 |
upstreamtime | スイッチ後のプライマリストリームのアップストリーミング開始時刻。これは UNIX タイムスタンプ(秒単位)です。 |
changereason | スイッチオーバーの理由。 |
changetime | ストリームスイッチオーバーが発生した時刻。これは UNIX タイムスタンプ(秒単位)です。 |
time | コールバック通知が生成された時刻。これは UNIX タイムスタンプ(秒単位)です。 |
例
{
"action": "multistream_set_master_result",
"domain": "demo.aliyundoc.com",
"appname": "liveApp****",
"streamname": "liveStream****",
"upstreamsequence": "main",
"upstreamip": "203.**.***.10",
"upstreamtime": 17*****710,
"changereason": "merge_cut_manually",
"changetime": 17*****705,
"time": 17*****706
}コールバック認証
ApsaraVideo Live は、ストリームアップストリーミング、録画、スナップショット、およびデュアルストリームディザスタリカバリ の イベント に対してコールバック認証をサポートしています。有効にすると、認証は次のように機能します。
ApsaraVideo Live は、コールバックリクエストに ALI-LIVE-TIMESTAMP ヘッダーおよび ALI-LIVE-SIGNATURE ヘッダーを含めます。これにより、受信サーバーはコールバックリクエストが真正であり、改ざんされていないことを検証できます。
ALI-LIVE-SIGNATURE の計算
ALI-LIVE-SIGNATURE=MD5SUM(MD5CONTENT)
MD5CONTENT=Domain|ALI-LIVE-TIMESTAMP Value|Auth KEYここで:
Domain: ドメインソースはコールバックタイプによって異なります。ストリームアップストリーミングおよびデュアルストリームディザスタリカバリコールバックの場合: コールバック URL が設定されているアップストリーミングドメインを使用します。
録画およびスナップショットコールバックの場合: コールバック URL のドメインを使用します。たとえば、コールバック URL が
https://learn.aliyundoc.com/your/callbackの場合、ドメイン値はlearn.aliyundoc.comです。
ALI-LIVE-TIMESTAMP: リクエストが送信されたときの UNIX タイムスタンプ。単位:秒。Auth KEY: 対応するコールバック URL に設定された認証キー。
受信サーバー認証
コールバックメッセージを受信する際、コールバックメッセージ受信サーバーはコールバックタイプに基づいてコールバックドメインを決定します。その後、コールバックドメイン、ALI-LIVE-TIMESTAMP ヘッダーの値、および認証キーを連結し、この文字列の MD5 ハッシュを計算します。計算されたハッシュ値をリクエストの ALI-LIVE-SIGNATURE ヘッダーの値と比較します。値が一致しない場合、リクエストは未認証となります。
コールバックレコード
ApsaraVideo Live コンソールでは、ライブストリームのアップストリーミングおよび録画コールバックイベントの履歴とペイロードを表示できます。その他のコールバックタイプはサポートされていません。
制限事項
新しいコールバック構成または更新されたコールバック構成が有効になるまでに最大 5 分かかります。有効になると、コールバックレコードが期待どおりに表示されます。
過去 7 日間のコールバックレコードを最大 1,000 件まで利用できます。
操作手順
ApsaraVideo Live コンソールにログインします。
左側のナビゲーションウィンドウで、機能管理 > イベントコールバック をクリックします。
コールバック URL が設定されているアップストリーミングドメインまたはストリーミングドメインを選択します。
コールバックの記録 タブで、プッシュストリーミングコールバック または 録画コールバック を選択します。
時間範囲、AppName、および StreamName でコールバックレコードをフィルターできます。