ライブストリーム録画は、インジェストされたストリームをキャプチャし、オンデマンド再生用に指定の保存先に保存します。ApsaraVideo Live は、ApsaraVideo VOD への保存とObject Storage Service (OSS) への保存の 2 つのストレージオプションを提供します。
機能概要
仕組み
録画中、システムはインジェストされたライブストリームをトランスポートストリーム (TS) ファイルに分割し、FLV、MP4、M3U8 などのターゲット形式にパッケージ化します。最終ファイルは、指定したストレージスペースに保存されます。
ライブストリーム録画で変更されるのは、音声と映像のコンテナフォーマットのみです。エンコーディング層のコンテンツは変更されません。ソースストリームに映像アーティファクトや音声と映像の同期ズレなどの問題がある場合、録画ファイルにもこれらの不具合が残ります。
音声と映像のエンコーディング形式
ライブストリーム録画では、最初にライブストリームを TS ファイルに分割するため、ストリームのエンコーディング形式は TS コンテナと互換性がある必要があります。ApsaraVideo Live は、次のエンコーディング形式のみをサポートしています:
ビデオコーデック:H.264 (AVC)、H.265 (HEVC)、MPEG-4
オーディオコーデック:AAC、MP3
ライブストリームに、上記以外の形式でエンコードされた音声または映像が含まれている場合、録画に失敗する、録画がブラックスクリーンになる、音声が出ないなどの問題が発生する可能性があります。
ストレージ方式の比較
ライブストリーム録画には、ApsaraVideo VOD と OSS の 2 つのストレージオプションがあります。同じライブストリームでは、両方のストレージオプションを同時に設定することはできません。ビジネス要件に基づいて、いずれかを選択してください。
項目 | ApsaraVideo VOD に保存 | OSS に保存 |
関連製品 | ApsaraVideo VOD | OSS |
ストレージ形式 |
|
|
録画の後処理 | 録画動画の自動マージやトランスコーディングといったメディア処理機能をサポートします。 | 手動での処理が必要です。 |
ユースケース | クリッピング、トランスコーディング、合成など、録画コンテンツのポストプロダクション作業に最適です。 | 録画コンテンツの長期ストレージと管理に最適です。 |
録画のトリガー方法
ライブストリーム録画には、自動録画、オンデマンド録画、インジェストパラメーターによるトリガー、手動録画の 4 つの方法があります。
自動録画
ApsaraVideo Live は録画テンプレートを使用して録画設定を管理します。システムは、インジェスト URL 内のDomainName、AppName、StreamName に基づいて自動録画テンプレートを照合します。
マッチングロジック
完全一致:録画テンプレートで、特定の
AppNameとStreamNameを指定します。これにより、テンプレートはその特定のライブストリームにのみ適用されます。ワイルドカード一致:録画テンプレートで、
AppNameを*に設定すると、ドメイン配下のすべてのアプリケーションにテンプレートが適用されます。StreamNameを*に設定すると、アプリケーション内のすべてのライブストリームにテンプレートが適用されます。ワイルドカードテンプレートの制限:
AppNameとStreamNameの両方を*に設定する場合、このようなワイルドカード録画テンプレートは、ドメインごとに 1 つのみ許可されます。コンソールでの送信が失敗した場合は、ドメインにワイルドカードテンプレートが既に存在するかどうかを確認してください。設定を変更するには、新しいテンプレートを作成するのではなく、既存のワイルドカードテンプレートを編集します。
オンデマンド録画
オンデマンド録画を使用すると、ビジネスルールに基づいてライブストリームを録画するかどうかを動的に決定できます。
ワークフロー:
ライブストリームが開始されると、照合された録画テンプレートが「オンデマンド録画」に設定されている場合、ライブストリーミングサービスは事前に設定されたオンデマンドコールバック URL に HTTP リクエストを送信し、ストリームを録画するかどうかを問い合わせます。
お客様のアプリケーションはリクエストを受信し、現在のビジネスロジックに基づいて録画コマンド (許可または拒否) を返します。
ライブストリーミングサービスは、お客様の応答に基づいて録画タスクを開始します。
まず、イベントコールバック設定でライブストリーム録画用のオンデマンドコールバック URL を指定する必要があります。設定、リクエストパラメーター、応答形式の詳細については、「ライブストリーム録画のコールバック」と「オンデマンド録画のコールバック」をご参照ください。
注:
録画サービスは、コールバック応答を処理してテンプレート設定をオーバーライドします:
Interval:指定した Interval 値は、録画テンプレートで設定された録画サイクルをオーバーライドします。Format:サービスは、リクエストした Format と録画テンプレートで事前に設定されたフォーマットとの共通部分を計算します。共通のフォーマットがない場合、ストリームは録画されません。コールバック頻度:単一のライブストリームの場合、オンデマンド録画コールバックは、ストリームのプッシュ開始時に確認の HTTP リクエストを 1 回だけ送信します。ストレージフォーマットが M3U8 であっても、または配信中にストリームが切断されて再接続されても、このリクエストは再送信されません。
インジェストパラメーターによるトリガー
トリガー方法が「インジェストパラメーターによるトリガー」に設定されている場合、インジェスト 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
手動録画
ビジネスロジックに基づいて録画プロセスを完全に制御するには、手動録画を使用します。
RealTimeRecordCommand API を呼び出して、特定のライブストリームの録画を手動で開始できます。
この API は録画の停止もサポートしています。このインターフェイスを呼び出すことで、開始方法 (自動、オンデマンド、手動) を問わず、現在の録画タスクを強制的に停止できます。
「RealTimeRecordCommand」API ドキュメントを参照し、command パラメーターを使用して start または stop 操作を実行してください。
ApsaraVideo VOD への録画保存
前提条件
ApsaraVideo VOD サービスを有効化し、ストレージバケットを設定します。バケットは、設定するドメインのライブセンターと 同じリージョン にある必要があります。
設定
ApsaraVideo Live は録画テンプレートを使用して録画設定を管理します。コンソールまたは API を使用して、ApsaraVideo VOD に録画を保存するための録画テンプレートを作成できます。
録画はライブストリームの開始前に設定する必要があります。そうしないと、システムはストリームデータを保持しません。ストリーム配信が開始される前に、必ず録画設定を完了してください。
方法 1:コンソール
ApsaraVideo Live コンソールにログインします。
左側のナビゲーションバーで、機能管理 > ライブストリームのレコーディング を選択します。録画設定 タブで、VOD を選択します。
設定するストリーミングドメインを選択し、追加 をクリックします。
録画テンプレートを設定します。
基本的な録画設定
パラメーター
説明
[アプリケーション名]
アプリケーション名は、有効にするにはストリーム取り込み URL の AppName と同じである必要があります。ドメイン配下のすべてのアプリケーションに適用するには、
*を入力します。[ストリーム名]
特定のストリームを録画するための完全一致に対応しています。現在の AppName 配下のすべてのライブストリームを録画するには、
*を入力します。[ストレージアプリケーションの容量]
ApsaraVideo VOD サービスで作成された、録画ファイルの保存先となるワークスペースです。ワークスペースが有効になっていない場合、このフィールドは表示されません。
[ストレージアドレス]
現在のリージョンの ApsaraVideo VOD サービスで作成された保存場所を選択できます。デフォルトでは、システムは ApsaraVideo VOD で設定されたデフォルトのアップロードアドレスを使用します。
[録画コンテンツ]
ソースストリーム または トランスコードストリーム を録画できます。両方を同時に選択できます。
トランスコードストリーム を選択すると、最大 10 個のトランスコードテンプレートを指定するか、すべてのトランスコードテンプレートを選択できます。
トランスコードストリームの録画は、トランスコードテンプレートの AppName が
*であるか、録画テンプレートの AppName と同じ場合にのみ有効になります。[トリガー方法]
録画は、次の方法でトリガーできます: 自動録画、コールバックの確認、アップストリーミングパラメータの設定、および手動録画です。
詳細については、「録画のトリガー方法」をご参照ください。
[ストレージ形式]
M3U8、FLV、MP4 形式に対応しています。複数のフォーマットを選択した場合、フォーマットごとに VOD 設定を個別に設定できます。
[録画時間]
単一の録画ファイルあたりの最大時間です。ライブストリームの時間がこのしきい値を超えると、システムは新しいファイルを生成します。デフォルト: 180 分。範囲: 15〜360 分。
[ストリーム切断後のマージ時間]
ライブストリームの中断がこの時間より短い場合、同じファイルへの録画が再開されます。中断がこの時間を超える場合は、新しいファイルが作成されます。デフォルト: 180 秒。範囲: 15〜21,600 秒。
[単一セグメント時間]
単一の TS セグメントの時間です。これは、M3U8 形式を選択した場合にのみ表示されます。
デフォルト: 30 秒。範囲: 5〜30 秒。
VOD 設定
ApsaraVideo VOD に録画を保存する際、これらの設定を使用して ApsaraVideo VOD のメディア処理機能で録画ファイルを処理できます。複数の録画フォーマットを選択した場合、それぞれを個別に設定できます。
パラメーター
説明
[自動マージ]
有効にすると、ライブストリームの終了後、録画周期ごとに作成された複数のファイルが自動的に 1 つの録画ファイルにマージされ、ApsaraVideo VOD に保存されます。元の録画ファイルは保持されます。
[動画処理]
ApsaraVideo VOD サービスを使用して、録画された動画を処理します。
[ソース動画]: 各録画ファイルが個別に処理されます。
[マージ後の動画]: マージされたファイルを処理します (自動マージを有効にした場合に表示されます)。
[処理方法]
サポート対象はトランスコードテンプレートグループでの処理 と ワークフローでの処理です。
[処理テンプレート]
ApsaraVideo VOD サービスからトランスコードテンプレートグループまたはワークフローテンプレートを選択します。
注: ドメインのライブセンターと同じリージョンで作成されたテンプレートのみ選択できます。
[動画カテゴリ]
ApsaraVideo VOD サービスで録画ファイルのカテゴリを設定します。
OK をクリックして録画テンプレートを作成します。
方法 2:API
AddLiveRecordVodConfig API を呼び出して、ApsaraVideo VOD に録画を保存するための設定を追加します。サンプルコード:
// API リクエストのパラメーター設定
AddLiveRecordVodConfigRequest.RecordFormat recordFormat0 = AddLiveRecordVodConfigRequest.RecordFormat.builder()
.format("m3u8")
.sliceDuration(30)
.autoCompose("ON")
.videoProcess("origin,compose")
.processMethod("transcode")
.processTemplateId("e2d796d3bb5fd8049d32bff62f94****")
.tags("sports")
.build();
AddLiveRecordVodConfigRequest addLiveRecordVodConfigRequest = AddLiveRecordVodConfigRequest.builder()
.regionId("<Your RegionID>")
.domainName("<Your DomainName>")
.appName("live")
.streamName("stream1")
.cycleDuration(3600)
.spaceId("app-1000000")
.storageLocation("<Your StorageLocation>")
.onDemand(0)
.recordContent("raw,transcode")
.delayTime(180)
.recordFormat(java.util.Arrays.asList(recordFormat0))
.transcodeTemplates(java.util.Arrays.asList("sd"))
// リクエストレベルの設定を上書きし、Http リクエストパラメーターなどを設定できます。
// .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
.build();主要なパラメーター
OnDemand録画のトリガー方法。有効な値:0 (自動録画)、1 (オンデマンド録画)、2 (取り込みパラメーター設定)、3 (手動録画)、7 (コールバック確認)。詳細については、「録画のトリガー方法」をご参照ください。
DelayTime中断されたストリームのスプライシング時間 (秒)。ライブストリームの中断がこの時間より短い場合、同じファイルへの録画が再開されます。中断がこの時間を超える場合は、新しいファイルが作成されます。
RecordContent、TranscodeTemplatesソースストリームまたはトランスコードストリームのどちらを録画するかを指定します。トランスコードストリームを録画する場合は、トランスコードテンプレート ID を指定する必要があります。
RecordFormat: ストレージフォーマットと VOD 設定を設定します。これには以下が含まれます:AutoCompose: 有効にすると、ライブストリームの終了後、録画周期ごとに作成された複数のファイルが自動的に 1 つのファイルにマージされます。VideoProcess、ProcessMethod、ProcessTemplateId: ApsaraVideo VOD のトランスコードまたはワークフローテンプレートを使用して、元の録画ファイルまたは自動マージされた動画を処理します。
詳細については、「AddLiveRecordVodConfig - ライブ録画を VOD に保存する設定の追加」をご参照ください。
録画の管理
ApsaraVideo Live コンソールで ApsaraVideo VOD 内の録画を表示したり、ApsaraVideo VOD サービスで管理したりできます。
ApsaraVideo Live コンソールにログインします。
左側のナビゲーションバーで、機能管理 > ライブストリームのレコーディング を選択し、録画ファイル管理 タブをクリックします。
設定したストリーミングドメインを選択します。
VOD タブをクリックします。
日付範囲、
AppName、StreamNameで録画履歴をフィルタリングできます。特定の録画ファイルを表示および管理するには、「操作」列の VOD コンソールで録画を管理 をクリックするか、ApsaraVideo VOD コンソールにログインして [メディアライブラリ] > [オーディオ/ビデオ] を選択します。
OSS への録画保存
前提条件
OSS サービスを有効化し、ストレージバケットを作成します。OSS バケットは、設定するドメインのライブセンターと同じリージョンにある必要があります。
ApsaraVideo Live が OSS に書き込むための権限を設定します。これは通常、サービスを有効化する際に自動的に承認されます。誤って権限を削除してしまった場合は、クラウドリソースへのアクセスを承認をクリックして再度権限を付与できます。
承認を完了するには、Alibaba Cloud アカウントを使用することを推奨します。RAM ユーザーを使用する場合、そのユーザーは ram:CreateRole、ram:GetRole、ram:ListPoliciesForRole、および ram:AttachPolicyToRole の権限を持っている必要があります。これらの権限を RAM ユーザーに付与することはセキュリティリスクを伴うため、推奨されません。
設定
ApsaraVideo Live は録画テンプレートを使用して録画設定を管理します。コンソールまたは API を使用して、OSS に録画を保存するための録画テンプレートを作成できます。
テンプレートを設定した後、変更を有効にするには、インジェストストリームを再起動する必要があります。ストリームを最初から確実に録画するには、ストリームが開始される前にテンプレートを作成します。
方法1:コンソール
ApsaraVideo Live コンソールにログインします。
左側メニューで、機能管理 > ライブストリームのレコーディング を選択します。録画設定 タブで、OSS を選択します。
設定するストリーミングドメインを選択し、追加 をクリックします。
録画テンプレートを設定します。ソースストリーム、トランスコードストリーム、またはその両方を録画することを選択できます。
基本的な録画設定
パラメーター
説明
[アプリケーション名]
アプリケーション名。この設定を有効にするには、プッシュ URL の AppName と一致させる必要があります。ドメイン配下のすべてのアプリケーションに設定を適用する場合は、
*を入力します。[ストリーム名]
ストリーム名。特定のストリームを録画するために、完全一致のストリーム名を指定できます。現在の AppName 配下のすべてのライブストリームを録画するには、
*を入力します。[格納場所]
現在のリージョンの OSS で作成されたバケットを選択できます。
説明ストレージバケットには2種類あります:
標準バケット:一般的なファイル保存に使用されます。
メディアバケット:ビデオトランスコーディング専用です。このタイプのバケットに保存されたファイルは、ApsaraVideo Media Processing (MPS) のトランスコーディングジョブを自動的にトリガーできます。
現在、システムはバケットの種類をラベル付けしていません。ビデオトランスコーディングを実行する必要がある場合は、トランスコードされたファイルが正しく保存されるように、メディアバケット名を記録しておくようにしてください。
[切断のスプライス時間]
ライブストリームの中断がこの時間より短い場合、録画は同じファイルに再開されます。中断が長い場合は、新しいファイルが作成されます。デフォルト:180 秒。範囲:15~21,600 秒。
[トリガー方法]
次の方法で録画をトリガーできます。自動録画、コールバックの確認、アップストリーミングパラメータの設定、および手動録画。
詳細については、「録画のトリガー方法」をご参照ください。
ソースストリームの録画
パラメーター
説明
[格納形式]
M3U8、FLV、MP4、CMAF 形式をサポートしています。複数のフォーマットを選択できますが、M3U8 と CMAF を同時に選択することはできません。
[命名規則]
録画ファイルの命名規則。デフォルトのパス:
M3U8、FLV、MP4:
record/{AppName}/{StreamName}/{EscapedStartTime}_{EscapedEndTime}TS、fMP4:
record/{AppName}/{StreamName}/{UnixTimestamp}_{Sequence}[単一セグメント時間]
単一の TS セグメントの期間。これは、M3U8 または CMAF 形式を選択した場合にのみ表示されます。
デフォルト:30 秒。範囲:5~30 秒。
[録画時間]
単一の録画ファイルの最大時間。ライブストリームの時間がこのしきい値を超えると、システムは新しいファイルを生成します。デフォルト:180 分。範囲:15~360 分。
トランスコードストリームの録画
パラメーター
説明
[トランスコードストリームの選択]
録画するトランスコードストリームを選択します。最大 10 個のトランスコードテンプレートを指定するか、すべてを選択できます。
トランスコードストリームの録画が機能するには、トランスコードテンプレートの AppName が
*であるか、録画テンプレートの AppName と一致する必要があります。[格納形式]
M3U8、FLV、MP4、CMAF 形式をサポートしています。複数のフォーマットを選択できますが、M3U8 と CMAF を同時に選択することはできません。
[命名規則]
録画ファイルの命名規則。デフォルトのパス:
M3U8、FLV、MP4:
transcodeRecord/{AppName}/{StreamName}_{TranscodingTemplateID}/{EscapedStartTime}_{EscapedEndTime}TS、fMP4:
transcodeRecord/{AppName}/{StreamName}_{TranscodeTemplateID}/{UnixTimestamp}_{Sequence}[単一セグメント時間]
単一の TS セグメントの期間。これは、M3U8 または CMAF 形式を選択した場合にのみ表示されます。
デフォルト:30 秒。範囲:5~30 秒。
[録画時間]
単一の録画ファイルの最大時間。ライブストリームの時間がこのしきい値を超えると、システムは新しいファイルを生成します。デフォルト:180 分。範囲:15~360 分。
OK をクリックして録画テンプレートを作成します。
方法2:API
AddLiveAppRecordConfig API を呼び出して、OSS に録画を保存するための設定を追加します。サンプルコード:
// APIリクエストのパラメーター設定
AddLiveAppRecordConfigRequest.TranscodeRecordFormat transcodeRecordFormat0 = AddLiveAppRecordConfigRequest.TranscodeRecordFormat.builder()
.sliceDuration(30)
.sliceOssObjectPrefix("transcodeRecord/{AppName}/{StreamName}_{TranscodeTemplateID}/{UnixTimestamp}_{Sequence}")
.ossObjectPrefix("transcodeRecord/{AppName}/{StreamName}_{TranscodeTemplateID}/{EscapedStartTime}_{EscapedEndTime}")
.cycleDuration(900)
.format("m3u8")
.build();
AddLiveAppRecordConfigRequest.RecordFormat recordFormat0 = AddLiveAppRecordConfigRequest.RecordFormat.builder()
.sliceDuration(30)
.format("m3u8")
.cycleDuration(900)
.sliceOssObjectPrefix("record/{AppName}/{StreamName}/{UnixTimestamp}_{Sequence}")
.ossObjectPrefix("record/{AppName}/{StreamName}/{EscapedStartTime}_{EscapedEndTime}")
.build();
AddLiveAppRecordConfigRequest addLiveAppRecordConfigRequest = AddLiveAppRecordConfigRequest.builder()
.domainName("<Your DomainName>")
.appName("live")
.ossEndpoint("<Your OssEndpoint>")
.ossBucket("<Your OssBucket>")
.streamName("stream1")
.onDemand(0)
.delayTime(180)
.recordFormat(java.util.Arrays.asList(recordFormat0))
.transcodeRecordFormat(java.util.Arrays.asList(transcodeRecordFormat0))
.transcodeTemplates(java.util.Arrays.asList("sd"))
// リクエストレベルの設定を上書きし、Httpリクエストパラメーターなどを設定できます。
// .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
.build();主要なパラメーター
OnDemand録画のトリガー方法。有効な値:0 (自動録画)、1 (オンデマンド録画)、2 (インジェストパラメーター設定)、7 (手動録画)。詳細については、「録画のトリガー方法」をご参照ください。
DelayTime中断されたストリームのスプライシング時間 (秒)。ライブストリームの中断がこの時間より短い場合、録画は同じファイルに再開されます。中断が長い場合は、新しいファイルが作成されます。
RecordFormatソースストリームの保存フォーマットと録画パラメーター。これには、
Format(保存フォーマット)、OssObjectPrefix(命名規則)、SliceDuration(セグメント期間)、CycleDuration(録画周期) が含まれます。TranscodeTemplates、TranscodeRecordFormatトランスコードストリームを録画する場合は、トランスコードテンプレート ID のリストと、トランスコードストリームの保存フォーマットおよび録画パラメーターを指定します。
パラメーターの完全な説明については、「AddLiveAppRecordConfig - 録画設定の追加」をご参照ください。
録画の管理
録画の表示
OSS に保存された録画は、3つの方法で表示できます:
方法1:コンソール
ApsaraVideo Live コンソールにログインします。
左側メニューで、機能管理 > ライブストリームのレコーディング を選択します。録画ファイル管理 タブをクリックします。
設定済みのストリーミングドメインを選択します。
OSS タブをクリックします。
日付範囲、
AppName、StreamNameで録画レコードをフィルタリングできます。
方法2:API
ApsaraVideo Live は、特定の期間内のすべての録画インデックスファイルをクエリするための API を提供します。ApsaraVideo Live はインデックスファイル情報を6か月間のみ保存するため、クエリはこの期間のデータに限定されます。API 呼び出しの詳細とパラメーター設定については、「DescribeLiveStreamRecordIndexFiles - 期間内のすべての録画インデックスファイルのクエリ」をご参照ください。
方法3:OSS
録画機能を設定した際に、OSS 内の録画ファイルの保存場所を指定しました。OSS 内のファイルを表示するには、「オブジェクトのリスト」をご参照ください。
コンテンツの結合と抽出
OSS に録画を保存する際、新しいインデックスファイルを作成して、特定の期間からクリップを抽出したり、複数の録画ファイルを1つに結合したりできます。
結合または抽出するには、録画されたコンテンツに M3U8 保存フォーマットが含まれている必要があります。
方法1:コンソール
ApsaraVideo Live コンソールにログインします。
左側メニューで、機能管理 > ライブストリームのレコーディング を選択します。録画ファイル管理 タブを選択します。
設定済みのストリーミングドメインを選択します。
OSS タブを選択します。
インデックスファイルの編集と作成 をクリックします。ストリーミングドメイン、AppName、StreamName、および時間範囲で録画ファイルをフィルタリングします。
タイムラインで録画コンテンツが含まれる期間を表示できます。開始時刻と終了時刻を設定し、新規ファイルとして保存 をクリックして新しく生成された M3U8 ファイルを保存します。
方法2:API
ApsaraVideo Live は、新しいインデックスファイルを作成するための API を提供します。TS セグメント情報は ApsaraVideo Live システムに3か月間のみ保存されるため、過去3か月以内に録画されたコンテンツのみを選択できます。
API 呼び出しの詳細とパラメーター設定については、「CreateLiveStreamRecordIndexFiles - 録画インデックスファイルの作成」をご参照ください。
録画の削除
ApsaraVideo Live は、AppName、StreamName、OSS ファイルの保存パスなどの録画情報を保存します。実際の録画ファイルは OSS に保存されます。
ApsaraVideo Live の録画情報を削除すると同時に OSS 内のファイルを削除するには、AliyunMTSVideoLifecycleRole サービスロールを作成し、それに AliyunMTSVideoLifecycleRolePolicy システムポリシーを付与する必要があります。クリックして承認することで、ワンクリックで承認できます。
次の方法で録画ファイルを削除できます:
Live コンソール:録画ファイル管理 タブで、ファイルを選択して削除します。OSS に保存された記録ファイルも削除します。 を選択すると、OSS ファイルも削除されます。
API:DeleteLiveStreamRecordIndexFiles - ライブストリーム録画ファイルの削除インターフェイスを呼び出します。
OSS からの直接削除:通常、OSS から録画ファイルを直接削除することは推奨しません。ビジネス要件で必要な場合は、オブジェクトの削除に関する OSS ドキュメントをご参照ください。
有効期限切れによる自動削除:この機能を有効にするには、チケットを送信して有効期限を設定してもらう必要があります。
CDN ドメインの設定
録画されたビデオの配信を高速化するには、CDN ドメインを設定します。CDN はビデオをさまざまなノードに配信するため、ユーザーは OSS オリジンではなく最寄りのノードからコンテンツにアクセスできます。これにより、アクセス速度が向上し、ネットワークコストが削減されます。具体的な操作については、「Alibaba Cloud CDN を使用した OSS へのアクセスの高速化」をご参照ください。
テンプレートの優先度ポリシー
複数の録画テンプレートを設定し、1 つのライブストリームが複数のテンプレートに一致する場合、優先度が最も高いテンプレートが適用されます。数値が小さいほど優先度が高くなります。
優先度 | DomainName | AppName | StreamName |
1 | 指定 | 指定 | 指定 |
2 | 指定 | 指定 | * |
3 | 指定 | * | * |
(「指定」は、該当パラメーターに * 以外の値が設定されていることを示します)
課金
ライブストリーム録画機能を使用すると、以下の料金が発生する場合があります。
月額録画サービス料金
ライブストリーム録画を有効にすると、月間同時録画チャンネル数のピーク値に基づいて課金されます。詳細については、「ライブストリーム録画料金」をご参照ください。
録画コンテナフォーマット変換料金
FLV、MP4、CMAF などのデフォルト以外のフォーマットを選択すると、時間に基づいて課金されます。この料金は ApsaraVideo Live サービスから請求されます。詳細については、「ライブストリーム録画料金」をご参照ください。
録画ビデオ処理料金
ApsaraVideo VOD に保存する場合、自動マージまたはトランスコードによって録画ビデオを処理すると、ApsaraVideo VOD サービスからビデオ処理料金が請求されます。詳細については、「編集と制作の課金」および「メディアトランスコードの課金」をご参照ください。
ストレージ料金
録画ファイルを ApsaraVideo VOD に保存すると、ApsaraVideo VOD サービスからストレージ料金が請求されます。詳細については、「メディアストレージの課金」をご参照ください。
録画ファイルを OSS に保存すると、OSS サービスからストレージ料金が請求されます。詳細については、「ストレージ料金」をご参照ください。
課金の停止
ライブストリーム録画は、設定に基づいて課金されます。録画料金の課金を停止するには、ApsaraVideo Live コンソール にログインし、機能管理 > ライブストリームのレコーディング に移動して、録画テンプレートを削除するか、ドメインの録画を無効にします。ストリームのプッシュを停止するだけで録画テンプレートを削除しない場合、少額のサービス料金が引き続き発生する可能性があります。
よくある質問
録画の生成と利用
生成の仕組み
録画ファイルは、ストリームが切断されてもすぐには生成されません。システムは中断ストリームのスプライシング時間 (デフォルトは 180 秒) を待機します。この期間内にストリームが再開された場合、録画は既存のファイルに追記されます。再開されない場合、システムはストリームが終了したと判断し、録画ファイルを生成します。
この時間はニーズに応じて調整できますが、デフォルト設定を維持することを推奨します。時間を短くすると、ネットワークの変動により多数の小さなファイルが生成される可能性があり、時間を長くすると、ストリーム終了後にファイルが生成されるまでの待機時間が長くなります。
即時生成
ストリーム終了後、スプライシングの遅延なしで録画ファイルを即座に生成するには、インジェストストリームのイベントコールバックを設定します。詳細については、「イベントコールバック」をご参照ください。ストリーム切断通知を受信したら、RealTimeRecordCommand API を呼び出して、スプライシングの遅延をキャンセルします。
realTimeRecordCommandRequest.setCommand("cancel_delay");進行中の録画へのアクセス
ストリームの時間が録画周期を超えていない場合、ファイルは通常、ストリーム終了後に生成されます。ストリーム終了前に現在の録画ファイルにアクセスするには、RealTimeRecordCommand API を呼び出して録画を更新します。このコマンドは、現在の録画プロセスを強制的に終了してファイルを即座に生成し、その後自動的に新しい録画を開始します。
realTimeRecordCommandRequest.setCommand("restart");ストリーム録画が複数の保存フォーマットで設定されている場合、この操作によりすべてのフォーマットが更新されます。
ストリーム異常が録画に与える影響
システムは、ストリーム異常の深刻度に応じて異なる処理を行います。
標準ストリーム (エンコード要件を満たし、フレームレートとタイムスタンプが安定している): 録画は 100% 正常に生成されます。
軽微な問題のあるストリーム (時折のフレームレート変動またはタイムスタンプのジャンプ): システムは互換性を維持するため、これらを自動的に処理します。
重大な問題のあるストリーム (ビデオフレームの長期間の欠落、タイムスタンプの乱れ、またはキーフレームの欠落): 録画の成功は保証されません。
録画ファイルの問題に関するトラブルシューティング
録画ファイルが生成されない、または予期しないコンテンツが含まれている場合は、以下を確認してください。
録画設定が有効にならない — 録画テンプレートは、設定完了後にプッシュされた新しいストリームにのみ適用されます。テンプレートが作成されたときにストリームがすでにプッシュされていた場合、テンプレートを有効にするには、ストリームを切断して再プッシュする必要があります。
トランスコードされたストリームが録画されない — トランスコードのトリガー方式が「プッシュトリガー」に設定されていることを確認してください。トリガー方式が「プルトリガー」に設定されている場合、トランスコードされたストリームは視聴者がストリームをアクティブにプルしたときにのみ生成されます。アクティブなプルがない場合、トランスコードされたストリームは存在しないため、録画できません。
再生中の重複セグメント — これは通常、スプライシング時間内にストリームが切断されて再接続されたときに発生します。重複するセグメントは両方とも録画に含まれます。重複部分を削除するには、ポストプロダクション編集が必要です。
高解像度で音声のみ再生され映像が表示されない — プッシュ側で、画面共有ソースが正しくキャプチャされているか、エンコーダー設定がターゲット解像度と一致しているかを確認してください。また、再生側のプレーヤーがエンコード形式をサポートしているかもご確認ください。この問題は通常、録画サービスではなくプッシュ側の設定が原因で発生します。
OSS コールバックレコードがない — 保存先が OSS に設定されていることを確認してください。ApsaraVideo VOD は OSS とは異なるコールバックイベントを使用します。録画が ApsaraVideo VOD に保存されている場合は、代わりに ApsaraVideo VOD コールバックイベントを確認してください。
録画ファイル名が期待通りでない — ApsaraVideo VOD に録画を保存する場合、録画ファイル名はデフォルトで
StreamNameとなり、カスタマイズはサポートされていません。カスタムファイル名が必要な場合は、OSS ストレージを使用し、録画テンプレートで命名規則を設定してください。
ApsaraVideo VOD に保存された録画ファイルの VideoId 取得方法とコールバック認証の制限
VideoId の取得: ライブストリーム録画コールバックには VideoId が含まれていません。VideoId を取得するには、ApsaraVideo VOD 側でイベントコールバック通知を設定してください。VOD コールバックには、VideoId を含む完全なメディアアセット情報が含まれます。すでに VOD イベントコールバックを設定している場合は、ライブストリーム録画コールバックを別途設定する必要はありません。
コールバック認証の制限: 録画が ApsaraVideo VOD に保存されている場合、録画完了コールバック認証 (
ALI-LIVE-TIMESTAMPおよびALI-LIVE-SIGNATUREパラメーターに依存) は現在サポートされていません。コンソールで認証スイッチが利用不可と表示される、または保存に失敗する場合、これは既知の制限または表示上の問題であるため、VOD 側のコールバックを正式な情報として扱う必要があります。