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

ApsaraVideo VOD:暗号化されたビデオの再生

最終更新日:Sep 15, 2026

ApsaraVideo VOD と ApsaraVideo Live は、複数のビデオ暗号化方式をサポートしています。このトピックでは、ApsaraVideo Player SDK を使用して、Alibaba Cloud 専用の暗号化、HLS 標準暗号化、および DRM 暗号化で暗号化されたビデオを再生する方法について説明します。

ビデオ暗号化の概要

ApsaraVideo VOD は、アクセスの制御、URL 署名、リモート認証、ビデオ暗号化、セキュアダウンロードなどを含む包括的なコンテンツセキュリティメカニズムを提供します。

概要では、利用可能なすべてのセキュリティポリシーについて説明しています。次の表は、3つのビデオ暗号化方式を比較したものです。

セキュリティポリシー

方法

利点

セキュリティレベル

デプロイの複雑さ

ビデオ暗号化

Alibaba Cloud 専用の暗号化

ApsaraVideo VOD は、独自の暗号化アルゴリズムを使用して、クラウドとデバイスを統合したビデオ暗号化ソリューションを提供します。これにより、伝送リンクのセキュリティが確保されます。

高

比較的低い。簡単な構成と ApsaraVideo Player SDK の統合のみが必要です。

HTTP ライブストリーミング (HLS) 暗号化

HLS 暗号化は AES-128 を使用してビデオコンテンツを暗号化し、すべての HLS 互換プレーヤーをサポートします。ただし、キーが盗難されやすいという脆弱性があります。

高

高い。キー管理サービスとトークン発行サービスをセットアップする必要があります。さらに、伝送リンクのセキュリティを確保する必要があります。

商用 DRM

Apple FairPlay や Google Widevine などの商用 DRM システムをネイティブでサポートします。この方法は高レベルのセキュリティを提供し、ほとんどの著作権者の要件を満たします。

高

高い。ライセンスコールの数に基づいて課金されます (サードパーティ DRM については、該当する課金基準をご参照ください)。ApsaraVideo Player SDK の統合のみが必要です。

ApsaraVideo Player SDK の互換性

説明
  1. ApsaraVideo Player SDK for Web を使用して暗号化されたビデオを再生する前に、ブラウザの互換性と機能の互換性を確認してください。ApsaraVideo Player SDK for Web は、主要なモバイルブラウザで Alibaba Cloud 専用の暗号化で暗号化されたビデオを再生できます。次の表では、✔️ はサポート対象、❌ はサポート対象外を示します。

  2. 互換性を確保するために、SDK 概要ページから最新の ApsaraVideo Player SDK をダウンロードしてください。

  3. 注意:HLS は M3U8 フォーマットを使用します。

クライアント

再生方法

専用の暗号化 (HLS)

ライセンスベースの暗号化 (HLS)

ライセンスベースの暗号化 (MP4)

専用の暗号化 (ライブ FLV)

HLS 暗号化

Alibaba Cloud DRM

サードパーティ DRM

Web

UrlSource ベースの再生

❌

❌

❌

❌

✔️

❌

✔️

VidAuth ベースの再生

✔️

❌

❌

❌

✔️

❌

❌

VidSts ベースの再生

✔️

❌

❌

❌

✔️

✔️

❌

UrlSource ベースのライブストリーミング

❌

❌

❌

❌

✔️

❌

✔️

LiveStsSource ベースのライブストリーミング

✔️

❌

❌

❌

❌

✔️

❌

ネイティブ (iOS/Android/Flutter/Harmony)

ネイティブ (iOS/Android/Flutter)

UrlSource ベースの再生

✔️

✔️

ApsaraVideo Player SDK v6.17.0 以降が必要です。

✔️

ApsaraVideo Player SDK v6.8.0 以降が必要です。

❌

✔️

❌

✔️

ApsaraVideo Player SDK v7.8.0 以降が必要です。Flutter ではサポートされていません。

VidAuth ベースの再生

✔️

✔️

❌

❌

✔️

❌

❌

VidSts ベースの再生

✔️

✔️

❌

❌

✔️

✔️

Flutter ではサポートされていません。

❌

UrlSource ベースのライブストリーミング

❌

❌

❌

❌

✔️

❌

✔️

ApsaraVideo Player SDK v7.8.0 以降が必要です。Flutter ではサポートされていません。

LiveStsSource ベースのライブストリーミング

✔️

✔️

❌

✔️

❌

✔️

Flutter ではサポートされていません。

❌

暗号化の概要

Alibaba Cloud ビデオ暗号化 (プライベート暗号化)

Alibaba Cloud ビデオ暗号化 (プライベート暗号化) はビデオデータを暗号化するため、ダウンロード後も暗号化されたままであり、不正な再配布やホットリンクを防ぎます。詳細については、「Alibaba Cloud ビデオ暗号化 (プライベート暗号化)」をご参照ください。

Alibaba Cloud Player SDK は復号とサーバー側のインタラクションを処理します。暗号化されたトランスコーディングを設定し、SDK を統合するだけで済みます。

重要
  • Alibaba Cloud ビデオ暗号化 (プライベート暗号化) は無料ですが、暗号化にはメディアトランスコーディングが必要であり、料金が発生します。詳細については、「メディアトランスコーディングの課金」をご参照ください。

プライベート暗号化の設定

Alibaba Cloud ビデオ暗号化を設定するには、「操作ガイド」に従ってください。

制限事項

Alibaba Cloud ビデオ暗号化 (プライベート暗号化) は、HLS、FLV、MP4 形式のビデオの暗号化をサポートしています。これらのビデオは Alibaba Cloud Player でのみ再生できます。Web クライアントは HLS 再生のみをサポートします。ネイティブクライアントは、これらすべての形式の再生をサポートします。

Alibaba Cloud ビデオ暗号化 (ライセンスベースのプライベート暗号化)

Alibaba Cloud ビデオ暗号化 (ライセンスベースのプライベート暗号化) は、プライベート暗号化を基盤としており、暗号化されたビデオ URL から直接再生できるため、起動速度が向上します。これは、ショートビデオや短編ドラマのシナリオに最適です。

重要
  • Alibaba Cloud ビデオ暗号化 (ライセンスベースのプライベート暗号化) は無料ですが、暗号化にはメディアトランスコーディングが必要であり、料金が発生します。詳細については、「メディアトランスコーディングの課金」をご参照ください。

ライセンスベースのプライベート暗号化の設定

Alibaba Cloud ビデオ暗号化を設定するには、「操作ガイド」に従ってください。

制限事項

Alibaba Cloud ビデオ暗号化 (ライセンスベースのプライベート暗号化) は、HLS および MP4 形式のビデオの暗号化をサポートしています。これらの暗号化されたビデオは Alibaba Cloud Player でのみ再生できます。

HLS 標準暗号化

HLS 標準暗号化は AES-128 を使用してビデオコンテンツを暗号化します。自社開発やオープンソースのものを含むすべての HLS プレーヤーと互換性がありますが、実装がより複雑で、専用の方式よりもセキュリティが低くなります。詳細については、「HLS 標準暗号化」をご参照ください。

重要

HLS 標準暗号化は無料ですが、暗号化にはメディアトランスコーディングが必要であり、料金が発生します。詳細については、「メディアトランスコーディングの課金」をご参照ください。

HLS 標準暗号化の設定

HLS 標準暗号化を設定するには、「統合ガイド」に従ってください。

制限事項

HLS 標準暗号化は、さまざまな HLS プレーヤーと互換性があります。このトピックでは、Alibaba Cloud Player を例として使用します。Alibaba Cloud Player はトークン渡しをサポートしています。CDN は HLS マニフェストファイル内の復号 URI を動的に調整し、アプリケーションが検証できるユーザートークンを追加します。

Alibaba Cloud DRM 暗号化

ApsaraVideo VOD は、Widevine および FairPlay スキームを使用した業界標準のデジタル著作権管理 (DRM) 暗号化をサポートし、著作権で保護されたビデオを管理するためのワンストップソリューションを提供します。詳細については、「DRM 暗号化」をご参照ください。

重要

DRM 暗号化はトランスコーディング中に適用されます (メディアトランスコーディング料金が適用されます)。クライアントが再生ライセンスを要求すると、DRM ライセンス料金が適用されます。詳細については、「DRM 課金」をご参照ください。

DRM 暗号化の設定

この機能は、ApsaraVideo Live および ApsaraVideo VOD コンソールで有効にします。詳細については、「ApsaraVideo Live の DRM 暗号化を設定する」および「ApsaraVideo VOD の DRM 暗号化を設定する」をご参照ください。

制限事項

現在、DRM 暗号化されたビデオは Alibaba Cloud Player でのみ再生できます。

サードパーティ DRM 暗号化

ApsaraVideo VOD はサードパーティの DRM 暗号化をサポートしており、ApsaraVideo for Media Processing でのビデオ制作からサードパーティの DRM 暗号化、ApsaraVideo Player SDK での再生まで、エンドツーエンドのワークフローを可能にします。

重要

DRM 暗号化はトランスコーディング中に適用されます (メディアトランスコーディング料金が適用されます)。クライアントが再生ライセンスを要求すると、DRM ライセンス料金が適用されます。詳細については、「DRM 課金」をご参照ください。

DRM 暗号化の設定

この機能は、ApsaraVideo for Media Processing コンソールで有効にします。詳細については、「Live Packaging」および「VOD Packaging」をご参照ください。

Web クライアント

説明
  • ApsaraVideo Player SDK for Web を使用する前に、Alibaba Cloud 専用の暗号化のブラウザ互換性を確認してください。

    • H5 モードは、デスクトップとモバイルの両方のブラウザをサポートしています。詳細については、「機能サポート」をご参照ください。

  • セキュリティ上の理由から、Alibaba Cloud 専用の暗号化では、実際に暗号化されたビデオでのデバッグは許可されていません。

操作手順

Web プレーヤーを Web ページに埋め込みます。

  1. クイックスタートガイドに従って、ApsaraVideo Player SDK for Web をページにインポートします。

  2. 暗号化方式を選択して再生を開始します。

    次のコードは、プレーヤーを埋め込む方法を示しています。

