すべてのプロダクト
Search
ドキュメントセンター

ApsaraVideo Live:ライブストリーム录音

最終更新日:Dec 18, 2024

ApsaraVideo Liveは、ライブストリームをリアルタイムで録画し、履歴ストリームを再生できるライブストリーム録画機能を提供します。 このトピックでは、ライブストリームの録画機能について詳しく説明します。

概要

ApsaraVideo Liveは、ストリーミングURLを使用して、ストリーム取り込みクライアントによってリアルタイムで取り込まれたストリームを再生します。 ライブストリームの終了後にライブストリームのコンテンツを再生または変更する場合は、ライブストリームの録画機能を使用できます。

ライブストリーム記録機能は、ライブセンターによって受信された取り込まれたストリームを記録し、記録を特定の記憶場所に記憶するために使用される。 ApsaraVideo Liveを使用すると、ライブストリームの録画をApsaraVideo VODまたはObject Storage Service (OSS) に保存できます。

ライブストリームのレコーディングの仕組み

ライブストリーム録画機能は、取り込んだストリームを取得し、オーディオデータとビデオデータをトランスポートストリーム (TS) 形式の複数の個別のメディアセグメントにカプセル化してから、TSセグメントを保存します。 ライブストリーム録画機能は、次の原則に準拠しています。

  • ライブストリーム録画機能は、オーディオおよびビデオデータのコンテナ形式をRTMP (Real-Time Messaging Protocol) またはFLV (Flash video) からTSに変換するだけです。 この機能は、コーディングレイヤでオーディオおよびビデオコンテンツを変更しません。 たとえば、取り込んだライブストリームがぼやけている場合、録音もぼやけています。

  • ライブストリームの記録機能は、指定した保存場所に記録を書き込むことができます。 ただし、この機能では、保存された記録を含め、保存場所からタスクファイルを変更または削除することはできません。 ストレージの場所で録画を管理できます。

ストレージ方法の比較

ライブストリームの録画をApsaraVideo VODまたはOSSに保存できます。 ストレージ方法はさまざまなシナリオで使用されます。 ビジネス要件に基づいてストレージ方法を選択できます。

保存方法

関連サービス

コンテナー形式

該当するシナリオ

ApsaraVideo VOD

ApsaraVideo VOD

TS/M3U8

録画を再利用するか、編集、再生、ビデオのサムネイルの作成など、録画のポストプロダクションプロセスに集中したい場合。

OSS

OSS

  • TS/M3U8

  • MP4

  • FLV

  • CMAF

    説明

    コンテナフォーマットにかかわらず、ライブストリーム記録機能は、最初にライブストリームをいくつかのTSセグメントにスライスし、次にそれらを構成して、指定されたコンテナフォーマットで記録を生成する。

あなたは録音の管理と保管に集中したいと思います。

説明

ライブストリームの録画をApsaraVideo VODとOSSの両方に保存することはできません

制限事項

オーディオとビデオのエンコード形式

ApsaraVideo Liveは、最初にライブストリームをTSセグメントにスライスする必要があります。 したがって、取り込むライブストリームのオーディオおよびビデオのエンコード形式は、TS形式の要件を満たす必要があります。 FLVおよびISO/IEC 13818-1規格に基づいて、ライブストリーム録画機能は次のエンコード形式をサポートしています。

  • ビデオ: H.264、高効率ビデオコーディング (HEVC) 、およびMPEG-4

  • オーディオ: 高度なオーディオコーディング (AAC) とMP3

説明

ライブストリームにサポートされていない形式でエンコードされたオーディオおよびビデオデータが含まれている場合、録音の失敗、ブラックスクリーンの問題、および音声のない録音などの予期しない例外が録音プロセスで発生する可能性があります。

異常なライブストリーム

ライブストリーム記録機能は、通常のライブストリームの記録を生成することができる。 通常のライブストリームは、サポートされるフォーマットでエンコードされ、安定したフレームレートと、単調および線形に増加するタイムスタンプを有するストリームを指す。 ライブストリームのフレームレートが時々不安定であるか、ライブストリームジャンプのいくつかの特定のタイムスタンプがある場合、この機能は、その幅広い互換性のためにライブストリームの記録を生成することもできます。 ただし、取り込まれたライブストリームで重大な例外が検出された場合、この機能は取り込まれたライブストリームの記録を生成できない場合があります。 重大な例外には、長期間検出されたビデオフレームがないこと、不規則に増加したタイムスタンプ、およびオーディオおよびビデオヘッダの欠落が含まれます。

ApsaraVideo VODで録音を保存

前提条件

ApsaraVideo VODが有効化され、VODバケットが有効化されています。 詳細については、「ApsaraVideo VODの有効化」および「VODバケットの有効化」をご参照ください。

重要
  • ApsaraVideo VODに録画を保存すると、ストレージ料金が発生します。 詳細については、「メディアストレージ」をご参照ください。

  • VODバケットを有効にするときは、VODバケットがストリーミングドメインのライブセンターと同じリージョンにあることを確認してください。

  • Finance Cloudアカウントを使用してLive-to-VOD機能を設定することはできません。

録画設定の構成

前提条件が満たされたら、ApsaraVideo VODに録画を保存するために必要な設定を構成できます。

ApsaraVideo Liveは、ApsaraVideo VODに録画を保存するための次の設定方法を提供します。

