ApsaraVideo Live は、録画テンプレートを使用して録画設定を管理します。システムは、URL 内のインジェストドメイン、アプリケーション名、ストリーム名に基づいて、インジェスト URL を対応する録画 テンプレートにマッピングします。
インジェストパラメータによる制御
録画テンプレートのトリガー方法が [Ingest parameter settings] に設定されている場合は、インジェスト URL の record_config パラメータを使用して、現在のストリームを録画するかどうかを直接制御できます。
パラメータ形式:
record_config={"NeedRecord": <true/false>}パラメータの説明:
trueは録画を有効化し、falseは録画を無効化します。注意:インジェスト URL を作成する際は、 パラメータを URL エンコードする必要があります。
例として、インジェスト URL が次のとおりであるとします:rtmp://push.example.com/live/stream1
このパラメータで録画を有効化するには、次のように URL を作成します:rtmp://push.example.com/live/stream1?record_config=%7B%22NeedRecord%22%3Atrue%7D&auth_key=xxx
制限事項:
このトリガー方法は、 ソースストリーム の録画のみをサポートし、 トランスコードされたストリーム はサポートしません。録画にトランスコードされたストリームが含まれる場合は、別のトリガー方法を選択してください。
HTTP コールバックによる制御
仕組み
ライブストリームがインジェストされると、該当する録画テンプレートのトリガー方法が [Callback confirmation] に設定されている場合は、ApsaraVideo Live は事前に設定した コールバック URL に HTTP リクエストを送信し、現在のストリームを録画するかどうかを確認します。
アプリケーションサーバーはリクエストを受信し、現在のビジネスロジックに基づいて録画指示 (許可または拒否) を返します。
ApsaraVideo Live は、レスポンスに基づいて録画を開始するか、スキップします。
最初に、ドメインのイベントコールバック設定で コールバック URL を設定する必要があります。詳細については、「ライブ録画コールバック」および「オンデマンド録画コールバック」をご参照ください。
リクエストパラメータ
パラメータ | タイプ | 説明 |
domain | String | インジェストドメイン。 |
app | String | アプリケーション名。 |
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レスポンスパラメータ
サーバーはコールバックリクエストを受信した後、HTTP 200 のステータスコードと、次のパラメータを含む JSON ボディを返す必要があります:
パラメータ | タイプ | 必須 | 説明 |
ApiVersion | String | No | API バージョン。デフォルト値:1.0。 |
NeedRecord | Bool | Yes | ストリームを録画するかどうかを指定します。 |
Interval | JSONObject | No | 形式ごとの録画間隔を指定します。有効範囲:5~21600。単位:秒。 |
Format | JSONArray | No | 録画形式。サポートされている形式は MP4、FLV、M3U8 です。 |
レスポンス例
{
"ApiVersion": "1.0",
"NeedRecord": true,
"Interval": {
"Mp4": 300,
"Flv": 120,
"M3U8": 180
},
"Format": ["mp4","flv"]
}レスポンスパラメータの処理
録画サービスはサーバーのレスポンスを受信すると、返されたパラメータを元の録画設定と比較し、以下のように上書きします:
Interval の上書き:レスポンスに
Intervalパラメータが含まれる場合は、その値が元の録画設定の録画間隔を上書きします。Format の積集合:レスポンスの
Formatパラメータは、元の録画設定で指定された形式との積集合が取られます。たとえば、元の録画テンプレートが MP4 および FLV 形式に設定されており、コールバックのレスポンスが["mp4", "m3u8"]の場合、MP4 形式のみが録画されます。積集合が空の場合、ストリームは録画されません。
コールバックエンドポイントは、HTTP 200 のステータスコードを返す必要があります。それ以外のステータスコードはコールバック失敗と見なされ、録画はデフォルトで無効になります。
コールバックのレスポンスボディの最大サイズは 2,048 バイトです。この上限を超えるレスポンスは、悪意のある攻撃を防止するために切り捨てられます。
注意事項
サービスでオンデマンドストリームプル機能を使用している場合 (ユーザーが再生を開始した場合にのみ ApsaraVideo Live がオリジンサーバーからストリームをプルし、視聴者がいなくなるとプルを停止するシナリオ)、以下の条件が適用されます:
録画の前提条件:オンデマンドストリームプルのシナリオでは、録画 (自動、オンデマンド、手動) はユーザーが再生を開始した後にのみ開始されます。
再生がない場合は録画されない:クライアントがストリームを再生していない場合、ApsaraVideo Live はオリジンサーバーからストリームをプルしないため、録画ファイルは生成されません。