ライブストリーム録画は、インジェストされたストリームをキャプチャし、ブロードキャスト後の再生のために指定の保存先に保存します。ApsaraVideo Live は、ApsaraVideo VOD への保存と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を*に設定して、アプリケーション内のすべてのライブストリームにテンプレートを適用します。
オンデマンド録画
オンデマンド録画を使用すると、ビジネスルールに基づいてライブストリームを録画するかどうかを動的に決定できます。
ワークフロー:
ライブストリームが開始されたとき、一致した録画テンプレートが「オンデマンド録画」に設定されている場合、ライブストリーミングサービスは、事前に設定されたオンデマンドコールバック URL に HTTP リクエストを送信して、ストリームを録画するかどうかを判断します。
アプリケーションはリクエストを受信し、現在のビジネスロジックに基づいて録画コマンド (許可または拒否) を返します。
ライブストリーミングサービスは、レスポンスに基づいて録画タスクを開始します。
まず、イベントコールバック設定でライブストリーム録画のオンデマンドコールバック URL を指定する必要があります。設定、リクエストパラメータ、レスポンス形式の詳細については、ライブストリーム録画のコールバックおよびオンデマンド録画のコールバックをご参照ください。
注意:
録画サービスは、コールバックのレスポンスを処理してテンプレート設定をオーバーライドします:
Interval:指定した Interval 値は、録画テンプレートで設定された録画周期をオーバーライドします。Format:サービスは、リクエストされた Format と録画テンプレートで事前設定されたフォーマットの共通部分を計算します。共通のフォーマットがない場合、ストリームは録画されません。
インジェストパラメータによるトリガー
トリガー方法が「インジェストパラメータ設定」に設定されている場合、インジェスト 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 は録画の停止もサポートしています。自動、オンデマンド、または手動のいずれで開始されたかにかかわらず、この 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 と同じ場合にのみ有効になります。[トリガー方法]
録画は、自動録画、コールバックの確認 (コンソールのみ)、アップストリーミングパラメータの設定、手動録画、[オンデマンド録画] (API のみ) のいずれかの方法でトリガーできます。
詳細については、「録画のトリガー方法」をご参照ください。
[ストレージ形式]
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("<お使いの RegionID>")
.domainName("<お使いの DomainName>")
.appName("live")
.streamName("stream1")
.cycleDuration(3600)
.spaceId("app-1000000")
.storageLocation("<お使いの 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 (インジェストパラメーターによる設定)、7 (手動録画)。詳細については、「録画のトリガー方法」をご参照ください。
DelayTime中断されたストリームの結合時間 (秒) です。ストリームの中断がこの時間より短い場合、録画は同じファイルで再開されます。中断がこの時間を超えると、新しいファイルが作成されます。
RecordContent、TranscodeTemplatesソースストリームまたはトランスコードストリームを録画するかどうかを指定します。トランスコードストリームを録画する場合は、トランスコードテンプレート ID を指定する必要があります。
RecordFormat:保存形式と VOD 設定を指定します。これには次が含まれます:AutoCompose:有効にすると、異なる録画サイクルの複数ファイルが、ライブストリームの終了後に 1 つのファイルに自動的にマージされます。VideoProcess、ProcessMethod、ProcessTemplateId:ApsaraVideo VOD のトランスコードテンプレートまたはワークフローテンプレートを使用して、元の録画ファイルまたはマージされた動画を処理します。
パラメーターの詳細については、AddLiveRecordVodConfig - Add a configuration to store live recordings in VOD をご参照ください。
録画管理
ApsaraVideo Live コンソール上で ApsaraVideo VOD に保存された録画を確認し、ApsaraVideo VOD サービスで管理できます。
ApsaraVideo Live コンソールにログインします。
左側のナビゲーションペインで、機能管理 > ライブストリームのレコーディング を選択します。録画ファイル管理 タブをクリックします。
設定済みのストリーミングドメインを選択します。
VOD タブをクリックします。
日付範囲、
AppName、StreamNameで録画履歴を絞り込めます。特定の録画ファイルを表示して管理するには、VOD コンソールで録画を管理 列の 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}/{Sequence}_{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 システムポリシーを付与する必要があります。ワンクリックで承認するには、クリックして承認します。
次の方法を使用して録画ファイルを削除できます。
ライブコンソール: 録画ファイル管理 タブで、ファイルを選択して削除します。OSS ファイルも削除するには、OSS に保存された記録ファイルも削除します。 を選択します。
API:DeleteLiveStreamRecordIndexFiles - ライブストリーム録画ファイルの削除 API を呼び出します。
OSS から直接削除:一般的に、OSS から録画ファイルを直接削除することは推奨されません。業務上必要な場合は、OSS ドキュメントの「オブジェクトの削除」をご参照ください。
有効期限による自動削除:この機能を有効にするには、チケットを送信して、有効期限の設定を依頼してください。
CDN ドメインの設定
録画された動画の配信を高速化するには、CDN ドメインを設定します。CDN は動画をさまざまなノードに配信し、ユーザーが OSS オリジンではなく最寄りのノードからコンテンツにアクセスできるようにします。これにより、アクセス速度が向上し、ネットワークコストが削減されます。具体的な操作については、「Alibaba Cloud CDNを使用したOSSへのアクセスの高速化」をご参照ください。
テンプレートの優先度ポリシー
複数の録画テンプレートを設定し、ライブストリームが複数のテンプレートに一致した場合、システムは最も優先度の高いものを適用します。数値が小さいほど優先度が高くなります。
優先度 | DomainName | AppName | StreamName |
1 | 指定 | 指定 | 指定 |
2 | 指定 | 指定 | * |
3 | 指定 | * | * |
(「指定」は、対応するパラメーターに * 以外の値が指定されていることを示します)
課金
ライブストリーム録画機能を使用すると、以下の料金が発生する場合があります:
月額録画サービス料金
ライブストリーム録画を有効にすると、月間の同時録画チャンネルのピーク数に基づいて課金されます。詳細については、「ライブストリーム録画料金」をご参照ください。
録画コンテナフォーマット変換料金
FLV、MP4、CMAF などのデフォルト以外のフォーマットを選択した場合、時間に基づいて課金されます。この料金は ApsaraVideo Live サービスが請求します。詳細については、「ライブストリーム録画料金」をご参照ください。
録画ビデオ処理料金
ApsaraVideo VOD に保存する際、自動結合やトランスコーディングによって録画ビデオを処理すると、ビデオ処理料金が発生します。この料金は ApsaraVideo VOD サービスが請求します。詳細については、「編集・制作課金」および「メディアトランスコーディング課金」をご参照ください。
ストレージ料金
ApsaraVideo VOD に録画ファイルを保存すると、ストレージ料金が発生します。この料金は ApsaraVideo VOD サービスが請求します。詳細については、「メディアストレージ課金」をご参照ください。
OSS に録画ファイルを保存すると、ストレージ料金が発生します。この料金は OSS サービスが請求します。詳細については、「ストレージ料金」をご参照ください。
よくある質問
録画の生成と利用可能性
生成メカニズム
録画ファイルは、ストリームの切断後すぐには生成されません。システムは ストリーム中断時の結合期間 (デフォルトは 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 ストレージを使用し、録画テンプレートで命名規則を設定してください。