ApsaraVideo Liveコンソールの使用

  1. ApsaraVideo Live コンソール にログインします。

  2. 左側のナビゲーションウィンドウで、[機能管理]> [記録] を選択します。 [録画] ページで、[VOD] タブをクリックします。

  3. 設定するストリーミングドメインを選択します。

  4. 追加をクリックします。

  5. 録音テンプレートを設定します。

    image

    次の表に、録画テンプレートのパラメーターを示します。

    パラメーター

    説明

    アプリ名

    アプリケーションの名前。 AppNameパラメーターの値は、取り込みURLで指定されたアプリケーション名と同じである必要があります。 それ以外の場合、設定は有効になりません。 ドメイン名の下にあるすべてのアプリケーションでライブストリームを録画する場合は、アスタリスク (*) を入力します。

    ストリーム名

    ストリーム名を指定すると、特定のライブストリームの録画をApsaraVideo VODに保存できます。 AppNameパラメーターで指定されたアプリケーション内のすべてのライブストリームを記録する場合は、アスタリスク (*) を入力します。

    説明

    AppNameまたはStreamNameパラメーターの値は、最大255文字で、英数字、ハイフン (-) 、およびアンダースコア (_) を使用できます。

    保管場所

    ストレージの場所。

    録音サイクル

    記録サイクルは、15〜360分の範囲とすることができる。 指定された記録サイクルを超えた場合、システムは記録命名規則に基づいて新しい記録を生成します。 デフォルトでは、TSセグメントの長さは30秒です。

    説明

    記録サイクルは、指定されたライブストリームから変換されるVODファイルの最大長を指定する。

    トランスコード設定

    ドロップダウンリストからストレージコード変換ルールを選択します。 ApsaraVideo VODで録画したビデオをトランスコードできます。

    ストレージトランスコーディング規則は、記録されたビデオを送信用のVODファイルに変換するために使用されます。 録画したビデオを異なる解像度のビデオにトランスコードしたり、トランスコードせずに元の品質を維持したりできます。

    ApsaraVideo VODでのコード変換テンプレートの詳細については、「コード変換テンプレート」をご参照ください。

    説明

    ApsaraVideo VODで使用するトランスコードテンプレートのリージョンは、ドメイン名のリージョンと同じである必要があります。 たとえば、ドメイン名が中国 (上海) リージョンにある場合、ApsaraVideo VODで使用するトランスコードテンプレートも中国 (上海) リージョンにある必要があります。

    自動マージ

    この機能を有効にすると、複数の録画サイクルの録画を自動的に1つの録画にマージしてApsaraVideo VODに保存できます。

    説明

    複数のサイクルの録画の自動マージを有効にすると、ApsaraVideo VODの編集および制作機能とトランスコード機能が使用されます。 機能の課金の詳細については、「編集と生産の課金」および「メディアトランスコーディングの課金」をご参照ください。

    マージビデオのトランスコード設定

    ApsaraVideo VODから取得したトランスコードテンプレートをドロップダウンリストから選択します。 システムは、トランスコーディングテンプレートの設定に基づいて、マージされたビデオに対してトランスコーディングを実行します。 自動マージ用のコード変換テンプレートの詳細については、「コード変換テンプレート」をご参照ください。

    説明

    ApsaraVideo VODで使用するトランスコードテンプレートのリージョンは、ドメイン名のリージョンと同じである必要があります。 たとえば、ドメイン名が中国 (上海) リージョンにある場合、ApsaraVideo VODで使用するトランスコードテンプレートも中国 (上海) リージョンにある必要があります。

  6. OKをクリックします。

API操作の呼び出し

// Replace the content in <> with actual values.
DefaultProfile profile = DefaultProfile.getProfile("<regionId>", "<ALIBABA_CLOUD_ACCESS_KEY_ID>", "<ALIBABA_CLOUD_ACCESS_KEY_SECRET>");
IAcsClient client = new DefaultAcsClient(profile);   
AddLiveRecordVodConfigRequest addLiveRecordVodConfigRequest=new AddLiveRecordVodConfigRequest();
addLiveRecordVodConfigRequest.setDomainName("<DomainName>");
addLiveRecordVodConfigRequest.setAppName("<AppName>");
addLiveRecordVodConfigRequest.setStreamName("<StreamName>");
addLiveRecordVodConfigRequest.setVodTranscodeGroupId("VOD_NO_TRANSCODE");
// The address of the VOD bucket.
addLiveRecordVodConfigRequest.setStorageLocation("<StorageLocation>");
AddLiveRecordVodConfigResponse dddLiveRecordVodConfigResponse = null;
try {
    dddLiveRecordVodConfigResponse = client.getAcsResponse(addLiveRecordVodConfigRequest);
} catch (ClientException e) {
    e.printStackTrace();
}
 System.out.println(new Gson().toJson(dddLiveRecordVodConfigResponse));

説明
  • 上記のサンプルコードでは、ドメイン名にLive-to-VOD設定が追加されており、ApsaraVideo VODのライブストリームの録画が保存されます。 <DomainName> はドメイン名、<AppName> はアプリケーション名、<StreamName> はストリーム名を指定します。 VOD_NO_TRANSCODEは、記録がトランスコードされないことを指定する。 <StorageLocation> は、VODバケットのアドレスを指定する。

  • AppNameまたはStreamNameパラメーターをアスタリスク (*) に設定して、すべてのアプリケーションまたはストリームに一致させることができます。

  • 複数のルールを設定できます。 ルールは優先順位に基づいて有効になります。

    • AppNameパラメーターとStreamNameパラメーターがアスタリスク (*) に設定されていないルールの優先度が最も高くなります。

    • AppNameパラメーターがアスタリスク (*) に設定されていないが、StreamNameパラメーターがアスタリスク (*) に設定されているルールの優先順位が2番目です。

    • AppNameパラメーターがアスタリスク (*) に設定されているルールの優先度が最も低くなります。 この場合、ドメイン名のみを指定する必要があります。

  • パラメーターの詳細については、「AddLiveRecordVodConfig」をご参照ください。

重要
  • 進行中のライブストリームの場合、設定された録画設定は、ストリームを再取り込みした後にのみ有効になります。

  • ライブストリームが180秒間中断されると、ライブストリームの記録が生成される。

トランスコード録音

ApsaraVideo VODに保存されている録音はM3U8形式です。 録音を別の形式で保存する場合は、トランスコーディングを設定できます。 次のサンプルコードは、トランスコーディングの設定方法の例を示しています。

 addLiveRecordVodConfigRequest.setVodTranscodeGroupId("<TranscodeGroupId>");
説明
  • ApsaraVideo VODでトランスコードテンプレートグループを設定する必要があります。 詳細については、「コード変換テンプレート」をご参照ください。

  • <TranscodeGroupId> は、ApsaraVideo VODトランスコードテンプレートグループのIDを指定します。

  • トランスコードを設定すると、録音がトランスコードされ、対応するトランスコードされたストリームURLが生成されます。 元の記録は保持される。

録音のマージ

