ストリーム取り込みステータスのコールバックを設定すると、ストリーム取り込みの成功または中断に関するコールバック通知をタイムリーに受信できます。
制御ポリシー機能の動作
ApsaraVideo LiveはHTTP GETリクエストをサーバーに送信し、ストリームの取り込みが成功または中断したことをリアルタイムで通知します。 サーバーは、コールバックが成功したことを示すHTTPステータスコード200で応答します。
使用上の注意
コールバックURLは識別子を必要としませんが、アクセス可能でなければなりません。 URLレスポンスは次の要件に準拠しています。
コールバックURLへのアクセスがタイムアウトすると、ApsaraVideo LiveはURLへのアクセスを再試行します。 タイムアウト期間は5秒です。 ApsaraVideo Liveは、1秒間隔で最大5回のリトライを実行します。
コールバックロジック
Real-Time Messaging Protocol (RTMP) によるストリーム取り込み中、ApsaraVideo Liveは、ApsaraVideo LiveがOnPublishメッセージを受信してから2秒以内にストリーム取り込みクライアントが接続を閉じるかどうかを確認します。 ストリーム取り込みクライアントが接続を閉じない場合、ApsaraVideo Liveはストリーム取り込みの成功に関するコールバック通知を送信します。
互いに関連付けられた取り込みドメインAとストリーミングドメインBがあり、ストリーミングドメインBの通常のストリームプルとトリガーされたストリームプルを設定したとします。ストリームプルのステータスに関するコールバック通知を受信する場合は、取り込みドメインAのストリームインジェストコールバックを設定します。クライアントが2秒以内に接続を閉じない場合、ストリームプルは成功と見なされます。
説明コールバック通知とDescribeLiveStreamsOnlineList操作の呼び出しに対する応答に基づいて、ストリームの取り込みまたはプルが成功したことを確認した後、ストリーミングURLを発行することを推奨します。
ApsaraVideo Liveは、ストリーミングデータが10秒間ライブセンターにプッシュされない場合、ストリームの取り込みを自動的に終了します。
ストリーム取り込みコールバックロジック
デフォルトでは、ストリーム取り込みコールバックの認証は無効になっています。 ストリーム取り込みコールバックURLを指定すると、この機能を有効にできます。 この機能を有効にすると、次の認証ロジックが適用されます。
ApsaraVideo Liveがコールバックリクエストを開始すると、HTTPまたはHTTPSリクエストに
ALI-LIVE-TIMESTAMPおよびALI-LIVE-SIGNATUREヘッダーが含まれ、コールバックメッセージ受信サーバーが署名を認証できるようになります。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つの値が異なる場合、リクエストは無効です。
例:
サンプルコールバック:
http://1.1.1.1?action=publish&ip=192.168.XX.XX&id=world&app=example.aliyundoc.com&appname=liveApp****&time=1609220385&usrargs={Custom parameters}&
node=cdnvideocenter01020711****.cm3&height=720&width=1280パラメーター | 説明 |
action | イベント 有効な値:
|
ip | ストリーム取り込みクライアントのIPアドレス。 |
id | 取り込まれたストリームの名前。 |
app | 取り込みドメイン。 デフォルト値はカスタム取り込みドメインです。 取り込みドメインがない場合は、ストリーミングドメインが使用されます。 |
appname | ストリームを取り込むアプリケーションの名前。 |
time | UNIXタイムスタンプ。 単位は秒です。 |
usrargs | ストリームの取り込みに使用されるカスタムパラメーター。 |
node | CDNポイントオブプレゼンス (POP) またはストリームを受信するホストの名前。 |
height | 解像度の高さ。 単位: ピクセル。 説明 解決の高さと幅は、コールバックが初めて呼び出された場合にのみ返されます。 |
width | 解像度の幅。 単位: ピクセル。 |