ApsaraVideo Liveは、ストリーム取り込みステータス、ライブストリーム録画、ライブストリームスナップショット、およびコンテンツモデレーションのコールバックを提供します。 このトピックでは、ApsaraVideo Liveコンソールでこれらのコールバックを設定する方法について説明します。
使用上の注意
ApsaraVideo Liveは、HTTPおよびHTTPSコールバックを使用したイベント通知をサポートしています。 HTTPサービスをデプロイしてコールバックメッセージを受信し、ApsaraVideo Liveコンソールを使用するかAPI操作を呼び出してコールバックURLを設定する必要があります。
ストリーム取り込みが開始または中断されると、ApsaraVideo Liveは指定されたコールバックURLにHTTP GETリクエストを送信します。 特定のイベントコンテンツは、URLパラメータに含まれる。
他のイベントがトリガーされると、ApsaraVideo Liveは指定されたコールバックURLにHTTP POSTリクエストを送信します。 特定のイベントコンテンツは、JSON形式のリクエストボディに含まれます。
シナリオ
ライブストリーミング中にイベントがトリガーされると、Alibaba Cloudがサーバーにリクエストを送信し、サーバーがリクエストに応答します。 リクエストが検証に合格すると、JSON形式のデータを含むコールバックメッセージが返されます。
ApsaraVideo Liveは、ストリーム取り込みステータス、ライブストリーム録画 (オンデマンド録画) 、ライブストリームスナップショット、コンテンツモデレーション (ビデオモデレーションとオーディオモデレーション) などのイベントのコールバックをサポートしています。 コールバックパラメーターとさまざまなコールバックイベントの例については、「コールバックの管理」をご参照ください。
制限事項
コールバックURLは識別子を必要としませんが、アクセス可能でなければなりません。 特定のタイムアウト期間内にURLから応答が返されない場合、ApsaraVideo LiveはURLへのアクセスを再試行します。 現在のタイムアウト時間は5秒です。 5秒以内に応答が返されない場合、ApsaraVideo Liveは1秒間隔で最大5回URLへのアクセスを再試行します。
取り込みドメインのみのストリーム取り込みコールバックを設定および変更できます。 ストリーミングドメインに対してのみ、記録コールバック、スナップショットコールバック、ビデオモデレーションコールバック、およびオーディオモデレーションコールバックを設定および変更できます。
機能の説明
コールバックは、ストリーム取り込みコールバックとストリーミングコールバックに分けられます。
ストリーム取り込みコールバック: 取り込みドメインのストリーム取り込みコールバックとコールバック認証を設定できます。
ストリーミングコールバック: ストリーミングドメインに対して、録音コールバック、スナップショットコールバック、ビデオモデレーションコールバック、オーディオモデレーションコールなどのストリーミングコールバックを設定できます。
OSSでの記録コールバックレコードとコールバックコンテンツを表示できます。 詳細については、「コールバックレコードの表示」をご参照ください。
手順
ApsaraVideo Liveコンソールにログインします。
左側のナビゲーションウィンドウで、[機能管理] > [コールバック] を選択します。 [コールバック] ページが表示されます。
設定する取り込みドメインまたはストリーミングドメインを選択します。 取り込みドメインはストリーム取り込みコールバックをサポートし、ストリーミングドメインは記録コールバック、スナップショットコールバック、ビデオモデレーションコール、およびオーディオモデレーションコールをサポートします。
[コールバック設定] タブで、コールバックを設定します。
ストリーム取り込みコールバックロジック
ストリーム取り込みステータスのコールバックロジック:
Real-Time Messaging Protocol (RTMP) によるストリーム取り込み中、ApsaraVideo Liveは、ApsaraVideo LiveがOnPublishメッセージを受信してから2秒以内にストリーム取り込みクライアントが接続を閉じるかどうかを確認します。 ストリーム取り込みクライアントが接続を閉じない場合、ApsaraVideo Liveはストリーム取り込みの成功に関するコールバック通知を送信します。
たとえば、取り込みドメインAとストリーミングドメインBがあります。ストリーミングドメインBの通常のストリームプルとトリガーされたストリームプルを設定できます。ストリームプルのステータスに関するコールバック通知を受信する場合は、取り込みドメインAのストリーム取り込みコールバックを設定します。設定後、apsaraVideo Liveは、ストリームインジェストステータスと同じコールバックロジックを使用して、ストリーミングドメインBでのストリームプルステータスに関するコールバック通知を送信します。デフォルトでは、接続確立後2秒以内にストリームプルクライアントが接続をクローズしない場合、ApsaraVideo Liveはストリームプルの成功に関するコールバック通知を送信します。 この場合、ライブストリーミングデータが受信されます。
コールバック通知とアクティブなストリームのリストに基づいて、ストリームの取り込みまたはプルが成功したと判断した後にのみ、ストリーミングURLを配信することをお勧めします。
コールバック認証
デフォルトでは、ストリーム取り込みコールバックの認証は無効になっています。 ストリーム取り込みコールバックURLを指定すると、この機能を有効にできます。 この機能を有効にすると、次の認証ロジックが適用されます。
ApsaraVideo Liveがコールバックリクエストを開始すると、ALI-LIVE-TIMESTAMPフィールドとALI-LIVE-SIGNATUREフィールドがHTTP(S) リクエストヘッダーに含まれます。 コールバックメッセージ受信サーバは、フィールドを認証して署名する。 ALI-LIVE-SIGNATUREの値は、次の式に基づいて計算されます。
ALI-LIVE-SIGNATURE = MD5SUM (MD5CONTENT) MD5CONTENT =ドメイン名 | ALI-LIVE-TIMESTAMP値 | 暗号鍵
説明ドメイン名は、コールバックURLを設定するインジェストドメインです。 暗号化キーは、コールバックURLに指定する暗号化キーです。
コールバックメッセージを受信した後、コールバックメッセージ受信サーバーは、コールバックのドメイン名、ALI-LIVE-TIMESTAMPヘッダーの値、および暗号化キーを上記の形式で連結します。 サーバーは文字列のMD5値を計算して暗号化文字列を取得します。 次に、サーバーは暗号化された文字列を、ApsaraVideo Liveによって開始されたHTTPまたはHTTPSリクエストのALI-LIVE-SIGNATUREヘッダーの値と比較します。 2つの値が異なる場合、リクエストは無効です。