Alibaba Cloud 専用の暗号化

VOD (VidAuth)

ApsaraVideo VOD の VidAuth 方式を使用して Alibaba Cloud 専用の暗号化で暗号化されたビデオを再生するには、専用の暗号化を有効にするために encryptType: 1 パラメーターも渡す必要があります。これは、標準ビデオの再生には必要ありません。

var player = new Aliplayer({
    id: 'J_prismPlayer',
    width: '100%',
    vid : '<your video ID>',// 必須。 ビデオ ID。 これは、ApsaraVideo VOD コンソールで [メディアライブラリ] > [オーディオ/ビデオ] を選択することで確認できます。 例:1e067a2831b641db90d570b6480f****。
    playauth : '<your PlayAuth>',// 必須。 再生認証情報。 これは、GetVideoPlayAuth オペレーションを呼び出すことで取得できます。
    encryptType: 1, // 必須。 専用の暗号化でストリームを再生する場合は、これを 1 に設定します。 このパラメーターは、他の場合には必要ありません。
    playConfig:{EncryptType:'AliyunVoDEncryption'}, // M3U8 ストリームに専用の暗号化を使用しない他のストリームも含まれている場合に必須です。
    // authTimeout: 7200, // オプション。 再生 URL の有効期間 (秒単位)。 この値は、ApsaraVideo VOD コンソールで設定された URL 署名の有効期間を上書きします。 指定しない場合、デフォルト値は 7200 です。 設定する場合は、再生中に URL が期限切れにならないように、この値がビデオの長さを超えるようにしてください。
  },function(player){
    console.log('The player is created.')
 });

ライブ (LiveStsSource)

LiveStsSource 方式で専用の暗号化を使用するライブストリームを再生するには、ストリーム URL と STS 一時認証情報を提供する必要があります。認証情報の生成方法については、「STS トークンの取得」をご参照ください。

let player = new Aliplayer({
   id: 'J_prismPlayer',
   width: '100%',
   isLive: true, // ライブストリーミングの場合は true に設定します。
   source: '<your live stream url>',// 必須。 専用の暗号化を使用した HLS ライブストリームの再生 URL。
   accessKeyId: '<your AccessKey ID>',// 必須。 STS 一時認証情報ペアの AccessKey ID。 STS の AssumeRole オペレーションを呼び出して生成します。
   accessKeySecret: '<your AccessKey Secret>',// 必須。 STS 一時認証情報ペアの AccessKey Secret。 STS の AssumeRole オペレーションを呼び出して生成します。
   securityToken: '<your STS token>',// 必須。 STS セキュリティトークン。 STS の AssumeRole オペレーションを呼び出して生成します。
   domain: '<your Domain>',// 必須。 ライブストリームのストリーミングドメイン。
   app:'<your App Name>',// 必須。 ライブストリームの AppName。
   stream:'<your Stream Name>',// 必須。 トランスコードされたストリームではなく、元のライブストリームの StreamName。ストリーム名が mystream_lhd.m3u8 の場合は、mystream と入力します。
   regionId: '<region of your video>',// 必須。 サービスリージョン (例:cn-shanghai、eu-central-1、ap-southeast-1)。
 },function(player){
   console.log('The player is created.')
});
説明
  • iOS バージョン 17.1 より前のブラウザで暗号化されたオンデマンドビデオを再生するには、追加のプレーヤープラグインスクリプトをデプロイする必要があります。次の手順に従ってください:

    iOS バージョン 17.1 より前では、専用の暗号化には Service Worker 技術に基づくプラグインが必要です。ブラウザのセキュリティポリシーにより、Service Worker は同一オリジンのスクリプトに制限されるため、プラグインを Web サイトと同じドメインにデプロイする必要があります。

    1. スクリプトをダウンロードします:https://g.alicdn.com/apsara-media-box/imp-web-player/<version_number>/aliplayer-worker-min.js

    2. スクリプトをデプロイします:たとえば、ビデオ再生 Web サイトが https://www.aliyun.com/a/b.html の場合、スクリプトを Web ページと同じディレクトリにある https://www.aliyun.com/a/aliplayer-worker-min.js にデプロイする必要があります。

    3. プレーヤーを初期化するときにこの URL を渡します:

      new Aliplayer({
        // ...その他のパラメーター
        swScriptURL: 'https://www.aliyun.com/a/aliplayer-worker-min.js' // プラグインスクリプトの完全な URL を指定し、アクセス可能であることを確認してください。
      })

    注意:プレーヤーのバージョンがプラグインのバージョンと完全に一致していることを確認してください。

  • Web ページがカスタムパッケージ化された iOS アプリケーション (uni-app など) 内で実行される場合は、アプリの Info.plist ファイルの WKAppBoundDomains にドメインを追加して、WKWebView で Service Worker を有効にします。詳細については、「App-Bound Domains」をご参照ください。

HLS 標準暗号化

VOD (VidAuth)

ApsaraVideo VOD の VidAuth 方式を使用して HLS 標準暗号化でビデオを再生する場合、ビデオに他の非 HLS 標準暗号化ストリームまたは標準トランスコード済みストリームも含まれている場合は、EncryptType パラメーターを HLSEncryption に設定して、HLS 標準暗号化ストリームのみをフィルタリングして再生できます。

let player = new Aliplayer({
   id:'J_prismPlayer',
   vid:'<your video ID>', // 必須。 ビデオ ID。 例:1e067a2831b641db90d570b6480f****。
   playauth:'<your PlayAuth>', // 必須。 ビデオ再生認証情報。
   playConfig: { // オプション。
     MtsHlsUriToken: '', // オプション。 MtsHlsUriToken (ユーザートークン) を検証する必要がある場合は、このパラメーターで渡します。
     EncryptType: 'HLSEncryption', // オプション。 このパラメーターを HLSEncryption に設定すると、HLS 標準暗号化のストリームのみが返されます。
   },
 });

VOD (VidSts)

ApsaraVideo VOD の VidSts 方式を使用して HLS 標準暗号化でビデオを再生する場合、ビデオに他の非 HLS 標準暗号化ストリームまたは標準トランスコード済みストリームも含まれている場合は、EncryptType パラメーターを HLSEncryption に設定して、HLS 標準暗号化ストリームのみをフィルタリングして再生できます。