以下のシナリオでは、録音をマージできます。

  1. ライブストリームが中断されたが、以内に180秒で再インジェストされた場合、中断の前後に生成されたレコーディングは自動的に1つのレコーディングにマージされます。

  2. ライブストリームの持続時間が記録サイクルを超える場合、記録サイクルの前後に生成される記録をマージすることができる。 ライブストリームの持続時間が記録サイクルを超えた後、新しい記録が生成される。 例えば、記録サイクルが5分であり、ストリーム取り込み期間が8分である場合、ライブストリームに対して2つの記録が生成される。

    異なる録音サイクルの録音をマージする場合は、マージ設定を構成できます。

    重要

    複数のサイクルの録画の自動マージを有効にすると、ApsaraVideo VODの編集および制作機能とトランスコード機能が使用されます。 詳細については、「付加価値サービスの課金」および「基本サービスの課金」をご参照ください。

    次のサンプルコードは、録音をマージする方法の例を示しています。

    addLiveRecordVodConfigRequest.setAutoCompose("ON");
    addLiveRecordVodConfigRequest.setComposeVodTranscodeGroupId("<TranscodeGroupId>");
    説明
    • 複数の録音が新しい録音にマージされます。 元の記録は保持される。

    • ApsaraVideo VODでトランスコードテンプレートグループを設定する必要があります。 詳細については、「コード変換テンプレート」をご参照ください。

    • <TranscodeGroupId> は、ApsaraVideo VODトランスコードテンプレートグループのIDを指定します。

    次のサンプルコードは、記録サイクルを設定する方法の例を示しています。

    // Valid values: 300 to 21600. Default value: 900. Unit: seconds.
    addLiveRecordVodConfigRequest.setCycleDuration(<300>);

録音の管理

ApsaraVideo Liveコンソールで、ApsaraVideo VODに保存されている録画を表示できます。 録画を管理するには、ApsaraVideo VODサービスを使用します。 詳細については、「メディア資産管理」をご参照ください。

ApsaraVideo Liveコンソールでの録画の表示

  1. ApsaraVideo Live コンソール にログインします。

  2. 左側のナビゲーションウィンドウで、[機能管理]> [記録] を選択します。 [録音] ページで、[録音] タブをクリックします。

  3. ストリーミングドメインを選択します。

  4. VODタブで、録音を表示します。

    image

OSSに記録を保存する

前提条件

OSSが有効化され、OSSバケットが作成されます。 詳細については、「OSS の設定」をご参照ください。

重要
  • 録音をOSSに保存すると、ストレージ料金が発生します。 詳細については、「ストレージ料金」をご参照ください。

  • OSSバケットは、ストリーミングドメインのライブセンターと同じリージョンに存在する必要があります。

記録設定の構成

前提条件が満たされたら、必要な設定を設定して、OSSに記録を保存できます。

ApsaraVideo Liveは、OSSに録画を保存するための次の設定方法を提供します。

ApsaraVideo Liveコンソールの使用

  1. ApsaraVideo Live コンソール にログインします。

  2. 左側のナビゲーションウィンドウで、[機能管理]> [記録] を選択します。 [録画] ページで、[OSS] タブをクリックします。

  3. 設定するストリーミングドメインを選択します。

  4. 追加をクリックします。

  5. 録音テンプレートを設定します。

    image

    表 1. 記録テンプレートパラメーター

    パラメーター

    説明

    アプリ名

    アプリケーションの名前。 AppNameパラメーターの値は、取り込みURLで指定されたアプリケーション名と同じである必要があります。 それ以外の場合、設定は有効になりません。 ドメイン名の下にあるすべてのアプリケーションでライブストリームを録画する場合は、アスタリスク (*) を入力します。

    ストリーム名

    ストリーム名を指定すると、特定のライブストリームの録画をOSSに保存できます。 AppNameパラメーターで指定されたアプリケーション内のすべてのライブストリームを記録する場合は、アスタリスク (*) を入力します。

    説明
    • AppNameまたはStreamNameパラメーターの値は、最大255文字で、英数字、ハイフン (-) 、およびアンダースコア (_) を使用できます。

    • AppNameまたはStreamNameパラメーターの値としてアスタリスク (*) を入力する場合は、次の点に注意してください。

      • アスタリスク (*) は文字列と一致することはできませんが、既存のアプリケーションまたはストリームの名前のみが一致します。

      • アスタリスク (*) はワイルドカード文字として使用できません。

    保管場所

    ストレージの場所。

    説明

    バケットには、標準バケットとメディアバケットが含まれます。 標準バケットは、ストレージに使用されるOSSバケットです。 メディアバケットは、ApsaraVideo Media Processing用にカスタマイズされたバケットです。 ApsaraVideo Media Processingを使用して、メディアバケットに保存されているビデオをトランスコードできます。 標準バケットとメディアバケットは、バケットリストで区別されません。 ApsaraVideo Media Processingで入力ビデオを処理する場合は、出力ビデオを保存するメディアバケットを選択できるように、使用するメディアバケットの名前を覚えておく必要があります。

    中断期間しきい値

    ストリーム中断期間が閾値を超える場合、新しい記録が生成される。 このパラメータの値は15〜21600秒です。

    ストレージ形式

    有効な値: flvm3u8mp4cmaf

    説明

    少なくとも1つのストレージ形式を選択します。 CMAF形式とM3U8形式を同時に選択することはできません。

    命名規則

    さまざまな形式の録音のストレージパスの命名規則。 デフォルト値:

    • M3U8: レコード /{AppName}/{StreamName}/{EscapedStartTime }_{ EscapedEndTime }

    • TS: record/{AppName}/{StreamName}/{UnixTimestamp }_{ Sequence}

    • FMP4: record/{AppName}/{StreamName}/{UnixTimestamp }_{ Sequence}

    • MP4: record/{AppName}/{StreamName}/{EscapedStartTime }_{ EscapedEndTime }

    • FLV: record/{AppName}/{StreamName}/{EscapedStartTime }_{ EscapedEndTime }

    例:

    AppNameliveApp **** に、StreamNameliveStream **** に設定した場合、M3U8形式の録音のストレージパスはrecord/liveApp ****/liveStream ****/{EscapedStartTime }_{ EscapedEnd} Timeになります。

    TSファイル期間

    TSセグメントの期間。 デフォルト値:30。 有効な値: 5 ~ 30。 単位は秒です。

    録音サイクル

    記録サイクルは、15〜360分の範囲とすることができる。 指定された記録サイクルを超えた場合、システムは記録命名規則に基づいて新しい記録を生成します。

    説明

    記録サイクルは、指定されたライブストリームから変換されるVODファイルの最大長を指定する。

    image

    表 2. トランスコードされたストリーム記録のパラメータ

    パラメーター

    説明

    トランスコードストリーム記録

    [トランスコードストリーム録画] をオンにし、次のパラメーターを設定します。

    ストレージ形式

    有効な値: flvm3u8mp4cmaf

    説明

    少なくとも1つのストレージ形式を選択します。 CMAF形式とM3U8形式を同時に選択することはできません。

    命名規則

    さまざまな形式の録音のストレージパスの命名規則。 デフォルト値:

    • M3U8: transcodeRecord/{AppName}/{StreamName}/{EscapedStartTime }_{ EscapedEndTime }

    • TS: transcodeRecord/{AppName}/{StreamName}/{UnixTimestamp }_{ Sequence}

    • FMP4: transcodeRecord/{AppName}/{StreamName}/{UnixTimestamp }_{ シーケンス}

    • MP4: transcodeRecord/{AppName}/{StreamName}/{EscapedStartTime }_{ EscapedEndTime }

    • FLV: transcodeRecord/{AppName}/{StreamName}/{EscapedStartTime }_{ EscapedEndTime }

    例:

    AppNameliveApp **** に、StreamNameliveStream **** に、トランスコードテンプレートIDをlldに設定した場合、M3U8形式のトランスコードされたストリーム録音のストレージパスはtranscodeRecord/liveApp ****/liveStream ****_lld/{EscapedStartTime} です。

    TSファイル期間

    TSセグメントの期間。 デフォルト値:30。 有効な値: 5 ~ 30。 単位は秒です。

    録音サイクル

    記録サイクルは、15〜360分の範囲とすることができる。 指定された記録サイクルを超えた場合、システムは記録命名規則に基づいて新しい記録を生成します。

    説明

    記録サイクルは、指定されたライブストリームから変換されるVODファイルの最大長を指定する。

    トランスコードテンプレートID

    すべてのテンプレートまたは最大10個の個別のトランスコードテンプレートを選択できます。

    コード変換テンプレートのアプリケーション名が、記録テンプレートのアプリケーション名と同じであることを確認します。 利用可能なコード変換テンプレートがない場合は、まずコード変換テンプレートを追加します。 詳細については、「デフォルトのトランスコードの設定」をご参照ください。

  6. OKをクリックします。

