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 回リトライします。
ドメインの適用範囲:
アップストリーミングおよびデュアルストリームディザスタリカバリのコールバックは、アップストリーミングドメインに対してのみ設定できます。
録画、スナップショット、およびコンテンツモデレーションのコールバックは、ストリーミングドメインに対してのみ設定できます。
コールバック管理
ストリーム取り込みのコールバック
このコールバックは、アップストリーミングの成功、ストリームの中断、アップストリーミングの例外など、ドメインのアップストリーミングステータスを通知します。コンソールまたは API を使用してコールバック URL を設定します。
コンソールでの設定
ApsaraVideo Live コンソールにログインします。
左側のナビゲーションウィンドウで、機能管理 > イベントコールバック を選択します。
設定する アップストリーミングドメイン を選択します。
コールバックの設定 タブで、プッシュストリーミングコールバック スイッチを有効にし、次のパラメーターを設定します。
コールバックタイプ:アップストリーミングおよび中断イベント、または例外イベントのコールバックを設定します。
コールバック URL:通知を受信するためのパブリックエンドポイント。アップストリーミングおよび中断イベントは HTTP GET を使用し、例外イベントは HTTP POST を使用します。
コールバック認証:認証を有効にするかどうかを選択します。有効にした場合は、認証キーを入力します。認証プロセスについては、「コールバック認証」をご参照ください。
[OK] をクリックします。
取り込み成功の追加の確認方法
アップストリーミングコールバックに加えて、以下の方法でストリームが正常にアップストリーミングされたかを確認できます。
Web プレーヤーで canplay イベントをリッスンする:Web プレーヤーを初期化した後、ストリームをアップストリーミングしてから再生します。ストリームが存在し、再生可能な場合、canplay イベントがトリガーされます。ストリームが存在しない場合は、エラーが返されます。
RTS デモページでストリームを検証する:[アップストリーミング] タブで、アップストリーミング URL を入力し、ローカルストリームを作成してからアップストリーミングを開始します。[ストリーミング] タブに切り替え、artc:// プロトコルを使用する必要があるストリーミング URL を入力し、再生を開始してストリームが正常に再生されるかを確認します。
これらの方法は補助的な確認手段です。アップストリーミングコールバックを使用してアップストリーミングステータスを判断することを推奨します。
API による設定
API | 説明 |
取り込みコールバック構成を追加します。 | |
インジェストコールバック構成を照会します。 | |
インジェストコールバック構成を削除します。 |
アップストリーミングおよび中断イベント
コールバックロジック
ストリームプッシュの場合、ApsaraVideo Live が OnPublish メッセージを受信した後、ライブソースが少なくとも 2 秒間接続されたままであれば、ApsaraVideo Live はアップストリーミング成功のコールバックを送信します。
ストリーミングドメイン (ドメイン B) でストリームフェッチング (固定時間またはオンデマンド) を使用し、コールバック通知が必要な場合は、関連付けられたアップストリーミングドメイン (ドメイン A) のアップストリーミングコールバックを設定します。ロジックは一貫しており、接続が確立されると、ライブソースが少なくとも 2 秒間接続されたままであれば、ストリームフェッチングは成功と見なされます。
ストリームが正常にアップストリーミングされたかどうかを判断するために、コールバック通知のみに依存しないでください。API を呼び出してオンラインストリームリストをクエリすることを推奨します。ストリームがアクティブであることを確認してから、再生 URL をユーザーに配布してください。
ApsaraVideo Live のライブセンターが 10 秒間データを受信しない場合、サービスは自動的にアップストリーミング接続を終了します。
パラメーター
パラメーター | 説明 |
action | コールバックをトリガーしたイベントのタイプ。
|
ip | 取り込みクライアントの IP アドレス。 |
id | ストリーム名。 |
app | アップストリーミングドメイン。アップストリーミングドメインが関連付けられていない場合、このパラメーターはストリーミングドメインを返します。 |
appname | ストリームの AppName。 |
time | コールバックが送信されたときの UNIX タイムスタンプ (秒単位)。 |
usrargs | ユーザー定義のインジェストパラメーター。 |
node | ストリームを受信するエッジノード (POP) またはサーバー。 |
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 リクエストを使用します。
トリガーイベント:[ファイル生成] または [ファイル生成と録画ステータス] を選択します。
オンデマンドコールバック 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 へのアクセス権限がないか、権限付与が取り消されています。 |
オンデマンド録画コールバック
オンデマンド録画を使用すると、ストリームのメタデータに基づいてライブストリームを録画するかどうかをプログラムで決定できます。
ライブストリームが事前に設定されたオンデマンド録画テンプレート (ドメイン、アプリ、またはストリームレベル) に一致すると、録画サービスはご利用の オンデマンドコールバック 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 は、ライブスナップショットのイベント通知をサポートしています。コンソールまたは API を介してコールバック URL を設定できます。
コンソールでの設定
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 は、ビデオおよびオーディオのモデレーション結果に関するイベント通知をサポートしています。コンソールまたは API を介してコールバック URL を設定できます。
ビデオモデレーションコールバック
問題ありと判定されたビデオコンテンツに対してのみトリガーされます。
コンソールでの設定
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 コンソールにログインします。
左側のナビゲーションウィンドウで、機能管理 > イベントコールバック を選択します。
設定する ストリーミングドメイン名 を選択します。
[コールバック設定] タブで、[オーディオモデレーションコールバック] スイッチを有効にし、コールバック 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 つ以上の要素が含まれ、各要素は文に対応します。構造については、「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 でコールバックレコードをフィルターできます。