let player = new Aliplayer({
   id: 'J_prismPlayer',
   vid : '<your video ID>', // 必須。 ビデオ ID。 ID は、ApsaraVideo VOD コンソール ([メディアライブラリ] > [オーディオ/ビデオ]) から取得するか、ビデオのアップロード後に SearchMedia API オペレーションを呼び出すことで取得できます。 例:1e067a2831b641db90d570b6480f****。
   accessKeyId: '<your AccessKey ID>', // 必須。 STS 一時認証情報ペアの AccessKey ID。STS セキュリティトークンを生成する際に返されます。
   securityToken: '<your STS token>', // 必須。 STS セキュリティトークン。 STS の AssumeRole オペレーションを呼び出して生成します。
   accessKeySecret: '<your AccessKey Secret>', // 必須。 STS 一時認証情報ペアの AccessKey Secret。STS セキュリティトークンを生成する際に返されます。
   region: '<region of your video>', // 必須。 サービスリージョン (例:cn-shanghai、eu-central-1、ap-southeast-1)。
   playConfig: { // オプション。
     MtsHlsUriToken: '', // オプション。 MtsHlsUriToken (ユーザートークン) を検証する必要がある場合は、このパラメーターで渡します。
     EncryptType: 'HLSEncryption', // オプション。 このパラメーターを HLSEncryption に設定すると、HLS 標準暗号化のストリームのみが返されます。
   },
 };

UrlSource

UrlSource 方式で HLS 標準暗号化を使用するライブまたはオンデマンドストリームを再生する場合、追加のパラメーターは必要ありません。設定は、標準ビデオの再生と同じです。

  let player = new Aliplayer({
    id:'J_prismPlayer',
    source:'<your play URL>', // 再生 URL。ライブまたはオンデマンドストリーム用です。
    isLive: true, // ライブストリーミングの場合は true に設定します。
  });

DRM 暗号化

VOD (VidSts)

ApsaraVideo VOD の VidSts メソッドを使用して DRM で暗号化された動画を再生するには、さらに isDrm: true パラメーターを渡す必要があります。

var player = new Aliplayer({
   id: 'J_prismPlayer',
   width: '100%',
   isDrm: true,
   vid: '<your video ID>',// 必須。 ビデオ ID。 これは、ApsaraVideo VOD コンソールで [メディアライブラリ] > [オーディオ/ビデオ] を選択することで確認できます。 例:1e067a2831b641db90d570b6480f****。
   accessKeyId: '<your AccessKey ID>',// 必須。 STS 一時認証情報ペアの AccessKey ID。 STS の AssumeRole オペレーションを呼び出して生成します。
   securityToken: '<your STS token>',// 必須。 STS セキュリティトークン。 STS の AssumeRole オペレーションを呼び出して生成します。
   accessKeySecret: '<your AccessKey Secret>',// 必須。 STS 一時認証情報ペアの AccessKey Secret。 STS の AssumeRole オペレーションを呼び出して生成します。
   region: '<region of your video>', // 必須。 サービスリージョン (例:cn-shanghai、eu-central-1、ap-southeast-1)。
   certId: '<your certificate ID>', // Apple デバイスでの再生に必須。 このパラメーターを使用して Apple 証明書を要求します。 DRM の実装に応じて、ApsaraVideo VOD または ApsaraVideo Live コンソールから取得します。
   // authTimeout: 7200, // オプション。 再生 URL の有効期間 (秒単位)。 この値は、ApsaraVideo VOD コンソールで設定された URL 署名の有効期間を上書きします。 指定しない場合、デフォルト値は 7200 です。 設定する場合は、再生中に URL が期限切れにならないように、この値がビデオの長さを超えるようにしてください。
 },function(player){
   console.log('The player is created.')
});

ライブ (LiveStsSource)

LiveStsSource 方式を使用して DRM 暗号化されたライブストリームを再生するには、ストリーム URL と STS 一時認証情報を提供します。STS 一時認証情報の生成方法については、「STS トークンの取得」をご参照ください。

var player = new Aliplayer({
   id: 'J_prismPlayer',
   width: '100%',
   isLive: true, // ライブストリーミングの場合は true に設定します。
   isDrm: true,
   source: '<your live stream url>',// 必須。 DRM 暗号化されたライブストリームの再生 URL。
   accessKeyId: '<your AccessKey ID>',// 必須。 STS 一時認証情報ペアの AccessKey ID。 STS の AssumeRole オペレーションを呼び出して生成します。
   securityToken: '<your STS token>',// 必須。 STS セキュリティトークン。 STS の AssumeRole オペレーションを呼び出して生成します。
   accessKeySecret: '<your AccessKey Secret>',// 必須。 STS 一時認証情報ペアの AccessKey Secret。 STS の AssumeRole オペレーションを呼び出して生成します。
   region: '<region of your video>', // 必須。 サービスリージョン (例:cn-shanghai、eu-central-1、ap-southeast-1)。
   certId: '<your certificate ID>', // Apple デバイスでの再生に必須。 このパラメーターを使用して Apple 証明書を要求します。 DRM の実装に応じて、ApsaraVideo VOD または ApsaraVideo Live コンソールから取得します。
 },function(player){
   console.log('The player is created.')
});

Android

操作手順

Alibaba Cloud Player SDK for Android をアプリケーションに統合します。以下のセクションでは、手順とサンプルコードを提供します。

  1. Alibaba Cloud Player SDK for Android を統合します。

    詳細については、「SDK の統合」をご参照ください。

  2. プレーヤーを作成してビデオを再生します。

    「基本機能」に従い、「ステップ 3. DataSource を作成する」では、要件に応じて次のいずれかのメソッドを選択します。

Alibaba Cloud ビデオ暗号化 (プライベート暗号化)

注意事項

Alibaba Cloud ビデオ暗号化 (プライベート暗号化) で暗号化された HLS ビデオは、トランスコーディング後に URL を使用して再生できます。トランスコーディングの前に、同じアカウントでライセンスをバインドし (ライセンスの管理)、トランスコードテンプレートグループを作成する際に EncryptType パラメーターを設定します。例:

重要

テンプレートを作成した後、コンソールで変更または保存しないでください。そうしないと、暗号化方式が上書きされます。

[{
        "TranscodeTemplateId": "",
	"TemplateName": "740P H.264 HLS local encryption",
	"Type": "Normal",
	"Container": {
		"Format": "m3u8"
	},
	"TransConfig": {
		"IsCheckReso": false,
		"IsCheckResoFail": false,
		"IsCheckVideoBitrate": false,
		"IsCheckVideoBitrateFail": false,
		"IsCheckAudioBitrate": false,
		"IsCheckAudioBitrateFail": false
	},
	"Definition": "HD",
	"MuxConfig": {
		"Segment": {
			"Duration": 5
		}
	},
	"EncryptSetting": {
		"EncryptType": "AliyunVoDLicenseEncryption"
	},
	"Video": {
		"Height": 720,
		"Bitrate": 400,
		"Codec": "H.264",
		"Fps": 25,
		"Gop": 250,
		"Profile": "high"
	},
	"Audio": {
		"Bitrate": 64,
		"Codec": "AAC",
		"Channels": 2,
		"Samplerate": "44100"
	}
}]

VidAuth

ApsaraVideo VOD VidAuth を使用してプライベート暗号化された HLS または MP4 ビデオを再生する場合、ビデオに他の暗号化タイプのストリームまたは暗号化されていないトランスコード済みストリームも含まれている場合は、ビデオ暗号化タイプを AliyunVoDEncryption に設定して、プライベート暗号化されたストリームのみを再生できます。

VidAuth vidAuth = new VidAuth();
VidPlayerConfigGen vidPlayerConfigGen = new VidPlayerConfigGen();
vidPlayerConfigGen.setEncryptType(VidPlayerConfigGen.EncryptType.AliyunVoDEncryption);// オプション。 このパラメーターを AliyunVoDEncryption に設定すると、プライベート暗号化されたビデオストリームのみが返されます。
vidAuth.setPlayConfig(vidPlayerConfigGen);
vidAuth.setVid("your_video_id");// 必須。 ビデオ ID。
vidAuth.setPlayAuth("<yourPlayAuth>");// 必須。 ApsaraVideo VOD の GetVideoPlayAuth オペレーションを呼び出して生成された PlayAuth。
vidAuth.setRegion("your_region");// このパラメーターは、プレーヤー SDK V5.5.5.0 以降では非推奨です。 プレーヤーが自動的に解決するため、リージョンを設定する必要はありません。 以前のバージョンでは、このパラメーターは必須です。 ApsaraVideo VOD がアクティブ化されているリージョンを指定します。 デフォルト値:cn-shanghai。
// vidAuth.setAuthTimeout(3600); // オプション。 再生 URL の有効期間 (秒単位)。 この値は、ApsaraVideo VOD コンソールで設定された URL 認証の有効期間を上書きします。 デフォルト値は 3600 です。 このパラメーターを設定する場合は、再生が完了する前に URL が期限切れにならないように、その値がビデオの長さを超えるようにしてください。
aliPlayer.setDataSource(vidAuth);

VidSts

ApsaraVideo VOD VidSts を使用してプライベート暗号化された HLS または MP4 ビデオを再生する場合、ビデオに他の暗号化タイプのストリームまたは暗号化されていないトランスコード済みストリームも含まれている場合は、ビデオ暗号化タイプを AliyunVoDEncryption に設定して、プライベート暗号化されたストリームのみを再生できます。

VidSts vidSts = new VidSts();
VidPlayerConfigGen vidPlayerConfigGen = new VidPlayerConfigGen();
vidPlayerConfigGen.setEncryptType(VidPlayerConfigGen.EncryptType.AliyunVoDEncryption);// オプション。 このパラメーターを AliyunVoDEncryption に設定すると、プライベート暗号化されたビデオストリームのみが返されます。
vidSts.setPlayConfig(vidPlayerConfigGen);
vidSts.setVid("your_video_id");// 必須。 ビデオ ID。
vidSts.setAccessKeyId("<yourAccessKeyId>");// 必須。 一時的な STS 認証情報の AccessKey ID。 これを取得するには、STS の AssumeRole オペレーションを呼び出します。
vidSts.setAccessKeySecret("<yourAccessKeySecret>");// 必須。 一時的な STS 認証情報の AccessKey Secret。 これを取得するには、STS の AssumeRole オペレーションを呼び出します。
vidSts.setSecurityToken("<yourSecurityToken>");// 必須。 セキュリティトークン。 これを取得するには、STS の AssumeRole オペレーションを呼び出します。
vidSts.setRegion("your_region");// 必須。 ApsaraVideo VOD がアクティブ化されているリージョン。 デフォルト値:cn-shanghai。
// vidSts.setAuthTimeout(3600); // オプション。 再生 URL の有効期間 (秒単位)。 この値は、ApsaraVideo VOD コンソールで設定された URL 認証の有効期間を上書きします。 デフォルト値は 3600 です。 このパラメーターを設定する場合は、再生が完了する前に URL が期限切れにならないように、その値がビデオの長さを超えるようにしてください。
aliPlayer.setDataSource(vidSts);

LiveSts

ApsaraVideo Live の LiveSts オブジェクトを使用して、HLS または FLV 形式のプライベート暗号化されたライブストリームを再生するには、URL と STS 認証情報を渡し、ビデオ暗号化タイプを AliEncryption に設定する必要があります。次のコードは例です:

  1. データソースを作成します。

    再生ソースとして LiveSts を渡す必要があります。

    // LiveSts オブジェクトを作成し、EncryptionType を AliEncryption に設定します。
    LiveSts liveSts = new LiveSts();
    liveSts.setUrl("<your live stream url>");// 必須。 プライベート暗号化された HLS ライブストリームの再生 URL。
    liveSts.setAccessKeyId("<your AccessKey ID>");// 必須。 一時的な STS 認証情報の AccessKey ID。 これを取得するには、STS の AssumeRole オペレーションを呼び出します。
    liveSts.setAccessKeySecret("<your AccessKey Secret>");// 必須。 一時的な STS 認証情報の AccessKey Secret。 これを取得するには、STS の AssumeRole オペレーションを呼び出します。
    liveSts.setSecurityToken("<your STS token>");// 必須。 セキュリティトークン。 これを取得するには、STS の AssumeRole オペレーションを呼び出します。
    liveSts.setDomain("<your Domain>");// 必須。 ライブストリームのストリーミングドメイン。
    liveSts.setApp("<your App Name>");// 必須。 ライブストリームの AppName。
    liveSts.setStream("<your Stream Name>");// 必須。 ライブストリームの StreamName。
    liveSts.setEncryptionType(LiveSts.LiveEncryptionType.AliEncryption);// 必須。 暗号化タイプを AliEncryption に設定します。
    liveSts.setRegion("<region of your video>");// 必須。 サービスリージョン (例:cn-shanghai)。
    // 再生ソースを設定します。
    aliPlayer.setDataSource(liveSts);
    // 再生の準備をします。
    aliPlayer.prepare();
  2. STS の無効化をリッスンします。

    暗号化されたライブ再生中に、暗号鍵がローテーションされることがあります。キーのローテーションが発生すると、プレーヤーは STS 認証情報を使用して新しいキーを要求します。無効な認証情報は再生を中断させるため、STS 認証情報の有効性を監視する必要があります。

    mAliyunVodPlayer.setOnVerifyTimeExpireCallback(new AliPlayer.OnVerifyTimeExpireCallback() {
    		@Override
        public AliPlayer.Status onVerifySts(StsInfo info) {
            if(info is valid){
                return IPlayer.StsStatus.Valid;
            }
    
            if(a valid STS credential can be obtained){
                getSTS(); // これは非同期または同期にすることができます。
                return IPlayer.StsStatus.Pending;
            }
            // info が無効で、新しい STS 認証情報を取得できない場合は、破損したビデオ出力 を防ぐために再生を停止することをお勧めします。
            mAliyunVodPlayer.stop();
            return IPlayer.StsStatus.Invalid;
        }
    
        @Override
        public AliPlayer.Status onVerifyAuth(VidAuth auth) {
            return AliPlayer.Status.Valid;
        }
    });
    説明

    新しい STS 認証情報を正常に取得した後、updateLiveStsInfo メソッドを呼び出して更新する必要があります。新しい認証情報の取得に失敗した場合は、再生を停止することをお勧めします。STS 認証情報を更新しないと、プレーヤーは期限切れ後も古い認証情報を使用してキーを要求し続けます。STS 認証情報が無効になると、再生の失敗や破損したビデオ出力が発生する可能性があります。

    mAliyunVodPlayer.updateStsInfo(stsInfo);

Alibaba Cloud ビデオ暗号化 (ライセンスベースのプライベート暗号化)

注意事項

Alibaba Cloud ビデオ暗号化 (ライセンスベースのプライベート暗号化) で暗号化された HLS ビデオは、トランスコーディング後に URL を使用して再生できます。トランスコーディングの前に、同じアカウントでライセンスをバインドし (ライセンスの管理)、トランスコードテンプレートグループを作成する際に EncryptType パラメーターを設定します。例:

重要

テンプレートを作成した後、コンソールで変更または保存しないでください。そうしないと、暗号化方式が上書きされます。

[{
        "TranscodeTemplateId": "",
	"TemplateName": "740P H.264 HLS local encryption",
	"Type": "Normal",
	"Container": {
		"Format": "m3u8"
	},
	"TransConfig": {
		"IsCheckReso": false,
		"IsCheckResoFail": false,
		"IsCheckVideoBitrate": false,
		"IsCheckVideoBitrateFail": false,
		"IsCheckAudioBitrate": false,
		"IsCheckAudioBitrateFail": false
	},
	"Definition": "HD",
	"MuxConfig": {
		"Segment": {
			"Duration": 5
		}
	},
	"EncryptSetting": {
		"EncryptType": "AliyunVoDLicenseEncryption"
	},
	"Video": {
		"Height": 720,
		"Bitrate": 400,
		"Codec": "H.264",
		"Fps": 25,
		"Gop": 250,
		"Profile": "high"
	},
	"Audio": {
		"Bitrate": 64,
		"Codec": "AAC",
		"Channels": 2,
		"Samplerate": "44100"
	}
}]

UrlSource

説明

Alibaba Cloud Player SDK for Android V6.8.0 以降のみが、UrlSource を使用したライセンスベースのプライベート暗号化 MP4 ビデオの再生をサポートしています。バージョン V6.17.0 以降は、ライセンスベースのプライベート暗号化 HLS ビデオ (シングルビットレートおよびアダプティブビットレート) をサポートしています。

UrlSource を使用して HLS または MP4 形式のライセンスベースのプライベート暗号化ビデオを再生するには、GetPlayInfo オペレーションを呼び出してビデオの再生 URL を取得します。MP4 URL の場合、プレーヤーに渡す前に URL に etavirp_nuyila=1 を追加します。このパラメーターはクエリ文字列のどこにでも配置できます。HLS の場合は、元のビデオ URL を使用できます。プレーヤー SDK の設定は標準ビデオの場合と同じで、追加のパラメーターは必要ありません。

再生 URL の例 1:https://example.aliyundoc.com/test.mp4?etavirp_nuyila=1

再生 URL の例 2:https://example.aliyundoc.com/test.mp4?auth_key=xxxxx&etavirp_nuyila=1

// 再生 URL
String playURL = "https://example.aliyundoc.com/test.mp4?etavirp_nuyila=1";

// プレーヤー
UrlSource urlSource = new UrlSource();
urlSource.setUri(playURL);// 必須。 ビデオの再生 URL。 GetPlayInfo オペレーションを呼び出して URL を取得できます。
aliPlayer.setDataSource(urlSource);
aliPlayer.prepare();

// ショートビデオプレーヤー
AliListPlayer aliyunListPlayer = AliPlayerFactory.createAliListPlayer(getApplicationContext());
// UrlSource を追加
aliyunListPlayer.addUrl(playURL,uid);
aliyunListPlayer.moveTo(uid);

// プリロード
MediaLoader mediaLoader = MediaLoader.getInstance();
mediaLoader.load(playURL,"duration");

標準 HLS 暗号化

VidAuth

ApsaraVideo VOD VidAuth を使用して標準 HLS 暗号化を使用するビデオを再生する場合、ビデオに他の非標準 HLS 暗号化ストリームまたは標準トランスコード済みストリームも含まれている場合は、暗号化タイプを HLSEncryption に設定して、標準 HLS 暗号化ストリームのみを再生できます。次のコードは例です:

重要

標準 HLS 暗号化 M3U8 ファイルの書き換えを有効にした場合は、setMtsHlsUriToken を呼び出してユーザートークンを設定する必要があります。

VidAuth vidAuth = new VidAuth();
VidPlayerConfigGen playerConfig = new VidPlayerConfigGen();
playerConfig.setEncryptType(VidPlayerConfigGen.EncryptType.HLSEncryption);// オプション。 このパラメーターを HLSEncryption に設定すると、標準 HLS 暗号化ビデオストリームのみが返されます。
playerConfig.setMtsHlsUriToken("token");// オプション。 MtsHlsUriToken (ユーザートークン) を検証する場合は、このパラメーターを渡します。
vidAuth.setPlayConfig(playerConfig);
vidAuth.setVid("your_video_id");// 必須。 ビデオ ID。
vidAuth.setPlayAuth("<yourPlayAuth>");// 必須。 ApsaraVideo VOD の GetVideoPlayAuth オペレーションを呼び出して生成された PlayAuth。
vidAuth.setRegion("your_region");// このパラメーターは、プレーヤー SDK V5.5.5.0 以降では非推奨です。 プレーヤーが自動的に解決するため、リージョンを設定する必要はありません。 以前のバージョンでは、このパラメーターは必須です。 ApsaraVideo VOD がアクティブ化されているリージョンを指定します。 デフォルト値:cn-shanghai。
// vidAuth.setAuthTimeout(3600);// オプション。 再生 URL の有効期間 (秒単位)。 この値は、ApsaraVideo VOD コンソールで設定された URL 認証の有効期間を上書きします。 デフォルト値は 3600 です。 このパラメーターを設定する場合は、再生が完了する前に URL が期限切れにならないように、その値がビデオの長さを超えるようにしてください。
aliPlayer.setDataSource(vidAuth);

VidSts

ApsaraVideo VOD VidSts を使用して標準 HLS 暗号化を使用するビデオを再生する場合、ビデオに他の非標準 HLS 暗号化ストリームまたは標準トランスコード済みストリームも含まれている場合は、暗号化タイプを HLSEncryption に設定して、標準 HLS 暗号化ストリームのみを再生できます。次のコードは例です:

重要

標準 HLS 暗号化 M3U8 ファイルの書き換えを有効にした場合は、setMtsHlsUriToken を呼び出してユーザートークンを設定する必要があります。

VidSts vidSts = new VidSts();
VidPlayerConfigGen playerConfig = new VidPlayerConfigGen();
VidPlayerConfigGen.setEncryptType(VidPlayerConfigGen.EncryptType.HLSEncryption);//オプション。 このパラメーターを HLSEncryption に設定すると、標準 HLS 暗号化ビデオストリームのみが返されます。
playerConfig.setMtsHlsUriToken("token");// オプション。 MtsHlsUriToken (ユーザートークン) を検証する場合は、このパラメーターを渡します。
vidSts.setPlayConfig(playerConfig);
vidSts.setVid("your_video_id");// 必須。 ビデオ ID。
vidSts.setAccessKeyId("<yourAccessKeyId>");// 必須。 一時的な STS 認証情報の AccessKey ID。 これを取得するには、STS の AssumeRole オペレーションを呼び出します。
vidSts.setAccessKeySecret("<yourAccessKeySecret>");// 必須。 一時的な STS 認証情報の AccessKey Secret。 これを取得するには、STS の AssumeRole オペレーションを呼び出します。
vidSts.setSecurityToken("<yourSecurityToken>");// 必須。 セキュリティトークン。 これを取得するには、STS の AssumeRole オペレーションを呼び出します。
vidSts.setRegion("your_region");// 必須。 ApsaraVideo VOD がアクティブ化されているリージョン。 デフォルト値:cn-shanghai。
// vidSts.setAuthTimeout(3600);// オプション。 再生 URL の有効期間 (秒単位)。 この値は、ApsaraVideo VOD コンソールで設定された URL 認証の有効期間を上書きします。 デフォルト値は 3600 です。 このパラメーターを設定する場合は、再生が完了する前に URL が期限切れにならないように、その値がビデオの長さを超えるようにしてください。
aliPlayer.setDataSource(vidSts);

UrlSource

UrlSource で標準 HLS 暗号化を使用するストリームを再生する場合、プレーヤー SDK の設定は標準ビデオの場合と同じです。

ApsaraVideo VOD の使用を推奨します。GetPlayInfo オペレーションを呼び出してビデオの再生 URL を取得し、プレーヤーに渡すことができます。

重要

標準 HLS 暗号化 M3U8 ファイルの書き換えを有効にした場合は、プレーヤーに渡す前にビデオ URL に MtsHlsUriToken=<token> を追加する必要があります。このパラメーターはクエリ文字列のどこにでも配置できます。

元の再生 URL の例:https://demo.aliyundoc.com/encrypt-stream****-hd.m3u8。

プレーヤーに渡す URL の例:https://demo.aliyundoc.com/encrypt-stream****-hd.m3u8?MtsHlsUriToken=<token>。

UrlSource urlSource = new UrlSource();
        urlSource.setUri("playback_url");// 標準 HLS 暗号化を使用するライブまたはオンデマンドストリームの再生 URL。
        aliPlayer.setDataSource(urlSource);

Alibaba Cloud DRM 暗号化

説明

Android では、高レベルのセキュリティを持つビデオの適切な再生を確保するために、SurfaceView を使用することをお勧めします。

VidSts

まず、「ApsaraVideo VOD の DRM 暗号化を設定する」で説明されているように DRM 暗号化を設定します。ApsaraVideo VOD VidSts を使用して DRM 暗号化されたビデオを再生する場合、設定は暗号化されていないビデオの場合と同じです。追加のパラメーターは必要ありません。

VidSts vidSts = new VidSts();
        vidSts.setVid("your_video_id");// 必須。 ビデオ ID。
        vidSts.setAccessKeyId("<yourAccessKeyId>");// 必須。 一時的な STS 認証情報の AccessKey ID。 これを取得するには、STS の AssumeRole オペレーションを呼び出します。
        vidSts.setAccessKeySecret("<yourAccessKeySecret>");// 必須。 一時的な STS 認証情報の AccessKey Secret。 これを取得するには、STS の AssumeRole オペレーションを呼び出します。
        vidSts.setSecurityToken("<yourSecurityToken>");// 必須。 セキュリティトークン。 これを取得するには、STS の AssumeRole オペレーションを呼び出します。
        vidSts.setRegion("your_region");// 必須。 ApsaraVideo VOD がアクティブ化されているリージョン。 デフォルト値:cn-shanghai。
        // vidSts.setAuthTimeout(3600); // オプション。 再生 URL の有効期間 (秒単位)。 この値は、ApsaraVideo VOD コンソールで設定された URL 認証の有効期間を上書きします。 デフォルト値は 3600 です。 このパラメーターを設定する場合は、再生が完了する前に URL が期限切れにならないように、その値がビデオの長さを超えるようにしてください。
        aliPlayer.setDataSource(vidSts);

LiveSts

まず、「ApsaraVideo Live の DRM 暗号化を設定する」で説明されているように DRM 暗号化を設定します。LiveSts オブジェクトを使用して DRM 暗号化されたライブストリームを再生するには、URL と STS 認証情報を渡し、ビデオ暗号化タイプを WideVine_FairPlay に設定する必要があります。次のコードは例です:

  1. データソースを作成します。

    再生ソースとして LiveSts を渡す必要があります。

    // LiveSts オブジェクトを作成し、EncryptionType を WideVine_FairPlay に設定します。
    LiveSts liveSts = new LiveSts();
    liveSts.setUrl("<your live stream url>");// 必須。 DRM 暗号化された HLS ライブストリームの再生 URL。
    liveSts.setAccessKeyId("<your AccessKey ID>");// 必須。 一時的な STS 認証情報の AccessKey ID。 これを取得するには、STS の AssumeRole オペレーションを呼び出します。
    liveSts.setAccessKeySecret("<your AccessKey Secret>");// 必須。 一時的な STS 認証情報の AccessKey Secret。 これを取得するには、STS の AssumeRole オペレーションを呼び出します。
    liveSts.setSecurityToken("<your STS token>");// 必須。 セキュリティトークン。 これを取得するには、STS の AssumeRole オペレーションを呼び出します。
    liveSts.setDomain("<your Domain>");// 必須。 ライブストリームのストリーミングドメイン。
    liveSts.setApp("<your App Name>");// 必須。 ライブストリームの AppName。
    liveSts.setStream("<your Stream Name>");// 必須。 ライブストリームの StreamName。
    liveSts.setEncryptionType(LiveSts.LiveEncryptionType.WideVine_FairPlay);// 必須。 暗号化タイプを WideVine_FairPlay に設定します。 
    liveSts.setRegion("<region of your video>");// 必須。 サービスリージョン (例:cn-shanghai)。
    // 再生ソースを設定します。
    aliPlayer.setDataSource(liveSts);
    // 再生の準備をします。
    aliPlayer.prepare();
  2. STS の無効化をリッスンします。

    暗号化されたライブ再生中に、暗号鍵がローテーションされることがあります。キーのローテーションが発生すると、プレーヤーは STS 認証情報を使用して新しいキーを要求します。無効な認証情報は再生を中断させるため、STS 認証情報の有効性を監視する必要があります。

    mAliyunVodPlayer.setOnVerifyTimeExpireCallback(new AliPlayer.OnVerifyTimeExpireCallback() {
    		@Override
        public AliPlayer.Status onVerifySts(StsInfo info) {
            if(info is valid){
                return IPlayer.StsStatus.Valid;
            }
    
            if(a valid STS credential can be obtained){
                getSTS(); // これは非同期または同期にすることができます。
                return IPlayer.StsStatus.Pending;
            }
            // info が無効で、新しい STS 認証情報を取得できない場合は、破損したビデオ出力 を防ぐために再生を停止することをお勧めします。
            mAliyunVodPlayer.stop();
            return IPlayer.StsStatus.Invalid;
        }
    
        @Override
        public AliPlayer.Status onVerifyAuth(VidAuth auth) {
            return AliPlayer.Status.Valid;
        }
    });
    説明

    新しい STS 認証情報を正常に取得した後、updateLiveStsInfo メソッドを呼び出して更新する必要があります。新しい認証情報の取得に失敗した場合は、再生を停止することをお勧めします。STS 認証情報を更新しないと、プレーヤーは期限切れ後も古い認証情報を使用してキーを要求し続けます。STS 認証情報が無効になると、再生の失敗や破損したビデオ出力が発生する可能性があります。

    mAliyunVodPlayer.updateStsInfo(stsInfo);

サードパーティ DRM 暗号化

説明

この機能には、プレーヤー SDK V7.8.0 以降が必要です。

UrlSource

説明
  • この機能は、HLS および DASH プロトコルの Widevine DRM スキームのみをサポートします。

まず、「VOD パッケージング」を参照して DRM 暗号化を設定します。UrlSource メソッドを使用して DRM 暗号化されたビデオを再生する場合、通常のビデオの設定に加えて、DrmCallback インターフェイスを実装してビデオのキー情報を取得する必要もあります。

// DrmCallback.requestKey インターフェイスを実装して、サードパーティ DRM プロバイダーのドキュメントに従ってキーを取得します。
// 次の例は、PallyCon からキーを取得する方法を示しています。 詳細については、https://pallycon.com/docs/en/multidrm をご参照ください。

player.setDrmCallback(new DrmCallback() {
    @Override
    public byte[] requestKey(byte[] data) {
        // DRM プロバイダーの要件に従って、HTTP POST リクエストを使用してキー情報を要求します。
        String licenseUrl = "https://license-global.pallycon.com/ri/licenseManager.do";
        String[] header = {
            // TOKEN_ID を独自のものに置き換えます。
            "pallycon-customdata-v2: TOKEN_ID"
        };

        // このスレッドを長時間ブロックしないようにしてください。
        byte[] response = async_http_post(licenseUrl, header, data);
        if (response != null) {
            // トークンの response_format が 'original' に設定されている場合は、応答を直接返します。 それ以外の場合は、応答を返す前に解析する必要があります。
            // 詳細については、https://pallycon.com/docs/en/multidrm/license/license-token/#token-json をご参照ください。
            // 応答の形式と構造はプロバイダーによって大きく異なる場合があります。 慎重に確認してください。 応答を復号に使用できない場合、プレーヤーは onError コールバックを通じてエラーを報告します。
            return response;
        } else {
            // 例外を処理します。 プレーヤーは onError を呼び出し、関連するエラーを報告します。
            return null;
        }
    }
});

iOS

操作手順

Player SDK for iOS をアプリケーションに統合します。手順とサンプルコードは次のとおりです:

  1. Player SDK for iOS を統合します。

    SDK を統合する。

  2. プレーヤーを作成してビデオをロードし、再生します。

    基本機能に従います。ステップ 3. データソースを作成するでは、要件に応じて以下のいずれかのメソッドを使用します。

Alibaba Cloud プライベート暗号化

VOD 用 VidAuth

ApsaraVideo VOD の VidAuth メソッドを使用してプライベート暗号化された HLS または MP4 ビデオを再生する場合、ビデオに暗号化されていないストリームまたは標準のトランスコード済みストリームも含まれている場合は、暗号化タイプを AliyunVoDEncryption に設定して、プライベート暗号化されたストリームのみを再生します。

AVPVidAuthSource *authSource = [[AVPVidAuthSource alloc] init];
authSource.vid = @"Your video ID"; // 必須。 ビデオ ID。
authSource.playAuth = @"<yourPlayAuth>"; // 必須。 再生認証情報。 この認証情報は、ApsaraVideo VOD の GetVideoPlayAuth オペレーションを呼び出すことで取得できます。
authSource.region = @"Your region"; // このパラメーターは、Player SDK V5.5.5.0 以降では非推奨です。 プレーヤーが自動的にリージョンを解析するため、リージョンを設定する必要はありません。 SDK バージョン 5.5.5.0 より前では、このパラメーターは必須です。 ApsaraVideo VOD がアクティブ化されているリージョンを指定します。 デフォルト値:cn-shanghai。
// authSource.authTimeout = 3600; // オプション。 再生 URL の有効期間 (秒単位)。 この値は、ApsaraVideo VOD コンソールで設定された URL 認証の有効期間を上書きします。 このパラメーターを設定しない場合、デフォルト値 3600 が使用されます。 このパラメーターを設定する場合は、再生が完了する前に再生 URL が期限切れにならないように、実際のビデオの長さを超える値に設定してください。

// VidPlayerConfigGenerator を使用して設定を構築します。
VidPlayerConfigGenerator* config = [[VidPlayerConfigGenerator alloc]init];
[config addVidPlayerConfigByStringValue:@"EncryptType" value:@"AliyunVoDEncryption"]; // オプション。 暗号化タイプを AliyunVoDEncryption に設定すると、プライベート暗号化されたビデオストリームのみが返されます。
authSource.playConfig = [config generatePlayerConfig]; 
[self.player setAuthSource:authSource];

VOD 用 VidSts

ApsaraVideo VOD の VidSts メソッドを使用してプライベート暗号化された HLS または MP4 ビデオを再生する場合、ビデオに暗号化されていないストリームまたは標準のトランスコード済みストリームも含まれている場合は、暗号化タイプを AliyunVoDEncryption に設定して、プライベート暗号化されたストリームのみを再生します。

AVPVidStsSource *source = [[AVPVidStsSource alloc] init];
source.region = @"Your region"; // 必須。 ApsaraVideo VOD がアクティブ化されているリージョン。 デフォルト値:cn-shanghai。
source.vid = @"Your video ID"; // 必須。 ビデオ ID。
source.securityToken = @"<yourSecurityToken>"; // 必須。 セキュリティトークン。 このトークンは、STS の AssumeRole オペレーションを呼び出すことで取得できます。
source.accessKeySecret = @"<yourAccessKeySecret>"; // 必須。 一時的な STS 認証情報の AccessKey Secret。 この認証情報は、STS の AssumeRole オペレーションを呼び出すことで取得できます。
source.accessKeyId = @"<yourAccessKeyId>"; // 必須。 一時的な STS 認証情報の AccessKey ID。 この認証情報は、STS の AssumeRole オペレーションを呼び出すことで取得できます。
// source.authTimeout = 3600; // オプション。 再生 URL の有効期間 (秒単位)。 この値は、ApsaraVideo VOD コンソールで設定された URL 認証の有効期間を上書きします。 このパラメーターを設定しない場合、デフォルト値 3600 が使用されます。 このパラメーターを設定する場合は、再生が完了する前に再生 URL が期限切れにならないように、実際のビデオの長さを超える値に設定してください。

// VidPlayerConfigGenerator を使用して設定を構築します。
VidPlayerConfigGenerator* config = [[VidPlayerConfigGenerator alloc]init];
[config addVidPlayerConfigByStringValue:@"EncryptType" value:@"AliyunVoDEncryption"]; // オプション。 暗号化タイプを AliyunVoDEncryption に設定すると、プライベート暗号化されたビデオストリームのみが返されます。
source.playConfig = [config generatePlayerConfig]; 

// 再生ソースを設定します。
[self.player setStsSource:source];

ライブ用 LiveStsSource

LiveStsSource メソッドを使用して HLS または FLV 形式のプライベート暗号化されたライブストリームを再生するには、ストリーム URL と STS 認証情報を提供し、ビデオ暗号化タイプを ENCRYPTION_TYPE_ALIVODENCRYPTION に設定する必要があります。次のコードは例です:

  1. データソースを作成します。

    再生ソースとして AVPLiveStsSource を渡す必要があります。

    // LiveSts オブジェクトを作成し、encryptionType を ENCRYPTION_TYPE_ALIVODENCRYPTION に設定します。
    AVPLiveStsSource *liveStsSource = [[AVPLiveStsSource alloc] initWithUrl:@"Encrypted live stream URL" 
                                                                accessKeyId:@"Temporary AccessKey ID" 
                                                                accessKeySecret:@"Temporary AccessKey secret" 
                                                                securityToken:@"Security token" 
                                                                region:@"Region value" 
                                                                domain:@"Streaming domain for the URL" 
                                                                app:@"Application name for streaming" 
                                                                stream:@"Stream name for streaming" 
                                                                encryptionType:ENCRYPTION_TYPE_ALIVODENCRYPTION];// 必須。 暗号化タイプを ENCRYPTION_TYPE_ALIVODENCRYPTION に設定します。
     // 再生ソースを設定します。
     [self.aliPlayer setLiveStsSource:liveStsSource];
     ......
     // 再生の準備をします。
     [self.aliPlayer prepare];
  2. STS 認証情報の無効化をリッスンします。

    暗号化されたライブ再生中に、暗号鍵がローテーションされることがあります。これが発生すると、プレーヤーは STS 認証情報を使用して新しいキーを要求します。無効な認証情報は再生を中断させるため、認証情報の有効性を監視する必要があります。

     __weak typeof(self) weakSelf = self;
    [self.aliPlayer setVerifyStsCallback:^AVPStsStatus(AVPStsInfo info) {
        if (info is valid) {
            return Valid;
        }
        if (a valid STS credential can be obtained) {
            getSTS(); // これは非同期または同期の操作にすることができます。
            return Pending;
        }
        [weakSelf.aliPlayer stop];
        return Invalid;
    }];
    説明

    新しい STS 認証情報を取得した後、updateLiveStsInfo メソッドを呼び出して更新する必要があります。新しい認証情報の取得に失敗した場合は、再生を停止することをお勧めします。STS 認証情報を更新しないと、プレーヤーは期限切れの認証情報を使用してキーを要求しようとし、画面の乱れや再生の失敗を引き起こす可能性があります。

    [self.aliPlayer updateLiveStsInfo:self.liveStsSource.accessKeyId accKey:self.liveStsSource.accessKeySecret token:self.liveStsSource.securityToken region:self.liveStsSource.region];

Alibaba Cloud ライセンスベースのプライベート暗号化

VOD 用 UrlSource

説明

Player SDK for iOS V6.8.0 以降のみが、UrlSource を使用してライセンスベースのプライベート暗号化 MP4 ビデオの再生をサポートしています。V6.17.0 以降は、単一およびアダプティブビットレートのライセンスベースのプライベート暗号化 HLS ビデオをサポートしています。

UrlSource メソッドを使用してライセンスベースのプライベート暗号化 HLS または MP4 ビデオを再生するには、GetPlayInfo オペレーションを呼び出してビデオの再生 URL を取得できます。ビデオ URL を取得した後、プレーヤーに渡す前に URL に etavirp_nuyila=1 パラメーターを追加する必要があります。このパラメーターはクエリ文字列のどこにでも配置できます。このパラメーターは MP4 ビデオにのみ必要です。HLS ビデオの場合は、元のビデオ URL を使用できます。プレーヤーの設定は、標準ビデオの再生と同じです。追加のパラメーターは必要ありません。

再生 URL の例 1:https://example.aliyundoc.com/test.mp4?etavirp_nuyila=1

再生 URL の例 2:https://example.aliyundoc.com/test.mp4?auth_key=xxxxx&etavirp_nuyila=1

// 再生 URL
NSString *playURL = @"https://example.aliyundoc.com/test.mp4?etavirp_nuyila=1";

// プレーヤー
AliPlayer *player = [[AliPlayer alloc] init];
AVPUrlSource *urlSource = [[AVPUrlSource alloc] urlWithString:playURL]; // 必須。 ビデオの再生 URL。 GetPlayInfo オペレーションを呼び出して URL を取得できます。 MP4 ビデオの場合は、URL に `etavirp_nuyila=1` を追加する必要があります。 例:https://example.aliyundoc.com/test.mp4?etavirp_nuyila=1
[player setUrlSource:urlSource];
[player prepare];

// リストプレーヤー
AliListPlayer *listPlayer = [[AliListPlayer alloc] init];
[listPlayer addUrlSource:playURL uid:UUIDString];
[listPlayer moveTo:@"uid"];

// プリロード
AliMedialoader *mediaLoader = [AliMediaLoader shareInstance];
[mediaLoader load:playURL duration:1000];

HLS 標準暗号化

VOD 用 VidAuth

ApsaraVideo VOD の VidAuth メソッドで HLS 標準暗号化を使用して暗号化されたビデオを再生する場合、ビデオに暗号化されていないストリームまたは標準のトランスコード済みストリームも含まれている場合は、暗号化タイプを HLSEncryption に設定して、HLS 標準暗号化のストリームのみを再生します。次のコードは例です:

重要

M3U8 標準暗号化の書き換えを有効にした場合は、setHlsUriToken を呼び出してユーザートークンを設定する必要があります。

AVPVidAuthSource *authSource = [[AVPVidAuthSource alloc] init];
authSource.vid = @"Your video ID"; // 必須。 ビデオ ID。
authSource.playAuth = @"<yourPlayAuth>"; // 必須。 再生認証情報。 この認証情報は、ApsaraVideo VOD の GetVideoPlayAuth オペレーションを呼び出すことで取得できます。
authSource.region = @"Your region"; // このパラメーターは、Player SDK V5.5.5.0 以降では非推奨です。 プレーヤーが自動的にリージョンを解析するため、リージョンを設定する必要はありません。 SDK バージョン 5.5.5.0 より前では、このパラメーターは必須です。 ApsaraVideo VOD がアクティブ化されているリージョンを指定します。 デフォルト値:cn-shanghai。
// authSource.authTimeout = 3600; // オプション。 再生 URL の有効期間 (秒単位)。 この値は、ApsaraVideo VOD コンソールで設定された URL 認証の有効期間を上書きします。 このパラメーターを設定しない場合、デフォルト値 3600 が使用されます。 このパラメーターを設定する場合は、再生が完了する前に再生 URL が期限切れにならないように、実際のビデオの長さを超える値に設定してください。

// VidPlayerConfigGenerator を使用して設定を構築します。
VidPlayerConfigGenerator* config = [[VidPlayerConfigGenerator alloc]init];
[config addVidPlayerConfigByStringValue:@"EncryptType" value:@"HLSEncryption"]; // オプション。 このパラメーターを HLSEncryption に設定すると、HLS 標準暗号化を使用して暗号化されたビデオストリームのみが返されます。
[config setHlsUriToken: @"token"]; // オプション。 このパラメーターを使用して、検証のために MtsHlsUriToken (ユーザートークン) を渡します。
source.playConfig = [config generatePlayerConfig];

// 再生ソースを設定します。
[self.player setAuthSource:authSource];

VOD 用 VidSts

ApsaraVideo VOD の VidSts メソッドで HLS 標準暗号化を使用して暗号化されたビデオを再生する場合、ビデオに暗号化されていないストリームまたは標準のトランスコード済みストリームも含まれている場合は、暗号化タイプを HLSEncryption に設定して、HLS 標準暗号化のストリームのみを再生します。次のコードは例です:

重要

M3U8 標準暗号化の書き換えを有効にした場合は、setHlsUriToken を呼び出してユーザートークンを設定する必要があります。

AVPVidStsSource *source = [[AVPVidStsSource alloc] init];
source.vid = @"Your video ID"; // 必須。 ビデオ ID。
source.region = @"Your region"; // 必須。 ApsaraVideo VOD がアクティブ化されているリージョン。 デフォルト値:cn-shanghai。
source.securityToken = @"<yourSecurityToken>"; // 必須。 セキュリティトークン。 このトークンは、STS の AssumeRole オペレーションを呼び出すことで取得できます。
source.accessKeySecret = @"<yourAccessKeySecret>"; // 必須。 一時的な STS 認証情報の AccessKey Secret。 この認証情報は、STS の AssumeRole オペレーションを呼び出すことで取得できます。
source.accessKeyId = @"<yourAccessKeyId>"; // 必須。 一時的な STS 認証情報の AccessKey ID。 この認証情報は、STS の AssumeRole オペレーションを呼び出すことで取得できます。
// source.authTimeout = 3600; // オプション。 再生 URL の有効期間 (秒単位)。 この値は、ApsaraVideo VOD コンソールで設定された URL 認証の有効期間を上書きします。 このパラメーターを設定しない場合、デフォルト値 3600 が使用されます。 このパラメーターを設定する場合は、再生が完了する前に再生 URL が期限切れにならないように、実際のビデオの長さを超える値に設定してください。

// VidPlayerConfigGenerator を使用して設定を構築します。
VidPlayerConfigGenerator* config = [[VidPlayerConfigGenerator alloc]init];
[config addVidPlayerConfigByStringValue:@"EncryptType" value:@"HLSEncryption"]; // オプション。 このパラメーターを HLSEncryption に設定すると、HLS 標準暗号化を使用して暗号化されたビデオストリームのみが返されます。
[config setHlsUriToken: @"token"]; // オプション。 このパラメーターを使用して、検証のために MtsHlsUriToken (ユーザートークン) を渡します。
source.playConfig = [config generatePlayerConfig]; 

// 再生ソースを設定します。
[self.player setStsSource:source];

UrlSource

UrlSource メソッドを使用して HLS 標準暗号化のストリームを再生する場合、プレーヤーの設定は標準ビデオの再生と同じです。追加のパラメーターは必要ありません。

ApsaraVideo VOD の使用をお勧めします。GetPlayInfo オペレーションを呼び出してビデオの再生 URL を取得し、その URL をプレーヤーに渡すことができます。

重要

M3U8 標準暗号化の書き換えを有効にした場合は、プレーヤーに渡す前にビデオ URL に MtsHlsUriToken=<token> を追加する必要があります。このパラメーターはクエリ文字列のどこにでも配置できます。

元の再生 URL の例:https://demo.aliyundoc.com/encrypt-stream****-hd.m3u8。

プレーヤーに入力する URL の例:https://demo.aliyundoc.com/encrypt-stream****-hd.m3u8?MtsHlsUriToken=<token>。

AVPUrlSource *urlSource = [[AVPUrlSource alloc] urlWithString:url]; // HLS 標準暗号化を使用したライブまたはオンデマンドストリームの再生 URL。
[self.player setUrlSource:urlSource];

Alibaba Cloud DRM 暗号化

説明

iOS プラットフォームでは、[self.player prepare] の前に、AliPlayerGlobalSettings の setFairPlayCertID メソッドをグローバルに一度だけ呼び出して、証明書 ID を設定する必要があります。証明書 ID は、ApsaraVideo VOD コンソール > 設定管理 > メディア処理設定 > DRM 証明書管理で取得できます。

 [AliPlayerGlobalSettings setFairPlayCertID:@"Your certificate ID obtained from the console"];

VOD 用 VidSts

まず、「VOD の DRM 暗号化を設定する」を参照して DRM 暗号化を設定します。ApsaraVideo VOD の VidSts メソッドを使用して DRM 暗号化されたビデオを再生する場合、設定は標準ビデオの再生と同じです。追加のパラメーターは必要ありません。

AVPVidStsSource *source = [[AVPVidStsSource alloc] init];
source.region = @"Your region"; // 必須。 ApsaraVideo VOD がアクティブ化されているリージョン。 デフォルト値:cn-shanghai。
source.vid = @"Your video ID"; // 必須。 ビデオ ID。
source.securityToken = @"<yourSecurityToken>"; // 必須。 セキュリティトークン。 このトークンは、STS の AssumeRole オペレーションを呼び出すことで取得できます。
source.accessKeySecret = @"<yourAccessKeySecret>"; // 必須。 一時的な STS 認証情報の AccessKey Secret。 この認証情報は、STS の AssumeRole オペレーションを呼び出すことで取得できます。
source.accessKeyId = @"<yourAccessKeyId>"; // 必須。 一時的な STS 認証情報の AccessKey ID。 この認証情報は、STS の AssumeRole オペレーションを呼び出すことで取得できます。
// source.authTimeout = 3600; // オプション。 再生 URL の有効期間 (秒単位)。 この値は、ApsaraVideo VOD コンソールで設定された URL 認証の有効期間を上書きします。 このパラメーターを設定しない場合、デフォルト値 3600 が使用されます。 このパラメーターを設定する場合は、再生が完了する前に再生 URL が期限切れにならないように、実際のビデオの長さを超える値に設定してください。
 // 再生ソースを設定します。
 [self.player setStsSource:source]

ライブ用 LiveStsSource

まず、「ライブストリーミングの DRM 暗号化を設定する」を参照して DRM 暗号化を設定します。LiveStsSource メソッドを使用して DRM 暗号化されたライブストリームを再生するには、ストリーム URL と STS 認証情報を提供し、ビデオ暗号化タイプを ENCRYPTION_TYPE_FAIRPLAY に設定する必要があります。次のコードは例です:

  1. データソースを作成します。

    再生ソースとして AVPLiveStsSource を渡す必要があります。

    // LiveSts オブジェクトを作成し、encryptionType を ENCRYPTION_TYPE_FAIRPLAY に設定します。
    AVPLiveStsSource *liveStsSource = [[AVPLiveStsSource alloc] initWithUrl:@"Encrypted live stream URL" 
                                                                accessKeyId:@"Temporary AccessKey ID" 
                                                                accessKeySecret:@"Temporary AccessKey secret" 
                                                                securityToken:@"Security token" 
                                                                region:@"Region value" 
                                                                domain:@"Streaming domain for the URL" 
                                                                app:@"Application name for streaming" 
                                                                stream:@"Stream name for streaming" 
                                                                encryptionType:ENCRYPTION_TYPE_FAIRPLAY];// 必須。 暗号化タイプを ENCRYPTION_TYPE_FAIRPLAY に設定します。
     // 再生ソースを設定します。
     [self.aliPlayer setLiveStsSource:liveStsSource];
     ......
     // 再生の準備をします。
     [self.aliPlayer prepare];
  2. STS 認証情報の無効化をリッスンします。

    暗号化されたライブ再生中に、暗号鍵がローテーションされることがあります。これが発生すると、プレーヤーは STS 認証情報を使用して新しいキーを要求します。無効な認証情報は再生を中断させるため、認証情報の有効性を監視する必要があります。

     __weak typeof(self) weakSelf = self;
    [self.aliPlayer setVerifyStsCallback:^AVPStsStatus(AVPStsInfo info) {
        if (info is valid){
            return Valid;
        }
        if(a valid STS credential can be obtained){
            getSTS(); // これは非同期または同期の操作にすることができます。
            return Pending;
        }
        [weakSelf.aliPlayer stop];
        return Invalid;
    }];
    説明

    新しい STS 認証情報を取得した後、updateLiveStsInfo メソッドを呼び出して更新する必要があります。新しい認証情報の取得に失敗した場合は、再生を停止することをお勧めします。STS 認証情報を更新しないと、プレーヤーは期限切れの認証情報を使用してキーを要求しようとし、画面の乱れや再生の失敗を引き起こす可能性があります。

    [self.aliPlayer updateLiveStsInfo:self.liveStsSource.accessKeyId accKey:self.liveStsSource.accessKeySecret token:self.liveStsSource.securityToken region:self.liveStsSource.region];

サードパーティ DRM 暗号化

説明
  • この機能には、Player SDK V7.8.0 以降が必要です。

  • FairPlay で暗号化されたビデオを再生するには、AppleAVPlayer を使用する必要があります。再生が開始される前に、[self.player setPreferPlayerName:@"AppleAVPlayer"] を呼び出してプレーヤーコアを切り替えます。DRM で暗号化されていないビデオを再生する場合は、[self.player setPreferPlayerName:@""] を呼び出してデフォルトのコアに戻す必要があります。

FairPlay 用 UrlSource

説明
  • HLS プロトコル上の FairPlay スキームのみがサポートされています。

まず、「Live Packaging」を参照して DRM 暗号化を設定します。UrlSource メソッドを使用して DRM 暗号化されたビデオを再生する場合、通常のビデオと同じ設定を使用するだけでなく、AVPDrmDelegate インターフェイスを実装して FairPlay 証明書とビデオキーを取得する必要もあります。

@interface SimplePlayerViewController()<AVPDrmDelegate>
@end
- (void)viewDidLoad {
    self.player = [[AliPlayer alloc] init];
    self.player.playerView = self.avpPlayerView.playerView;
    self.player.drmDelegate = self;
    if(the current URL is for a third-party DRM video){
        [self.player setPreferPlayerName:@"AppleAVPlayer"];
    }
    //...
}

// AVPDrmDelegate.requestCert および requestKey インターフェイスを実装します。 サードパーティ DRM プロバイダーのドキュメントに従って、証明書とキーを取得します。
// 次の例は、PallyCon から証明書とキーを取得する方法を示しています。 詳細については、https://pallycon.com/docs/en/multidrm をご参照ください。
#pragma mark AVPDrmDelegate
- (NSData *)requestCert:(AliPlayer *)player {
    // 起動の遅延を減らすために、証明書を事前にフェッチしてキャッシュすることもできます。 その場合は、ここでキャッシュされた証明書を返します。
    // 証明書データが無効な場合、プレーヤーはエラーを報告します。 コンソールで詳細なエラー情報を確認することもできます。
    // SITE_ID を独自のサイト ID に置き換えます。
    const char* url = "https://license.pallycon.com/ri/fpsKeyManager.do?siteId=SITE_ID";

    // DRM プロバイダーの要件に従って、HTTP GET リクエストを使用して FairPlay 証明書を要求します。
    // このスレッドを長時間ブロックしないようにしてください。
    NSData* responseData = [self performAsyncHttpGet:url];
    if (!responseData) {
        // 例外を処理します。 プレーヤーはエラーを報告します。
        return nil;
    }
    
    // 応答データは、プレーヤーに返される前に Base64 デコードする必要があります。
    NSString *base64String = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
    return [self decodeBase64String:base64String];
}

- (NSData *)requestKey:(AliPlayer *)player data:(NSData *)data {
    // DRM プロバイダーの要件に従って、HTTP POST リクエストを使用してキー情報を要求します。
    NSString *urlString = [NSString stringWithFormat:@"https://license-global.pallycon.com/ri/licenseManager.do"];
    const char *url = [urlString UTF8String];

    // TOKEN_ID を独自のトークン ID に置き換えます。
    NSString *headerString = [NSString stringWithFormat:@"pallycon-customdata-v2: TOKEN_ID"];
    const char* headers[] = {
        [headerString UTF8String]
    };
    int headerCount = sizeof(headers) / sizeof(headers[0]);

    // このスレッドを長時間ブロックしないようにしてください。
    NSData* responseData = [self performAsyncHttpPost:url
                                             headers:headers
                                         headerCount:headerCount
                                                data:data];
    if (!responseData) {
        // 例外を処理します。 プレーヤーはエラーを報告します。
        return nil;
    }

    // トークンの response_format が `original` に設定されている場合は、応答を直接返します。 それ以外の場合は、応答を返す前に解析する必要があります。
    // 詳細については、https://pallycon.com/docs/en/multidrm/license/license-token/#token-json をご参照ください。
    // 応答の形式と構造はプロバイダーによって大きく異なる場合があります。 応答を注意深く確認してください。 応答を復号に使用できない場合、プレーヤーはエラーを報告します。
    return [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
}

Flutter クライアント

説明

Flutter クライアントは DRM 暗号化をサポートしていません。

操作手順

Flutter プレーヤーをアプリケーションに統合します。手順とサンプルコードは次のとおりです:

  1. Alibaba Cloud Player SDK for Flutter を統合します。

    SDK の統合。

  2. プレーヤーを作成してビデオを再生します。

    「基本機能」に従ってください。ステップ 3. 再生ソースの作成では、以下のいずれかの方法を選択してください。

Alibaba Cloud ビデオ暗号化 (プライベート暗号化)

VidAuth

ApsaraVideo for VOD の VidAuth メソッドでプライベート暗号化された HLS または MP4 ビデオを再生する場合、ビデオに暗号化されていないストリームまたは標準のトランスコード済みストリームも含まれている場合は、暗号化タイプを AliyunVoDEncryption に設定して、プライベート暗号化されたストリームのみを再生します。

FlutterAliplayer.setEncryptType(EncryptType.AliyunVoDEncryption); // オプション。 これを AliyunVoDEncryption に設定すると、プライベート暗号化されたビデオストリームのみが返されます。
FlutterAliplayer.generatePlayerConfig().then((value) {
          this.fAliplayer.setVidAuth(
              vid: "The video ID",
              region: "The region ID", // 必須。 ApsaraVideo for VOD がアクティブ化されているリージョン。 デフォルト:cn-shanghai。
              playAuth: "<yourPlayAuth>", // 必須。 PlayAuth。 ApsaraVideo for VOD の GetVideoPlayAuth オペレーションを呼び出して取得します。
              playConfig: value);
});

VidSts

ApsaraVideo for VOD の VidSts メソッドでプライベート暗号化された HLS または MP4 ビデオを再生する場合、ビデオに暗号化されていないストリームまたは標準のトランスコード済みストリームも含まれている場合は、暗号化タイプを AliyunVoDEncryption に設定して、プライベート暗号化されたストリームのみを再生します。

FlutterAliplayer.setEncryptType(EncryptType.AliyunVoDEncryption); // オプション。 これを AliyunVoDEncryption に設定すると、プライベート暗号化されたビデオストリームのみが返されます。
FlutterAliplayer.generatePlayerConfig().then((value) {
          this.fAliplayer.setVidSts(
              vid: "The video ID",
              region: "The region ID",
              accessKeyId: "<yourAccessKeyId>",
              accessKeySecret: "<yourAccessKeySecret>",
              securityToken: "<yourSecurityToken>",
              playConfig: value);
        });

ライセンスベースのプライベート暗号化

UrlSource

説明

Flutter プレーヤー SDK は、v6.8.0 以降で MP4 ビデオの UrlSource によるライセンスベースのプライベート暗号化をサポートし、v6.17.0 以降で HLS ビデオ (シングルビットレートおよびアダプティブビットレート) をサポートしています。

UrlSource ベースの再生でライセンスベースのプライベート暗号化を使用して暗号化された HLS または MP4 形式のビデオを再生する場合、オーディオまたはビデオの再生 URL の取得オペレーションを呼び出して再生 URL を取得します。取得した URL に etavirp_nuyila=1 を追加してからプレーヤーに渡す必要があります。(このパラメーターは MP4 ファイルにのみ必要です。HLS ファイルの場合は、元のビデオ URL を直接使用できます。) プレーヤー SDK の設定は標準ビデオの場合と同じで、追加のパラメーターは必要ありません。

再生 URL の例 1:https://example.aliyundoc.com/test.mp4?etavirp_nuyila=1

再生 URL の例 2:https://example.aliyundoc.com/test.mp4?auth_key=xxxxx&etavirp_nuyila=1

// 再生 URL。
String playURL = "https://example.aliyundoc.com/test.mp4?etavirp_nuyila=1"

// プレーヤーインスタンスを作成します。
FlutterAliplayer fAliplayer = FlutterAliPlayerFactory.createAliPlayer();
fAliplayer.setUrl(playURL);
fAliplayer.prepare();

// リストプレーヤー。
FlutterAliListPlayer fAliListPlayer = FlutterAliPlayerFactory.createAliListPlayer();
fAliListPlayer.addUrlSource(playURL,uid);
fAliListPlayer.moveTo("uid");

// プリロード。
FlutterAliPlayerMediaLoader fAliPlayerMediaLoader = FlutterAliPlayerMediaLoader();
fAliPlayerMediaLoader.load(playURL,"duration");

HLS 標準暗号化

VidAuth

ApsaraVideo for VOD の VidAuth メソッドで HLS 標準暗号化ビデオを再生する場合、ビデオに他の暗号化タイプのストリームまたは暗号化されていないトランスコード済みストリームも含まれている場合は、暗号化タイプを HLSEncryption に設定して、HLS 標準暗号化ストリームのみを再生できます。次のコードは例です:

重要

M3U8 標準暗号化の書き換えが有効になっている場合は、setHlsUriToken を呼び出してユーザートークンを渡す必要があります。

FlutterAliplayer.setEncryptType(EncryptType.HLSEncryption); // オプション。 HLSEncryption に設定すると、HLS 標準暗号化ビデオストリームのみが返されます。
FlutterAliplayer.setHlsUriToken("token"); // オプション。 MtsHlsUriToken を検証する必要がある場合は、このパラメーターを使用してトークンを渡します。
FlutterAliplayer.generatePlayerConfig().then((value) {
          this.fAliplayer.setVidAuth(
              vid: "The video ID",
              region: "The region ID", // 必須。 ApsaraVideo for VOD がアクティブ化されているリージョン。 デフォルト:cn-shanghai。
              playAuth: "<yourPlayAuth>", // 必須。 PlayAuth。 ApsaraVideo for VOD の GetVideoPlayAuth オペレーションを呼び出して取得します。
              playConfig: value);
});

VidSts

ApsaraVideo for VOD の VidSts メソッドで HLS 標準暗号化ビデオを再生する場合、ビデオに他の暗号化タイプのストリームまたは暗号化されていないトランスコード済みストリームも含まれている場合は、暗号化タイプを HLSEncryption に設定して、HLS 標準暗号化ストリームのみを再生できます。次のコードは例です:

重要

M3U8 標準暗号化の書き換えが有効になっている場合は、setHlsUriToken を呼び出してユーザートークンを渡す必要があります。

FlutterAliplayer.setEncryptType(EncryptType.HLSEncryption); // オプション。 これを AliyunVoDEncryption に設定すると、プライベート暗号化されたビデオストリームのみが返されます。
FlutterAliplayer.setHlsUriToken("token"); // オプション。 MtsHlsUriToken を検証する必要がある場合は、このパラメーターを使用してトークンを渡します。
FlutterAliplayer.generatePlayerConfig().then((value) {
          this.fAliplayer.setVidSts(
              vid: "The video ID",
              region: "The region ID",
              accessKeyId: "<yourAccessKeyId>",
              accessKeySecret: "<yourAccessKeySecret>",
              securityToken: "<yourSecurityToken>",
              playConfig: value);
        });

UrlSource

UrlSource メソッドを使用して HLS 標準暗号化のライブまたはオンデマンドストリームを再生する場合、プレーヤー SDK の設定は標準ビデオの場合と同じです。

再生 URL を取得するには、ApsaraVideo for VOD の GetPlayInfo オペレーションを呼び出すことをお勧めします。

重要

M3U8 標準暗号化の書き換えが有効になった後、プレーヤーに渡す前に再生 URL に MtsHlsUriToken=<token> パラメーターを追加する必要があります。このパラメーターは、URL のクエリ文字列のどこにでも配置できます。

元の再生 URL の例:https://demo.aliyundoc.com/encrypt-stream****-hd.m3u8。

プレーヤーに渡す URL の例:https://demo.aliyundoc.com/encrypt-stream****-hd.m3u8?MtsHlsUriToken=<token>。

// プレーヤーインスタンスを作成します。
FlutterAliplayer fAliplayer = FlutterAliPlayerFactory.createAliPlayer();
// 再生 URL は、HLS 標準暗号化のライブまたはオンデマンドストリーム用です。
fAliplayer.setUrl("The playback URL");
fAliplayer.prepare();

よくある質問

一般的な問題と解決策については、「ビデオ暗号化に関するよくある質問」をご参照ください。

関連ドキュメント