API操作の呼び出し

        // Replace the content in <> with actual values.
        DefaultProfile profile = DefaultProfile.getProfile("<regionId>", "<ALIBABA_CLOUD_ACCESS_KEY_ID>", "<ALIBABA_CLOUD_ACCESS_KEY_SECRET>");
        IAcsClient client = new DefaultAcsClient(profile);   
        AddLiveAppRecordConfigRequest addLiveAppRecordConfigRequest=new AddLiveAppRecordConfigRequest();
        addLiveAppRecordConfigRequest.setAppName("<AppName>");
        addLiveAppRecordConfigRequest.setStreamName("<StreamName>");
        addLiveAppRecordConfigRequest.setDomainName("<DomainName>");
        addLiveAppRecordConfigRequest.setOssEndpoint("<OssEndpoint>");
        addLiveAppRecordConfigRequest.setOssBucket("<OssBucket>");
        List<AddLiveAppRecordConfigRequest.RecordFormat> formatList=new ArrayList<AddLiveAppRecordConfigRequest.RecordFormat>();
        AddLiveAppRecordConfigRequest.RecordFormat m3u8Format=new AddLiveAppRecordConfigRequest.RecordFormat();
        m3u8Format.setFormat("m3u8");
        // The naming format of a recording to store in OSS.
        m3u8Format.setOssObjectPrefix("<record/{AppName}/{StreamName}/{EscapedStartTime}_{EscapedEndTime}>");
        // The naming format of a segment.
        m3u8Format.setSliceOssObjectPrefix("<record/{AppName}/{StreamName}/{UnixTimestamp}_{Sequence}>");
        formatList.add(m3u8Format);
        addLiveAppRecordConfigRequest.setRecordFormats(formatList);
        AddLiveAppRecordConfigResponse addLiveAppRecordConfigResponse = null;
        try {
            addLiveAppRecordConfigResponse = client.getAcsResponse(addLiveAppRecordConfigRequest);
        } catch (ClientException e) {
            e.printStackTrace();
        }
        System.out.println(new Gson().toJson(addLiveAppRecordConfigResponse));
説明
  • 上記のサンプルコードでは、ドメイン名の録画設定が追加されており、ライブストリームの録画がOSSバケットに保存されています。 <DomainName> はドメイン名、<AppName> はアプリケーション名、<StreamName> はストリーム名、<OssBucket> はOSSバケットの名前を指定します。 録音はM3U8形式です。

  • OssObjectPrefixパラメーターまたはSliceOssObjectPrefixパラメーターの値は、変数が一致した後は255文字を超えることはできません。 詳細については、「AddLiveAppRecordConfig」をご参照ください。

  • <OssEndpoint> パラメーターの値は、<OssBucket> パラメーターで指定されたOSSバケットのリージョンに基づいて取得できます。 詳細については、「リージョン、エンドポイント、オープンポート」をご参照ください。

  • AppNameまたはStreamNameパラメーターをアスタリスク (*) に設定して、すべてのアプリケーションまたはストリームに一致させることができます。

  • 複数のルールを設定できます。 ルールは優先順位に基づいて有効になります。

    • AppNameパラメーターとStreamNameパラメーターがアスタリスク (*) に設定されていないルールの優先度が最も高くなります。

    • AppNameパラメーターがアスタリスク (*) に設定されていないが、StreamNameパラメーターがアスタリスク (*) に設定されているルールの優先順位が2番目です。

    • AppNameパラメーターがアスタリスク (*) に設定されているルールの優先度が最も低くなります。 この場合、ドメイン名のみを指定する必要があります。

重要
  • 進行中のライブストリームの場合、設定された録画設定は、ストリームを再取り込みした後にのみ有効になります。

  • ライブストリームが180秒間中断された後、ライブストリームの記録が生成される。 中断時間のしきい値を指定できます。 詳細については、中断期間のしきい値パラメーターの説明をご参照ください。

トランスコードされたストリームの記録

トランスコードされたストリームを記録することで、ビデオの品質に影響を与えることなく、ビデオのビットレートを調整し、ビデオの圧縮率を上げ、記録のサイズを縮小できます。 OSSでは、元のストリームとトランスコードされたストリームを保存できます。 オリジナルまたはトランスコードされたストリームのみを保存することもできます。

重要

ライブストリームのトランスコード機能を使用する場合、トランスコード標準、解像度、およびトランスコードされたストリームの合計長に基づいて課金されます。 詳細については、「ライブストリームトランスコードの課金」をご参照ください。

トランスコードされたストリームを記録するためのサンプルコード

        // Replace the content in <> with actual values.        
        List<AddLiveAppRecordConfigRequest.TranscodeRecordFormat> transcodeFormatList=new ArrayList<AddLiveAppRecordConfigRequest.TranscodeRecordFormat>();
        AddLiveAppRecordConfigRequest.TranscodeRecordFormat m3u8TranscodeFormat=new AddLiveAppRecordConfigRequest.TranscodeRecordFormat();
        m3u8TranscodeFormat.setFormat("m3u8");
        // The naming format of a transcoded stream recording to store in OSS.
        m3u8TranscodeFormat.setOssObjectPrefix("<transcodeRecord/{AppName}/{StreamName}/{EscapedStartTime}_{EscapedEndTime}>");
        // The naming format of a segment in a transcoded stream recording.
        m3u8TranscodeFormat.setSliceOssObjectPrefix("<transcodeRecord/{AppName}/{StreamName}/{UnixTimestamp}_{Sequence}>");
        transcodeFormatList.add(m3u8TranscodeFormat);
        addLiveAppRecordConfigRequest.setTranscodeRecordFormats(transcodeFormatList);
        List<String> transcodeTemplateList=new ArrayList<String>();
        // The ID of the transcoding template.
        transcodeTemplateList.add("<lld>");
        addLiveAppRecordConfigRequest.setTranscodeTemplatess(transcodeTemplateList);
説明
  • トランスコードされたストリームのみを記録する場合は、setRecordFormatsを設定する必要はありません。

  • setTranscodecordFormatsを設定する場合、setTranscodeTemplatesも設定して、設定されたトランスコードテンプレートのIDを指定する必要があります。 詳細については、「ライブストリームのトランスコーディング」をご参照ください。

  • 設定されたコード変換テンプレートでは、コード変換をストリーム取り込みによってトリガーするように設定する必要があります。

  • トランスコードされたストリーム記録の名前で、StreamNameフィールドはStreamName _Transcoding template IDに変更されます。

割り込み期間のしきい値の設定

ライブストリームが中断されたが、中断期間しきい値内に再取り込みされた場合、中断の前後に生成された録音は自動的に1つの録音にマージされます。 デフォルトでは、中断時間のしきい値は180秒です。

説明

新しい記録は、中断期間閾値が経過した後にのみ生成される。

業務要件に基づいて中断期間のしきい値を設定できます。 サンプルコード:

// Valid values: 15 to 21600. Unit: seconds.
addLiveAppRecordConfigRequest.setDelayTime(<180>);

短すぎるまたは長すぎる時間を指定しないことを推奨します。 この時間が短すぎると、ネットワークの変動などの理由でライブストリームが頻繁に切断されて再接続された場合に、大量の録画が発生する可能性がある。 時間が過度に長い場合、ライブストリームが終了した後に、レコーディングが生成されるのに長い期間を必要とする可能性がある。

特定のビジネスシナリオでは、中断時間のしきい値が経過するまで録画の生成を待機したくない場合があります。 この場合、ライブストリームが終了した直後に録画を生成するようにシステムを設定できます。 これを行うには、ストリーム取り込みの終了を示す通知を受け取るようにストリーム取り込みコールバックを設定します。 このような通知を受け取ったら、RealTimeRecordCommand操作を呼び出してしきい値メカニズムをキャンセルし、すぐに録音を生成します。 ストリーム取り込みコールバックの設定方法については、「ストリーム取り込みステータスのコールバック」をご参照ください。

しきい値メカニズムをキャンセルするためのサンプルコード

        // Replace the content in <> with actual values.
        RealTimeRecordCommandRequest realTimeRecordCommandRequest=new RealTimeRecordCommandRequest();
        realTimeRecordCommandRequest.setCommand("cancel_delay");
        realTimeRecordCommandRequest.setAppName("<AppName>");
        realTimeRecordCommandRequest.setStreamName("<StreamName>");
        realTimeRecordCommandRequest.setDomainName("<DomainName>");
        RealTimeRecordCommandResponse realTimeRecordCommandResponse = null;
        try {
            realTimeRecordCommandResponse = client.getAcsResponse(realTimeRecordCommandRequest);
        } catch (ClientException e) {
            e.printStackTrace();
        }
        System.out.println(new Gson().toJson(realTimeRecordCommandResponse));
説明
  • トランスコードされたストリームを記録する場合は、StreamNameをStreamName _Transcoding template IDに変更します。

  • setCommand("cancel_delay"): 中断期間をリセットし、録画を完全に停止し、すぐに録画を生成します。

カスタム記録ルールの設定

[録画設定の設定] セクションで、ライブストリームの録画機能が設定されます。 ライブストリームが取り込まれると、記録プロセスが開始されます。 これは自動記録と呼ばれます。

場合によっては、ビジネス要件に基づいてライブストリームを録画するかどうかを決定することができます。 必要に応じて、次のいずれかの方法を使用してライブストリームを記録できます。

1. ApsaraVideo Liveは、ライブストリームを録画するかどうかを尋ねるリクエストを送信します。 ApsaraVideo Liveがライブストリームを録画するための応答を受信すると、録画プロセスが開始されます。 これは、オンデマンド記録と呼ばれる。

2. ビジネスシステムは、ライブストリームを録画するためにApsaraVideo Liveに通知を送信します。 これは手動記録と呼ばれます。

オンデマンド記録

オンデマンド録画を実装するには、ビジネスシステムがApsaraVideo LiveのコールバックURLを提供する必要があります。 詳細については、「オンデマンド録画のコールバック」をご参照ください。

次のサンプルコードは、オンデマンド記録を設定する方法の例を示しています。

        // Set the OnDemand parameter to 1, which enables on-demand recording by using the HTTP callback method. 
        addLiveAppRecordConfigRequest.setOnDemand(1);

AddLiveRecordNotifyConfigを呼び出して、ドメイン名の記録コールバックを設定することもできます。

記録コールバックを設定するためのサンプルコード

        // Replace the content in <> with actual values.
        AddLiveRecordNotifyConfigRequest addLiveRecordNotifyConfigRequest=new AddLiveRecordNotifyConfigRequest();
        // Specify a callback URL for on-demand recording.
        addLiveRecordNotifyConfigRequest.setOnDemandUrl("<OnDemandUrl>");
        addLiveRecordNotifyConfigRequest.setNotifyUrl("<NotifyUrl>");
        addLiveRecordNotifyConfigRequest.setDomainName("<DomainName>");
        AddLiveRecordNotifyConfigResponse addLiveRecordNotifyConfigResponse = null;
        try {
            addLiveRecordNotifyConfigResponse = client.getAcsResponse(addLiveRecordNotifyConfigRequest);
        } catch (ClientException e) {
            e.printStackTrace();
        }
        System.out.println(new Gson().toJson(addLiveRecordNotifyConfigResponse));
重要
  • <OnDemandUrl> は、オンデマンド記録のコールバックURLを指定します。 <NotifyUrl> は、イベントとステータスの記録に関する通知を受け取るために使用されるコールバックURLを指定します。

  • <NotifyUrl> パラメーターが必要です。 オンデマンドの録音リクエストのみを受信し、録音イベントとステータスをコールバックしたくない場合は、<NotifyUrl> パラメーターを、リクエストされたメソッドをサポートしていないURLに設定できます。

手動録音

手動記録を有効にするには、自動記録を無効にする必要があります。 サンプルコード:

        // Set the OnDemand parameter to 7, which disables automatic recording. 
        addLiveAppRecordConfigRequest.setOnDemand(7);

ライブストリーミング中に、RealTimeRecordCommand操作を呼び出して、ビジネス要件に基づいて録画を開始できます。

記録を開始するためのサンプルコード

        // Replace the content in <> with actual values. 
        RealTimeRecordCommandRequest realTimeRecordCommandRequest=new RealTimeRecordCommandRequest();
        realTimeRecordCommandRequest.setCommand("start");
        realTimeRecordCommandRequest.setAppName("<AppName>");
        realTimeRecordCommandRequest.setStreamName("<StreamName>");
        realTimeRecordCommandRequest.setDomainName("<DomainName>");
        RealTimeRecordCommandResponse realTimeRecordCommandResponse = null;
        try {
            realTimeRecordCommandResponse = client.getAcsResponse(realTimeRecordCommandRequest);
        } catch (ClientException e) {
            e.printStackTrace();
        }
        System.out.println(new Gson().toJson(realTimeRecordCommandResponse));
説明
  • トランスコードされたストリームを記録する場合は、StreamNameをStreamName _Transcoding template IDに変更します。

  • setCommand("start"): 録音を開始します。

記録の停止

RealTimeRecordCommand操作を呼び出して、自動録音オンデマンド録音、または手動録音を使用していても、手動で録音を停止できます。

記録を停止するためのサンプルコード

        // Replace the content in <> with actual values. 
        RealTimeRecordCommandRequest realTimeRecordCommandRequest=new RealTimeRecordCommandRequest();
        realTimeRecordCommandRequest.setCommand("stop");
        realTimeRecordCommandRequest.setAppName("<AppName>");
        realTimeRecordCommandRequest.setStreamName("<StreamName>");
        realTimeRecordCommandRequest.setDomainName("<DomainName>");
        RealTimeRecordCommandResponse realTimeRecordCommandResponse = null;
        try {
            realTimeRecordCommandResponse = client.getAcsResponse(realTimeRecordCommandRequest);
        } catch (ClientException e) {
            e.printStackTrace();
        }
        System.out.println(new Gson().toJson(realTimeRecordCommandResponse));
説明
  • setCommand("stop"): 録音を停止します。

  • 手動で録画を停止した場合、中断時間のしきい値が経過した後に録画が生成されます。

  • トランスコードされたストリームを記録する場合は、StreamNameをStreamName _Transcoding template IDに変更します。

関連する API

記録サイクルの設定

ライブストリームの期間が指定した録画サイクルを超えると、新しい録画が生成されます。 例えば、ライブストリームが20分間続き、記録サイクルが15分に設定されている場合、2つの記録が生成される。 記録サイクルは15〜360の範囲の値に設定できます。

記録サイクルを設定するためのサンプルコード

        List<AddLiveAppRecordConfigRequest.RecordFormat> formatList=new ArrayList<AddLiveAppRecordConfigRequest.RecordFormat>();
        AddLiveAppRecordConfigRequest.RecordFormat m3u8Format=new AddLiveAppRecordConfigRequest.RecordFormat();
        m3u8Format.setFormat("m3u8");
        m3u8Format.setOssObjectPrefix("<record/{AppName}/{StreamName}/{EscapedStartTime}_{EscapedEndTime}>");
        m3u8Format.setSliceOssObjectPrefix("<record/{AppName}/{StreamName}/{UnixTimestamp}_{Sequence}>");
       // Configure the recording cycle. Unit: seconds.
        m3u8Format.setCycleDuration(<900>);
        AddLiveAppRecordConfigRequest.RecordFormat mp4Format=new AddLiveAppRecordConfigRequest.RecordFormat();
        mp4Format.setFormat("mp4");
        mp4Format.setOssObjectPrefix("<record/{AppName}/{StreamName}/{EscapedStartTime}_{EscapedEndTime}>");
        // Configure the recording cycle. Unit: seconds.
        mp4Format.setCycleDuration(<1500>);
        formatList.add(mp4Format);
        formatList.add(m3u8Format);
        addLiveAppRecordConfigRequest.setRecordFormats(formatList);
説明

上記のサンプルコードでは、それぞれが特定の記録サイクルで、2つの記録フォーマットが記録用に設定されています。 ストリームが20分間取り込まれると、3つの録音が生成されます。 1つの録音はMP4形式であり、2つの録音はM3U8形式です。

ライブストリームの持続時間が記録サイクルを超えない場合、ライブストリームが終了した後に記録が生成される。 ライブストリームが終了する前に録画コンテンツを表示する場合は、RealTimeRecordCommandを呼び出して、録画を強制的に再開できます。 ライブストリームの録画中に録画を再開すると、すぐに録画が生成されます。

記録を再開するためのサンプルコード

        // Replace the content in <> with actual values. 
        RealTimeRecordCommandRequest realTimeRecordCommandRequest=new RealTimeRecordCommandRequest();
        realTimeRecordCommandRequest.setCommand("restart");
        realTimeRecordCommandRequest.setAppName("<AppName>");
        realTimeRecordCommandRequest.setStreamName("<StreamName>");
        realTimeRecordCommandRequest.setDomainName("<DomainName>");
        RealTimeRecordCommandResponse realTimeRecordCommandResponse = null;
        try {
            realTimeRecordCommandResponse = client.getAcsResponse(realTimeRecordCommandRequest);
        } catch (ClientException e) {
            e.printStackTrace();
        }
        System.out.println(new Gson().toJson(realTimeRecordCommandResponse));
説明
  • setCommand("restart"): 記録を再開します。

  • トランスコードされたストリームを記録する場合は、StreamNameをStreamName _Transcoding template IDに変更します。

  • ライブストリームの録画に複数の保存形式を設定した場合、再起動後に生成された録画は設定された形式で保存されます。

録音のマージと抽出

ApsaraVideo Liveを使用すると、録画用のインデックスファイルを作成し、時間範囲ごとに録画コンテンツを抽出できます。 時間範囲内で生成された複数の録音を1つの録音にマージすることもできます。

説明
  • ApsaraVideo Liveは、レコーディングのストレージ形式に関係なく、まずライブストリームを複数のTSセグメントにスライスし、それらを構成して指定されたコンテナ形式でレコーディングを生成します。 TSセグメントを参照するM3U8インデックスファイルを作成できます。 これにより、インデックスファイルに基づいて録画コンテンツをマージして抽出できます。

  • M3U8形式で保存されている録音のみをマージまたは抽出できます。

インデックスファイルを作成するには、CreateLiveStreamRecordIndexFiles操作を呼び出します。

インデックスファイルを作成するためのサンプルコード

        CreateLiveStreamRecordIndexFilesRequest createLiveStreamRecordIndexFilesRequest=new CreateLiveStreamRecordIndexFilesRequest();
        createLiveStreamRecordIndexFilesRequest.setAppName("<AppName>");
        createLiveStreamRecordIndexFilesRequest.setStreamName("<StreamName>");
        createLiveStreamRecordIndexFilesRequest.setDomainName("<DomainName>");
        createLiveStreamRecordIndexFilesRequest.setOssEndpoint("<OssEndpoint>");
        createLiveStreamRecordIndexFilesRequest.setOssBucket("<OssBucket>");
        createLiveStreamRecordIndexFilesRequest.setStartTime("<StartTime>");
        createLiveStreamRecordIndexFilesRequest.setEndTime("<EndTime>");
        createLiveStreamRecordIndexFilesRequest.setOssObject("<IndexFiles/OssObject.m3u8>");
        CreateLiveStreamRecordIndexFilesResponse createLiveStreamRecordIndexFilesResponse = null;
        try {
            createLiveStreamRecordIndexFilesResponse = client.getAcsResponse(createLiveStreamRecordIndexFilesRequest);
        } catch (ClientException e) {
            e.printStackTrace();
        }
        System.out.println(new Gson().toJson(createLiveStreamRecordIndexFilesResponse));
説明
  • 上記のサンプルコードでは、特定の時間範囲内のライブストリームの録画コンテンツに対してインデックスファイルを作成しています。 <AppName> は、アプリケーション名を指定します。 <StreamName> はストリーム名を指定します。 <StartTime> は、時間範囲の開始を指定する。 <EndTime> は、時間範囲の終了を指定します。 インデックスファイルはOSSバケットに保存されます。 <OssEndpoint> はOSSエンドポイントを指定します。 <OssBucket> は、OSSバケットの名前を指定します。 <IndexFiles/OssObject.m3u8> は、インデックスファイルの名前を指定します。

  • <StartTime> および <EndTime> の値は、yyyy-MM-dd T HH:mm:ss Z形式で、UTCで表示されます。

重要
  • インデックスファイルは、ライブストリームが取り込まれた後にのみ作成できます。 指定された時間範囲内にライブストリームが使用できない場合、または指定されたライブストリームの名前が無効な場合、インデックスファイルの作成に失敗します。

  • 録画コンテンツには、ファイルと、アプリケーション名、ストリーム名、OSSストレージパスなどのファイルに関する情報が含まれます。 TSセグメントとM3U8インデックスファイルに関する情報は、ApsaraVideo Liveに保存されます。 TSセグメントとM3U8インデックスファイルを含むファイルは、OSSに保存されます。

  • OSSに保存されているファイルの保存期間は、OSSバケットの設定によって決まります。

  • ApsaraVideo Liveは、TSセグメントに関する情報3か月間のみ保存します。 M3U8インデックスファイルは、過去3か月の録音に対してのみ作成できます。

  • ApsaraVideo Liveは、M3U8インデックスファイルに関する情報6か月間のみ保存します。 クエリできるのは、過去6か月間に作成されたM3U8インデックスファイルに関する情報だけです。

  • トランスコードされたストリームをマージまたは抽出する場合は、StreamNameをStreamName _Transcoding template IDに変更する必要があります。

  • <OssBucket> パラメーターで指定されたOSSバケットは、ドメイン名のライブセンターと同じリージョンに存在する必要があります。 それ以外の場合、ドメイン名を使用してM3U8インデックスファイルに関する情報を照会することはできません。

関連する API

録音の管理

録画を見る

次の3つの方法を使用して、OSSに保存されている録画を表示できます。

ApsaraVideo Liveコンソールの使用

  1. ApsaraVideo Live コンソール にログインします。

  2. 左側のナビゲーションウィンドウで、[機能管理]> [記録] を選択します。 [録音] ページで、[録音] タブをクリックします。

  3. ストリーミングドメインを選択します。

  4. OSSタブをクリックして、録画を表示します。

    image

API操作の呼び出し

        // Replace the content in <> with actual values. 
        DefaultProfile profile = DefaultProfile.getProfile("<regionId>", "<ALIBABA_CLOUD_ACCESS_KEY_ID>", "<ALIBABA_CLOUD_ACCESS_KEY_SECRET>");
        IAcsClient client = new DefaultAcsClient(profile);
        DescribeLiveStreamRecordIndexFilesRequest describeLiveStreamRecordIndexFilesRequest=new DescribeLiveStreamRecordIndexFilesRequest();
        describeLiveStreamRecordIndexFilesRequest.setAppName("<AppName>");
        describeLiveStreamRecordIndexFilesRequest.setStreamName("<StreamName>");
        describeLiveStreamRecordIndexFilesRequest.setDomainName("<DomainName>");
        describeLiveStreamRecordIndexFilesRequest.setStartTime("<StartTime>");
        describeLiveStreamRecordIndexFilesRequest.setEndTime("<EndTime>");
        DescribeLiveStreamRecordIndexFilesResponse describeLiveStreamRecordIndexFilesResponse = null;
        try {
            describeLiveStreamRecordIndexFilesResponse = client.getAcsResponse(describeLiveStreamRecordIndexFilesRequest);
        } catch (ClientException e) {
            e.printStackTrace();
        }

        for(int i=0;i<describeLiveStreamRecordIndexFilesResponse.getRecordIndexInfoList().size();i++){
            System.out.println(new Gson().toJson(describeLiveStreamRecordIndexFilesResponse.getRecordIndexInfoList().get(i)));

        }
重要
  • クエリできるのは、過去6か月間のデータのみです。

  • EndTimeとStartTimeの値は、yyyy-MM-dd T HH:mm:ss Z形式で、UTCで表示されます。 時間範囲は4日を超えることはできません。

  • API操作の詳細については、「DescribeLiveStreamRecordIndexFiles」をご参照ください。

OSSサービスの使用

ライブストリーム録画機能を設定するときは、OSSで録画の保存場所を指定する必要があります。 OSSを使用して録画を表示する方法については、「リストオブジェクト」をご参照ください。

録音の削除

ApsaraVideo Liveには、アプリケーション名、ストリーム名、OSSストレージパスなどの録画情報が保存され、OSSには実際のファイルが保存されます。 ApsaraVideo Liveで録画を削除するときにOSSに保存されている関連ファイルを削除する場合は、AliyunMTSVideoLifecycleRoleロールを作成し、システムポリシーAliyunMTSVideoLifecycleRolePolicyをロールにアタッチする必要があります。

権限付与手順

ApsaraVideo Liveコンソールで録画を削除する前に、次の操作を実行してリソースアクセス管理 (RAM) ロールを作成し、RAMロールに権限を付与します。

  1. Alibaba CloudアカウントでRAMコンソールにログインします。

  2. 左側のナビゲーションウィンドウで、アイデンティティ > ロールを選択します。

  3. ロールページで、ロールの作成をクリックします。

  4. ロールタイプの選択ステップで、信頼できるエンティティの選択セクションのAlibaba Cloudサービスを選択して、次へをクリックします。image

  5. [ロールの設定] ステップで、次のパラメーターを設定します。

    • [ロールタイプ][通常のサービスロール] に設定します。

    • RAMロール名フィールドにAliyunMTSVideoLifecycleRoleを入力します。

    • (オプション) ニーズに基づいて [メモ] フィールドにコンテンツを入力します。

    • [信頼できるサービスの選択] ドロップダウンリストから [メディアトランスコーディングサービス] を選択します。

    [OK] をクリックします。image

  6. [完了] ステップでは、ロールが作成されたことを示すメッセージが表示されます。 ロールの詳細ページで、[正確な権限] をクリックします。

  7. [正確な権限] パネルで、次のパラメーターを設定します。

    • [タイプ][システムポリシー] に設定します。

    • [ポリシー名] フィールドにAliyunMTSVideoLifecycleRolePolicyを入力します。

    [OK] をクリックします。image

次の3つの方法を使用して、OSSに保存されている録音を削除できます。

ApsaraVideo Liveコンソールの使用

  1. ApsaraVideo Live コンソール にログインします。

  2. 左側のナビゲーションウィンドウで、[機能管理]> [記録] を選択します。 [録音] ページで、録画 タブをクリックします。

  3. 録音を削除するドメイン名を選択します。

  4. OSSタブをクリックして、削除する録音を見つけて、[アクション] 列の削除をクリックします。

    删除录制文件

  5. OKをクリックします。

    デフォルトでは、「OSSに保存されている録画ファイルも削除」オプションは選択されていません。 このオプションを選択した場合、ApsaraVideo Liveコンソールで録画を削除すると、OSSに保存されている録画ファイルも削除されます。确定删除

API操作の呼び出し

        DeleteLiveStreamRecordIndexFilesRequest deleteLiveStreamRecordIndexFilesRequest=new DeleteLiveStreamRecordIndexFilesRequest();
        deleteLiveStreamRecordIndexFilesRequest.setAppName("<AppName>");
        deleteLiveStreamRecordIndexFilesRequest.setStreamName("<StreamName>");
        deleteLiveStreamRecordIndexFilesRequest.setDomainName("<DomainName>");

        List<String> recordList=new ArrayList<>();
        // Specify the ID of the index file.
        recordList.add("<recordId>");
        deleteLiveStreamRecordIndexFilesRequest.setRecordIds(recordList);
        deleteLiveStreamRecordIndexFilesRequest.setRemoveFile("<true>");
        DeleteLiveStreamRecordIndexFilesResponse deleteLiveStreamRecordIndexFilesResponse = null;
        try {
            deleteLiveStreamRecordIndexFilesResponse = client.getAcsResponse(deleteLiveStreamRecordIndexFilesRequest);
        } catch (ClientException e) {
            e.printStackTrace();
        }

        System.out.println(new Gson().toJson(deleteLiveStreamRecordIndexFilesResponse));
重要
  • <recordId> は、インデックスファイルのIDを指定します。 IDの取得方法については、「録画の表示」セクションをご参照ください。

  • API操作の詳細については、「DeleteLiveStreamRecordIndexFiles」をご参照ください。

OSSサービスの使用

ほとんどの場合、OSSに保存されている録画ファイルを直接削除することはお勧めしません。 OSSに保存されている録画ファイルを削除する場合は、ApsaraVideo Liveコンソールで録画を削除するときに [OSSに保存されている録画ファイルも削除] オプションを選択できます。 OSSに保存されている録画ファイルを直接削除する方法については、「オブジェクトの削除」をご参照ください。

その他の情報

過去6か月間の記録データを照会できます。 6か月以上前に生成されたファイルを削除する場合は、OSSを使用できます。 詳細については、「オブジェクトの削除」をご参照ください。

OSSバケット内の期限切れの録画ファイルを自動的に削除する場合は、ApsaraVideo LiveにOSSリソースへのアクセスを許可する必要があります。 これを行うには、[クラウドリソースアクセス許可] ページに移動し、[許可に同意する] をクリックします。 次に、チケットを起票します。 アフターセールスチームは、要件に基づいて有効期間を設定します。 チケットの起票方法の詳細については、「お問い合わせ」をご参照ください。 有効期間を設定すると、ApsaraVideo LiveはOSSに保存されている期限切れの録画ファイルを自動的に削除できます。

説明

上記の操作を実行することで、ApsaraVideo Liveに他のAlibaba Cloudサービスのリソースへのアクセス権限を付与するロールが割り当てられます。 誤ってロールを削除した場合は、再度権限付与を実行できます。

関連ドキュメント

Java用サーバーSDKの使用方法については、「Java用サーバーSDKの使用」をご参照ください。

コールバックの記録の詳細については、「ライブストリーム録画用のコールバック」および「オンデマンド録画用のコールバック」をご参照ください。