ApsaraVideo VODとApsaraVideo Liveは複数の暗号化方法をサポートしています。 ApsaraVideo Player SDKを使用して、ビデオを復号化および再生できます。 これにより、ビデオコンテンツがホットリンク、違法ダウンロード、不正配信から保護されます。 このトピックでは、ApsaraVideo Player SDKを使用して、HTTPライブストリーミング (HLS) 暗号化、Alibaba Cloud独自の暗号化、およびデジタル著作権管理 (DRM) 暗号化を使用して暗号化されたビデオを再生する方法について説明します。
ビデオ暗号化の概要
ApsaraVideo VODは、ホットリンクや違法なダウンロードや配信からビデオを保護するための包括的なセキュリティメカニズムを提供します。 セキュリティポリシーには、アクセス制御、URL署名、リモート認証、ビデオ暗号化、および安全なダウンロードが含まれます。
セキュリティポリシーの詳細については、「概要」をご参照ください。 このトピックでは、3つの暗号化方法を使用して暗号化されたビデオを再生する方法について説明します。 次の表に、ビデオの暗号化に使用できる3つの方法を示します。
セキュリティポリシー | 方式 | メリット | セキュリティレベル | デプロイの複雑さ |
ビデオ暗号化 | Alibaba Cloud 独自の暗号化 | ApsaraVideo VODは、独自の暗号化アルゴリズムを使用して、クラウドデバイス統合ビデオ暗号化ソリューションを提供します。 これにより、伝送リンクのセキュリティが確保されます。 | 高い | 比較的低い。 簡単な設定を実行し、ApsaraVideo Player SDKを統合するだけで済みます。 |
HTTPライブストリーミング (HLS) 暗号化 | HLS暗号化はAES-128を使用してビデオコンテンツを暗号化し、すべてのHLS互換プレーヤーをサポートします。 ただし、キーは盗難になりやすいです。 | 比較的高い | 高い。 鍵管理サービスとトークン発行サービスを設定する必要があります。 さらに、伝送リンクのセキュリティを確保する必要があります。 | |
商用デジタル著作権管理 (DRM) | AppleFairPlayやGoogleWidevineなどのプラットフォームは、DRMのネイティブサポートを提供します。DRMは高いセキュリティを提供し、大規模な著作権コンテンツプロバイダの要件を満たします。 | 高い | 高い。 ライセンスの呼び出し回数に基づいて課金されます。 ApsaraVideo Player SDKのみを統合する必要があります。 |
ApsaraVideo Player SDKの互換性
ApsaraVideo Player SDK for Webを使用して暗号化されたビデオを再生する前に、ブラウザでサポートされている暗号化機能に精通していることを確認してください。 たとえば、ApsaraVideo Player SDK For Webを使用して、iOSデバイスでAlibaba Cloud独自の暗号化を使用して暗号化されたビデオを再生することはできません。 詳細については、「HTML5プレーヤーでサポートされているブラウザー」および「ブラウザーでサポートされているHTML5プレーヤーの機能」をご参照ください。
クライアント | 再生方法 | Alibaba Cloud独自の暗号化 (HLS形式) | Alibaba Cloud独自の暗号化 (MP4形式) | HLS暗号化 | DRM暗号化 |
ApsaraVideo Player SDK for Web | UrlSourceベースの再生 | 非対応 | 非対応 | 対応 | 非対応 |
VidAuthベースの再生 | 対応 | 非対応 | 対応 | 非対応 | |
VidStsベースの再生 | 非対応 | 非対応 | 対応 | 対応 | |
UrlSourceベースのライブストリーミング | 非対応 | - | 対応 | 非対応 | |
LiveStsSourceベースのライブストリーミング | 対応 | - | 非対応 | 対応 | |
ApsaraVideo Player SDK for Android | UrlSourceベースの再生 | 非対応 | ApsaraVideo Player SDK for Android V6.8.0以降でのみサポートされます。 | 非対応 | 非対応 |
VidAuthベースの再生 | 対応 | 対応 | 対応 | 非対応 | |
VidStsベースの再生 | 対応 | 対応 | 対応 | 対応 | |
UrlSourceベースのライブストリーミング | 非対応 | - | 対応 | 非対応 | |
LiveStsSourceベースのライブストリーミング | 対応 | - | 非対応 | 対応 | |
ApsaraVideo Player SDK for iOS | UrlSourceベースの再生 | 非対応 | ApsaraVideo Player SDK for iOS V6.8.0以降でのみサポートされます。 | 非対応 | 非対応 |
VidAuthベースの再生 | 対応 | 対応 | 対応 | 非対応 | |
VidStsベースの再生 | 対応 | 対応 | 対応 | 対応 | |
UrlSourceベースのライブストリーミング | 非対応 | - | 対応 | 非対応 | |
LiveStsSourceベースのライブストリーミング | 対応 | - | 非対応 | 対応 |
Alibaba Cloud独自の暗号化
概要
Alibaba Cloud独自の暗号化により、ビデオデータが暗号化されます。 ローカルデバイスにダウンロードされるビデオファイルは暗号化されます。 これにより、不正な再配布、ビデオリーク、ホットリンクが防止されます。 Alibaba Cloud独自の暗号化のメカニズムと利点の詳細については、「Alibaba Cloud独自の暗号化」をご参照ください。
ApsaraVideo Playerは、ビデオの復号化とクライアントとサーバーのやり取りのロジックをSDKにカプセル化します。 Alibaba Cloud独自の暗号化を使用して暗号化された動画を再生するには、暗号化とトランスコードを設定し、ApsaraVideo Player SDKを統合して低コストで再生するだけです。
Alibaba Cloud独自の暗号化を使用して暗号化されたビデオは、HLSおよびMP4形式でのみ生成され、ApsaraVideo Playerを使用してのみ再生できます。
Alibaba Cloud独自の暗号化の設定
Alibaba Cloud独自の暗号化を設定する方法の詳細については、「アクセス方式」をご参照ください。
ApsaraVideo Player SDK for Webの使用
制限事項
Alibaba Cloud独自の暗号化を使用して暗号化されたHLSビデオを再生するには、ApsaraVideo Playerのみを使用できます。
手順
ApsaraVideo Player SDK for Webをwebページに埋め込んで、Alibaba Cloud独自の暗号化を使用して暗号化されたビデオを再生できます。 サンプルコード:
ApsaraVideo Player SDK for Webを使用する前に、Alibaba Cloud独自の暗号化を使用して暗号化されたビデオの再生をブラウザがサポートしていることを確認してください。 以下の項目では、ApsaraVideo Playerの互換性について説明します。
HTML5プレーヤーは、モバイルデバイスやPCのブラウザで使用できます。 詳細については、「ブラウザーでサポートされているHTML5プレーヤーの機能」をご参照ください。
フラッシュプレーヤーは、PC上のブラウザでのみ使用できます。 詳細については、「Flash playerでサポートされているブラウザ」をご参照ください。
セキュリティ上の理由から、Alibaba Cloud独自の暗号化を使用して、すでに暗号化されているビデオを暗号化することはできません。
VidAuthを使用して、Alibaba Cloud独自の暗号化 (HLS形式) を使用して暗号化されたオンデマンドビデオを再生する
VidAuthを使用して、Alibaba Cloud独自の暗号化を使用して暗号化されたオンデマンドビデオを再生する場合、encryptType: 1を渡す必要があります。 暗号化されていないビデオを再生する場合、この設定は不要です。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no" />
<title>Demo for playing an on-demand video that is encrypted by using Alibaba Cloud proprietary cryptography</title>
<link rel="stylesheet" href="https://g.alicdn.com/apsara-media-box/imp-web-player/2.16.3/skins/default/aliplayer-min.css" />
<script charset="utf-8" type="text/javascript" src="https://g.alicdn.com/apsara-media-box/imp-web-player/2.16.3/aliplayer-min.js"></script>
</head>
<body>
<div class="prism-player" id="J_prismPlayer"></div>
<script>
var player = new Aliplayer({
id: 'J_prismPlayer',
width: '100%',
vid : '<your video ID>',// Required. You can log on to the ApsaraVideo VOD console and choose Media Files > Audio/Video to obtain the video ID. Example: 1e067a2831b641db90d570b6480f****.
playauth : '<your PlayAuth>',// Required. You can call the GetVideoPlayAuth operation to obtain the playback credential.
encryptType: 1, // Required. Set this parameter to 1 if you use Alibaba Cloud proprietary cryptography to encrypt the video. Otherwise, leave this parameter empty.
playConfig:{EncryptType:'AliyunVoDEncryption'}, // Specify this parameter if the output M3U8 streams include streams that are encrypted by using an algorithm other than Alibaba Cloud proprietary cryptography.
// authTimeout: 7200, // The validity period of the playback URL. Unit: seconds. If you have configured a validity period for signed URLs in the ApsaraVideo VOD console, the configuration of this parameter takes precedence. If you leave this parameter empty, the default value 7200 is used. The validity period must be longer than the actual duration of the video. Otherwise, the playback URL expires before the playback is complete.
},function(player){
console.log('The player is created.')
});
</script>
</body>
</html>
LiveStsSourceを使用して、Alibaba Cloud独自の暗号化 (HLS形式) を使用して暗号化されたライブストリームを再生する
LiveStsSourceを使用してAlibaba Cloud独自の暗号化を使用して暗号化されたライブストリームを再生する場合、ストリーミングURLとSecurity Token Service (STS) トークンを指定する必要があります。 詳細については、「ロールを作成し、STSを使用してロールに一時的なアクセス許可を付与する」をご参照ください。 サンプルコード:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no" />
<title>Demo for playing a live stream that is encrypted by using Alibaba Cloud proprietary cryptography</title>
<link rel="stylesheet" href="https://g.alicdn.com/apsara-media-box/imp-web-player/2.16.3/skins/default/aliplayer-min.css" />
<script charset="utf-8" type="text/javascript" src="https://g.alicdn.com/apsara-media-box/imp-web-player/2.16.3/aliplayer-min.js"></script>
</head>
<body>
<div class="prism-player" id="J_prismPlayer"></div>
<script>
var player = new Aliplayer({
id: 'J_prismPlayer',
width: '100%',
isLive: true, // Set this parameter to true.
source: '<your live stream url>',// Required. The streaming URL is the HLS URL of an stream that is encrypted by using Alibaba Cloud proprietary cryptography.
accessKeyId: '<your AccessKey ID>',// Required. The AccessKey ID that is generated when the temporary STS token is issued. To generate the AccessKey ID, call the AssumeRole operation in STS.
accessKeySecret: '<your AccessKey secret>',// Required. The AccessKey secret that is generated when the temporary STS token is issued. To generate the AccessKey secret, call the AssumeRole operation in STS.
securityToken: '<your STS token>',// Required. The STS token. To generate an STS token, call the AssumeRole operation in STS.
domain: '<your Domain>',// Required. The domain name used for stream pulling.
app:'<your App Name>',// Required. The name of the application.
stream:'<your Stream Name>',// Required. The name of the live stream.
regionId: '<region of your video>',// Required. The ID of the region in which the media asset is stored, such as cn-shanghai, eu-central-1, or ap-southeast-1.
},function(player){
console.log('The player is created.')
});
</script>
</body>
</html>
ApsaraVideo Player SDK for Androidを使用する
制限事項
Alibaba Cloud独自の暗号化を使用して暗号化されたHLSおよびMP4ビデオは、ApsaraVideo Playerを使用してのみ再生できます。
手順
ApsaraVideo Player SDK for Androidをアプリケーションに統合できます。 次のコンテンツでは、ApsaraVideo Player SDK for Androidを再生に使用する方法について説明し、サンプルコードを提供します。
Android用ApsaraVideo Player SDKを統合します。
ApsaraVideo Player SDK For Androidを統合する方法の詳細については、「クイックインテグレーション」をご参照ください。
再生用のプレーヤーを作成します。
詳細については、「プレーヤーの作成」をご参照ください。 ステップ3: 再生ソースの設定で、次のいずれかの方法で再生ソースを設定します。
UrlSourceを使用して、Alibaba Cloud独自の暗号化 (MP4形式) を使用して暗号化されたオンデマンドビデオを再生する
説明UrlSourceを使用して、Alibaba Cloud独自の暗号化を使用して暗号化されたオンデマンドMP4ビデオを再生できます。 この方法は、ApasaVideo Player SDK for Android V6.8.0以降でのみサポートされています。
UrlSourceを使用してAlibaba Cloud独自の暗号化を使用して暗号化されたMP4ビデオを再生するには、GetPlayInfo操作を呼び出して再生URLを取得し、
etavirp_nuyila=1
をURLの末尾に追加します。 次に、再生のためにURLをプレーヤーに渡します。 追加のパラメーターを設定する必要はありません。サンプルURL:
https://example.aliyundoc.com/test.mp4?etavirp_nuyila=1
UrlSource urlSource = new UrlSource(); urlSource.setUri("Playback URL");// Required. The playback URL of the video. You can call the GetPlayInfo operation to obtain the URL. // Add etavirp_nuyila=1 to the end of the playback URL before you pass the URL to the player for playback. Sample URL: https://example.aliyundoc.com/test.mp4?etavirp_nuyila=1. aliPlayer.setDataSource(urlSource);
VidAuthを使用して、Alibaba Cloud独自の暗号化 (HLSおよびMP4形式) を使用して暗号化されたオンデマンドビデオを再生する
Alibaba Cloud独自の暗号化以外の方法で暗号化されたストリームが存在する場合、または暗号化されていないストリームが存在する場合、暗号化方法をAliyunVodEncryptionに設定して、Alibaba Cloud独自の暗号化を使用して暗号化されたビデオをフィルタリングできます。
VidAuth vidAuth = new VidAuth(); VidPlayerConfigGen vidPlayerConfigGen = new VidPlayerConfigGen(); vidPlayerConfigGen.setEncryptType(VidPlayerConfigGen.EncryptType.AliyunVodEncryption);// Optional. If you set the encryption method to AliyunVodEncryption, only videos that are encrypted by using Alibaba Cloud proprietary cryptography are returned. vidAuth.setPlayConfig(vidPlayerConfigGen); vidAuth.setVid("Video ID");// Required. The video ID. vidAuth.setPlayAuth("Playback credential"); // Required. The playback credential. To obtain the playback credential, call the GetVideoPlayAuth operation in ApsaraVideo VOD. vidAuth.setRegion("Access region"); // This parameter is deprecated in ApsaraVideo Player SDK V5.5.5.0 or later. If you use ApsaraVideo Player SDK V5.5.5.0 or later, the player automatically parses the region information. If you use ApsaraVideo Player SDK V5.5.5.0 or earlier, this parameter is required. Specify the ID of the region in which ApsaraVideo VOD is activated for this parameter. Default value: cn-shanghai. // vidAuth.setAuthTimeout(3600);// Optional. The validity period of the playback URL. Unit: seconds. If you have configured a validity period for signed URLs in the ApsaraVideo VOD console, the configuration of this parameter takes precedence. If you leave this parameter empty, the default value is used. The validity period must be longer than the actual duration of the video. Otherwise, the playback URL expires before the playback is complete. aliPlayer.setDataSource(vidAuth);
VidStsを使用して、Alibaba Cloud独自の暗号化 (HLSおよびMP4形式) を使用して暗号化されたオンデマンドビデオを再生する
Alibaba Cloud独自の暗号化以外の方法で暗号化されたストリームが存在する場合、または暗号化されていないストリームが存在する場合、暗号化方法をAliyunVodEncryptionに設定して、Alibaba Cloud独自の暗号化を使用して暗号化されたビデオをフィルタリングできます。
VidSts vidSts = new VidSts(); VidPlayerConfigGen vidPlayerConfigGen = new VidPlayerConfigGen(); vidPlayerConfigGen.setEncryptType(VidPlayerConfigGen.EncryptType.AliyunVodEncryption);// Optional. If you set the encryption method to AliyunVodEncryption, only videos that are encrypted by using Alibaba Cloud proprietary cryptography are returned. vidSts.setPlayConfig(vidPlayerConfigGen); vidSts.setVid("Vid"); // Required. The video ID. vidSts.setAccessKeyId("<yourAccessKeyId>"); // Required. The AccessKey ID that is generated when the temporary STS token is issued. To generate the AccessKey ID, call the AssumeRole operation in STS. vidSts.setAccessKeySecret("<yourAccessKeySecret>");// Required. The AccessKey secret that is issued together with the STS token. To generate the AccessKey secret, call the AssumeRole operation in STS. vidSts.setSecurityToken("<yourSecurityToken>");// Required. The security token. To generate an STS token, call the AssumeRole operation in STS. vidSts.setRegion("Access region"); // Required. The ID of the region in which ApsaraVideo VOD is activated. Default value: cn-shanghai. // vidAuth.setAuthTimeout(3600);// The validity period of the playback URL. Unit: seconds. If you have configured a validity period for signed URLs in the ApsaraVideo VOD console, the configuration of this parameter takes precedence. If you leave this parameter empty, the default value is used. The validity period must be longer than the actual duration of the video. Otherwise, the playback URL expires before the playback is complete. aliPlayer.setDataSource(vidSts);
LiveStsSourceを使用して、Alibaba Cloud独自の暗号化 (HLS形式) を使用して暗号化されたライブストリームを再生する
LiveStsSourceを使用して、Alibaba Cloud独自の暗号化を使用して暗号化されたHLSライブストリームを再生する場合、ストリーミングURLとSTSトークンを指定し、暗号化方法をAliEncryptionに設定する必要があります。 サンプルコード:
再生ソースを設定します。
AVPLiveStsSourceを再生ソースとして設定します。
// Create the AVPLiveStsSource playback source. You must set EncryptionType to AliEncryption. LiveSts liveSts = new LiveSts(); liveSts.setUrl("<your live stream url>");// Required. The URL of the HLS live stream that is encrypted by using Alibaba Cloud proprietary cryptography. liveSts.setAccessKeyId("<your AccessKey ID>");// Required. The AccessKey ID that is generated when the temporary STS token is issued. To generate the AccessKey ID, call the AssumeRole operation in STS. liveSts.setAccessKeySecret("<your AccessKey secret>");// Required. The AccessKey secret that is generated when the temporary STS token is issued. To generate the AccessKey secret, call the AssumeRole operation in STS. liveSts.setSecurityToken("<your STS token>");// Required. The STS token. To generate an STS token, call the AssumeRole operation in STS. liveSts.setDomain("<your Domain>");// Required. The streaming domain. liveSts.setApp("<your App Name>");// Required. The name of the application to which the live stream belongs. liveSts.setStream("<your Stream Name>");// Required. The name of the live stream. liveSts.setEncryptionType(LiveSts.LiveEncryptionType.AliEncryption);// Required. Set the encryption method to AliEncryption. liveSts.setRegion("<region of your video>");// Required. The region in which ApsaraVideo VOD is activated, such as cn-shanghai. // Configure the playback source. aliPlayer.setDataSource(liveSts); // Prepare for playback. aliPlayer.prepare();
STSトークンが有効かどうかを確認します。
暗号鍵は、暗号化ライブストリームの再生中に変化してもよい。 プレイヤーはSTSから最新のキーを取得するリクエストを送信します。 STSトークンが有効かどうかを確認する必要があります。 トークンが無効な場合、暗号化されたライブストリームの再生が影響を受けます。
mAliyunVodPlayer.setOnVerifyTimeExpireCallback(new AliPlayer.OnVerifyTimeExpireCallback() { @Override public AliPlayer.Status onVerifySts(StsInfo info) { if (The token can be used){ return IPlayer.StsStatus.Valid; } if(A valid STS token can be obtained){ Obtain STS();// This operation can be synchronously or asynchronously performed. return IPlayer.StsStatus.Pending; } // If the token is invalid and the latest STS token cannot be obtained, we recommend that you stop the playback to prevent screen flickers. mAliyunVodPlayer.stop(); return IPlayer.StsStatus.Invalid; } @Override public AliPlayer.Status onVerifyAuth(VidAuth auth) { return AliPlayer.Status.Valid; } });
説明有効なSTSトークンを取得したら、
updateLiveStsInfo
を呼び出してSTSトークンを更新します。 トークンの取得に失敗した場合は、再生を停止することを推奨します。 STSトークンを更新しない場合、プレーヤーは期限切れのSTSトークンを使用して暗号化キーを取得します。 STSトークンが無効になると、画面が点滅したり、再生が失敗したりすることがあります。mAliyunVodPlayer.updateStsInfo(stsInfo);
ApsaraVideo Player SDK for iOSの使用
制限事項
Alibaba Cloud独自の暗号化を使用して暗号化されたHLSおよびMP4ビデオは、ApsaraVideo Playerを使用してのみ再生できます。
手順
ApsaraVideo Player SDK for iOSをアプリケーションに統合できます。 次のコンテンツでは、ApsaraVideo Player SDK for iOSを再生に使用する方法について説明し、サンプルコードを提供します。
ApsaraVideo Player SDK for iOSを統合します。
ApsaraVideo Player SDK For iOSを統合する方法の詳細については、「クイックインテグレーション」をご参照ください。
再生用のプレーヤーを作成します。
詳細については、「プレーヤーの作成」をご参照ください。 ステップ3: 再生ソースの設定で、次のいずれかの方法で再生ソースを設定します。
UrlSourceを使用して、Alibaba Cloud独自の暗号化 (MP4形式) を使用して暗号化されたオンデマンドビデオを再生する
説明UrlSourceを使用して、Alibaba Cloud独自の暗号化を使用して暗号化されたMP4ビデオを再生できます。 この方法は、iOS V6.8.0以降のApasaVideo Player SDKでのみサポートされています。
UrlSourceを使用してAlibaba Cloud独自の暗号化を使用して暗号化されたMP4ビデオを再生するには、GetPlayInfo操作を呼び出して再生URLを取得し、
etavirp_nuyila=1
をURLの末尾に追加します。 次に、再生のためにURLをプレーヤーに渡します。 追加のパラメーターを設定する必要はありません。サンプルURL:
https://example.aliyundoc.com/test.mp4?etavirp_nuyila=1
AVPUrlSource *urlSource = [[AVPUrlSource alloc] urlWithString:url]; // Required. The playback URL. You can call the GetPlayInfo operation to obtain the playback URL. Add etavirp_nuyila=1 to the end of the playback URL before you pass the URL to the player for playback. Sample URL: https://example.aliyundoc.com/test.mp4?etavirp_nuyila=1. [self.player setUrlSource:urlSource];
VidAuthを使用して、Alibaba Cloud独自の暗号化 (HLSおよびMP4形式) を使用して暗号化されたオンデマンドビデオを再生
Alibaba Cloud独自の暗号化以外の方法で暗号化されたストリームが存在する場合、または暗号化されていないストリームが存在する場合、暗号化方法をAliyunVodEncryptionに設定して、Alibaba Cloud独自の暗号化を使用して暗号化されたビデオをフィルタリングできます。
AVPVidAuthSource *authSource = [[AVPVidAuthSource alloc] init]; authSource.vid = @"Vid"; // Required. The video ID. authSource.playAuth = @"<yourPlayAuth>"; // Required. The playback credential. To obtain a playback credential, call the GetVideoPlayAuth operation in ApsaraVideo VOD. authSource.region = @"Access region"; // This parameter is deprecated in ApsaraVideo Player SDK V5.5.5.0 or later. If you use ApsaraVideo Player SDK V5.5.5.0 or later, the player automatically parses the region information. If you use ApsaraVideo Player SDK V5.5.5.0 or earlier, this parameter is required. Specify the ID of the region in which ApsaraVideo VOD is activated for this parameter. Default value: cn-shanghai. // authSource.authTimeout=3600; // Optional. The validity period of the playback URL. Unit: seconds. If you have configured a validity period for signed URLs in the ApsaraVideo VOD console, the configuration of this parameter takes precedence. If you leave this parameter empty, the default value is used. The validity period must be longer than the actual duration of the video. Otherwise, the playback URL expires before the playback is complete. // Build the config parameter based on VidPlayerConfigGenerator. VidPlayerConfigGenerator* config = [[VidPlayerConfigGenerator alloc]init]; [config addVidPlayerConfigByStringValue:@"EncryptType" value:@"AliyunVodEncryption"]; // Optional. If you set the encryption method to AliyunVodEncryption, only videos that are encrypted by using Alibaba Cloud proprietary cryptography are returned. authSource.playConfig = [config generatePlayerConfig]; [self.player setAuthSource:authSource];
VidStsを使用して、Alibaba Cloud独自の暗号化 (HLSおよびMP4形式) を使用して暗号化されたオンデマンドビデオを再生する
Alibaba Cloud独自の暗号化以外の方法で暗号化されたストリームが存在する場合、または暗号化されていないストリームが存在する場合、Alibaba Cloud独自の暗号化を使用して暗号化されたビデオをフィルタリングするには、暗号化方法をAliyunVodEncryptionに設定します。
AVPVidStsSource *source = [[AVPVidStsSource alloc] init]; source.region = @"Access region"; // Required. The region in which ApsaraVideo VOD is activated. Default value: cn-shanghai. source.vid = @"Vid"; // Required. The ID of the video. source.securityToken = @"<yourSecurityToken>"; // Required. The STS token. To generate an STS token, call the AssumeRole operation in STS. source.accessKeySecret = @"<yourAccessKeySecret>"; // Required. The AccessKey secret that is generated when the temporary STS token is issued. To generate the AccessKey secret, call the AssumeRole operation in STS. source.accessKeyId = @"<yourAccessKeyId>"; // Required. The AccessKey ID that is generated when the temporary STS token is issued. To generate the AccessKey ID, call the AssumeRole operation in STS. // source.authTimeout = 3600; // Optional. The validity period of the playback URL. Unit: seconds. If you have configured a validity period for signed URLs in the ApsaraVideo VOD console, the configuration of this parameter takes precedence. If you leave this parameter empty, the default value is used. The validity period must be longer than the actual duration of the video. Otherwise, the playback URL expires before the playback is complete. // Build the config parameter based on VidPlayerConfigGenerator. VidPlayerConfigGenerator* config = [[VidPlayerConfigGenerator alloc]init]; [config addVidPlayerConfigByStringValue:@"EncryptType" value:@"AliyunVodEncryption"]; // Optional. If you set the encryption method to AliyunVodEncryption, only videos that are encrypted by using Alibaba Cloud proprietary cryptography are returned. source.playConfig = [config generatePlayerConfig]; // Configure the playback source. [self.player setStsSource:source];
LiveStsSourceを使用して、Alibaba Cloud独自の暗号化 (HLS形式) を使用して暗号化されたライブストリームを再生する
LiveStsSourceを使用してAlibaba Cloud独自の暗号化を使用して暗号化されたライブストリームを再生する場合、ストリーミングURLとSTSトークンを指定し、暗号化方法をENCRYPTION_TYPE_ALIVODENCRYPTIONに設定する必要があります。 サンプルコード:
再生ソースを設定します。
AVPLiveStsSourceを再生ソースとして設定します。
// Create the AVPLiveStsSource playback source. You must set encryptionType to ENCRYPTION_TYPE_ALIVODENCRYPTION. AVPLiveStsSource *liveStsSource = [[AVPLiveStsSource alloc] initWithUrl:@"Streaming URL" accessKeyId:@"Temporary AccessKey ID" accessKeySecret:@""Temporary AccessKey secret" securityToken:@"Security token" region:@"Region name" domain:@"Streaming domain" app:@"Application name" stream:@"Stream name" encryptionType:ENCRYPTION_TYPE_ALIVODENCRYPTION];// Required. Set the encryption method to ENCRYPTION_TYPE_ALIVODENCRYPTION. // Configure the playback source. [self.aliPlayer setLiveStsSource:liveStsSource]; ...... // Prepare for playback. [self.aliPlayer prepare];
STSトークンが有効かどうかを確認します。
暗号鍵は、暗号化ライブストリームの再生中に変化してもよい。 プレイヤーはSTSから最新のキーを取得するリクエストを送信します。 STSトークンが有効かどうかを確認する必要があります。 トークンが無効な場合、暗号化されたライブストリームの再生が影響を受けます。
__weak typeof(self) weakSelf = self; [self.aliPlayer setVerifyStsCallback:^AVPStsStatus(AVPStsInfo info) { if (The token can be used) { return Valid; } if(A valid STS token can be obtained){ Obtain STS();// This operation can be synchronously or asynchronously performed. return Pending; } [weakSelf.aliPlayer stop]; return Invalid; }];
説明有効なSTSトークンを取得したら、
updateLiveStsInfo
を呼び出してSTSトークンを更新します。 トークンの取得に失敗した場合は、再生を停止することを推奨します。 STSトークンを更新しない場合、プレーヤーは期限切れのSTSトークンを使用して暗号化キーを取得します。 STSトークンが無効になると、画面が点滅したり、再生が失敗したりすることがあります。[self.aliPlayer updateLiveStsInfo:self.liveStsSource.accessKeyId accKey:self.liveStsSource.accessKeySecret token:self.liveStsSource.securityToken region:self.liveStsSource.region];
HLS暗号化
概要
HLS暗号化は、HLSで指定されている一般的な暗号化ソリューションをサポートします。 HLS暗号化はAES-128を使用してビデオコンテンツを暗号化し、すべてのHLS互換プレーヤーをサポートします。 自己開発のプレーヤーまたはオープンソースのプレーヤーを使用して、HLS暗号化ビデオを再生できます。 Alibaba Cloud独自の暗号化と比較して、HLS暗号化は柔軟性がありますが、使用が難しく、安全性が低くなります。
HLS暗号化のメカニズムと制限の詳細については、「HLS encryption」をご参照ください。
HLS暗号化の設定
HLS暗号化の設定方法の詳細については、「HLS encryption」をご参照ください。
ApsaraVideo Player SDK for Webの使用
制限事項
HLS暗号化は、すべてのHLS互換プレーヤーをサポートします。 自己開発のプレーヤーまたはオープンソースのプレーヤーを使用して、HLS暗号化ビデオを再生できます。 次のコンテンツでは、ApsaraVideo PlayerでHLS暗号化ビデオを再生する方法について説明します。 ApsaraVideo Playerは、ユーザートークンの送信をサポートしています。 Alibaba Cloud CDNは、の復号化URIを動的に変更します。m3u8ファイル。 復号化URIは、ユーザトークンを含む。 その後、ユーザートークンを確認できます。
手順
ApsaraVideo Player SDK for Webをwebページに埋め込んで、Alibaba Cloud独自の暗号化を使用して暗号化されたビデオを再生できます。
ApsaraVideo Player SDK For Webをwebページに埋め込む方法の詳細については、「クイックインテグレーション」をご参照ください。
ApsaraVideo Player SDK for Webを使用する前に、ブラウザがHLS暗号化ビデオの再生をサポートしていることを確認してください。 以下の項目では、ApsaraVideo Playerの互換性について説明します。
HTML5プレーヤーは、モバイルデバイスやPCのブラウザで使用できます。 サポートされているブラウザの詳細については、「ブラウザでサポートされているHTML5プレーヤーの機能」をご参照ください。
フラッシュプレーヤーは、PC上のブラウザでのみ使用できます。 詳細については、「Flash playerでサポートされているブラウザ」をご参照ください。
2.
VidAuthを使用したHLS暗号化オンデマンドビデオの再生
HLS暗号化以外の方法で暗号化されたストリームが存在する場合、または暗号化されていないストリームが存在する場合、HLS暗号化を使用して暗号化されたビデオをフィルタリングするには、暗号化方法をHLSEncryptionに設定します。 サンプルコード:
let player = new Aliplayer({
id:'J_prismPlayer',
vid:'<your video ID>', // Required. The ID of the audio or video file. Example: 1e067a2831b641db90d570b6480f****.
playauth:'<your PlayAuth>', // Required. The playback credential.
playConfig: { // Optional.
MtsHlsUriToken: '', // Optional. You can pass this parameter if you want to verify MtsHlsUriToken.
EncryptType: 'HLSEncryption', // Optional. If you set the encryption type to HLSEncryption, only videos that are encrypted by using HLS encryption are returned.
},
});
VidStsを使用したHLS暗号化オンデマンドビデオの再生
HLS暗号化以外の方法で暗号化されたストリームが存在する場合、または暗号化されていないストリームが存在する場合、HLS暗号化を使用して暗号化されたビデオをフィルタリングするには、暗号化方法をHLSEncryptionに設定します。 サンプルコード:
let player = new Aliplayer({
id: 'J_prismPlayer',
vid : '<your video ID>', // Required. After you upload an audio or video file, you can log on to the ApsaraVideo VOD console and choose Media Files > Audio/Video to view the ID of the audio or video file. Alternatively, you can call the SearchMedia operation provided by the ApsaraVideo VOD SDK to obtain the ID. Example: 1e067a2831b641db90d570b6480f****.
accessKeyId: '<your AccessKey ID>', // Required. The AccessKey ID is returned when the temporary STS token is generated.
securityToken: '<your STS token>', // Required. The STS token. To generate an STS token, call the AssumeRole operation in STS.
accessKeySecret: '<your AccessKey Secret>', // Required. The AccessKey secret is returned when the temporary STS token is generated.
region: '<region of your video>', // Required. The ID of the region in which the media asset resides, such as cn-shanghai, eu-central-1, or ap-southeast-1.
playConfig: { // Optional.
MtsHlsUriToken: '', // Optional. You can pass this parameter if you want to verify MtsHlsUriToken.
EncryptType: 'HLSEncryption', // Optional. If you set the encryption type to HLSEncryption, only videos that are encrypted by using HLS encryption are returned.
},
};
UrlSourceを使用したHLS暗号化ライブストリームの再生
暗号化されていないビデオの再生と同様に、ストリーミングURLを使用してHLSを使用して暗号化されたライブストリームを再生する場合、追加のパラメーターを設定する必要はありません。
let player = new Aliplayer({
id:'J_prismPlayer',
source: '<your play URL>' // The streaming URL can be a third-party streaming URL or a streaming URL that is generated in ApsaraVideo Live.
isLive: true, // Specifies whether to play live streams.
});
ApsaraVideo Player SDK for Androidを使用する
制限事項
HLS暗号化は、すべてのHLS互換プレーヤーをサポートします。 自己開発のプレーヤーまたはオープンソースのプレーヤーを使用して、HLS暗号化ビデオを再生できます。 次のコンテンツでは、ApsaraVideo PlayerでHLS暗号化ビデオを再生する方法について説明します。 ApsaraVideo Playerは、ユーザートークンの送信をサポートしています。 Alibaba Cloud CDNは、の復号化URIを動的に変更します。m3u8ファイル。 復号化URIは、ユーザトークンを含む。 その後、ユーザートークンを確認できます。
手順
ApsaraVideo Player SDK for Androidをアプリケーションに統合できます。 次のコンテンツでは、ApsaraVideo Player SDK for Androidを再生に使用する方法について説明し、サンプルコードを提供します。
Android用ApsaraVideo Player SDKを統合します。
ApsaraVideo Player SDK For Androidを統合する方法の詳細については、「クイックインテグレーション」をご参照ください。
再生用のプレーヤーを作成します。
詳細については、「プレーヤーの作成」をご参照ください。 ステップ3: 再生ソースの設定で、次のいずれかの方法で再生ソースを設定します。
VidAuthを使用したHLS暗号化オンデマンドビデオの再生
HLS暗号化以外の方法で暗号化されたストリームが存在する場合、または暗号化されていないストリームが存在する場合、HLS暗号化を使用して暗号化されたビデオをフィルタリングするには、暗号化方法をHLSEncryptionに設定します。 サンプルコード:
VidAuth vidAuth = new VidAuth(); VidPlayerConfigGen playerConfig = new VidPlayerConfigGen(); playerConfig.setEncryptType(VidPlayerConfigGen.EncryptType.HLSEncryption);// Optional. If you set the encryption method to HLSEncryption, only videos that are encrypted by using HLS encryption are returned. playerConfig.setMtsHlsUriToken("User token");// Optional. Specify this parameter if you want to verify the user token. vidAuth.setPlayConfig(playerConfig); vidAuth.setVid("Video ID");// Required. The video ID. vidAuth.setPlayAuth("Playback credential"); // Required. The playback credential. To obtain the playback credential, call the GetVideoPlayAuth operation in ApsaraVideo VOD. vidAuth.setRegion("Access region"); // This parameter is deprecated in ApsaraVideo Player SDK V5.5.5.0 or later. If you use ApsaraVideo Player SDK V5.5.5.0 or later, the player automatically parses the region information. If you use ApsaraVideo Player SDK V5.5.5.0 or earlier, this parameter is required. Specify the ID of the region in which ApsaraVideo VOD is activated for this parameter. Default value: cn-shanghai. // vidAuth.setAuthTimeout(3600);// Optional. The validity period of the playback URL. Unit: seconds. If you have configured a validity period for signed URLs in the ApsaraVideo VOD console, the configuration of this parameter takes precedence. If you leave this parameter empty, the default value is used. The validity period must be longer than the actual duration of the video. Otherwise, the playback URL expires before the playback is complete. aliPlayer.setDataSource(vidAuth);
VidStsを使用したHLS暗号化オンデマンドビデオの再生
HLS暗号化以外の方法で暗号化されたストリームが存在する場合、または暗号化されていないストリームが存在する場合、HLS暗号化を使用して暗号化されたビデオをフィルタリングするには、暗号化方法をHLSEncryptionに設定します。 サンプルコード:
VidSts vidSts = new VidSts(); VidPlayerConfigGen playerConfig = new VidPlayerConfigGen(); VidPlayerConfigGen.setEncryptType(VidPlayerConfigGen.EncryptType.HLSEncryption);// Optional. If you set the encryption method to HLSEncryption, only videos that are encrypted by using HLS encryption are returned. playerConfig.setMtsHlsUriToken("User token");// Optional. Specify this parameter if you want to verify the user token. vidSts.setPlayConfig(playerConfig); vidSts.setVid("Vid"); // Required. The video ID. vidSts.setAccessKeyId("<yourAccessKeyId>"); // Required. The AccessKey ID that is generated when the temporary STS token is issued. To generate the AccessKey ID, call the AssumeRole operation in STS. vidSts.setAccessKeySecret("<yourAccessKeySecret>");// Required. The AccessKey secret that is issued together with the STS token. To generate the AccessKey secret, call the AssumeRole operation in STS. vidSts.setSecurityToken("<yourSecurityToken>");// Required. The security token. To generate an STS token, call the AssumeRole operation in STS. vidSts.setRegion("Access region"); // Required. The ID of the region in which ApsaraVideo VOD is activated. Default value: cn-shanghai. // vidAuth.setAuthTimeout(3600);// The validity period of the playback URL. Unit: seconds. If you have configured a validity period for signed URLs in the ApsaraVideo VOD console, the configuration of this parameter takes precedence. If you leave this parameter empty, the default value is used. The validity period must be longer than the actual duration of the video. Otherwise, the playback URL expires before the playback is complete. aliPlayer.setDataSource(vidSts);
UrlSourceを使用したHLS暗号化ライブストリームの再生
暗号化されていないビデオの再生と同様に、ストリーミングURLを使用してHLSを使用して暗号化されたライブストリームを再生する場合、追加のパラメーターを設定する必要はありません。
UrlSource urlSource = new UrlSource(); urlSource.setUri("Streaming URL");// Required. The streaming URL that is encrypted by using HLS. aliPlayer.setDataSource(urlSource);
ApsaraVideo Player SDK for iOSの使用
制限事項
HLS暗号化は、すべてのHLS互換プレーヤーをサポートします。 自己開発のプレーヤーまたはオープンソースのプレーヤーを使用して、HLS暗号化ビデオを再生できます。 次のコンテンツでは、ApsaraVideo PlayerでHLS暗号化ビデオを再生する方法について説明します。 ApsaraVideo Playerは、ユーザートークンの送信をサポートしています。 Alibaba Cloud CDNは、の復号化URIを動的に変更します。m3u8ファイル。 復号化URIは、ユーザトークンを含みます。 その後、ユーザートークンを確認できます。
手順
ApsaraVideo Player SDK for iOSをアプリケーションに統合できます。 次のコンテンツでは、ApsaraVideo Player SDK for iOSを再生に使用する方法について説明し、サンプルコードを提供します。
ApsaraVideo Player SDK for iOSを統合します。
ApsaraVideo Player SDK For iOSを統合する方法の詳細については、「クイックインテグレーション」をご参照ください。
再生用のプレーヤーを作成します。
詳細については、「プレーヤーの作成」をご参照ください。 ステップ3: 再生ソースの設定で、次のいずれかの方法で再生ソースを設定します。
VidAuthを使用したHLS暗号化オンデマンドビデオの再生
HLS暗号化以外の方法で暗号化されたストリームが存在する場合、または暗号化されていないストリームが存在する場合、HLS暗号化を使用して暗号化されたビデオをフィルタリングするには、暗号化方法をHLSEncryptionに設定します。 サンプルコード:
AVPVidAuthSource *authSource = [[AVPVidAuthSource alloc] init]; authSource.vid = @"Vid"; // Required. The video ID. authSource.playAuth = @"<yourPlayAuth>"; // Required. The playback credential. To obtain a playback credential, call the GetVideoPlayAuth operation in ApsaraVideo VOD. authSource.region = @"Access region"; // This parameter is deprecated in ApsaraVideo Player SDK V5.5.5.0 or later. If you use ApsaraVideo Player SDK V5.5.5.0 or later, the player automatically parses the region information. If you use ApsaraVideo Player SDK V5.5.5.0 or earlier, this parameter is required. Specify the ID of the region in which ApsaraVideo VOD is activated for this parameter. Default value: cn-shanghai. // authSource.authTimeout=3600; // Optional. The validity period of the playback URL. Unit: seconds. If you have configured a validity period for signed URLs in the ApsaraVideo VOD console, the configuration of this parameter takes precedence. If you leave this parameter empty, the default value is used. The validity period must be longer than the actual duration of the video. Otherwise, the playback URL expires before the playback is complete. // Build the config parameter based on VidPlayerConfigGenerator. VidPlayerConfigGenerator* config = [[VidPlayerConfigGenerator alloc]init]; [config addVidPlayerConfigByStringValue:@"EncryptType" value:@"HLSEncryption"]; // Optional. If you set the encryption method to HLSEncryption, only videos that are encrypted by using HLS encryption are returned. [config setHlsUriToken: @"xxxxxxx"]; // Optional. You can pass this parameter if you want to verify MtsHlsUriToken. source.playConfig = [config generatePlayerConfig]; // Configure the playback source. [self.player setAuthSource:authSource];
VidStsを使用したHLS暗号化オンデマンドビデオの再生
HLS暗号化以外の方法で暗号化されたストリームが存在する場合、または暗号化されていないストリームが存在する場合、HLS暗号化を使用して暗号化されたビデオをフィルタリングするには、暗号化方法をHLSEncryptionに設定します。 サンプルコード:
AVPVidStsSource *source = [[AVPVidStsSource alloc] init]; source.vid = @"Vid"; // Required. The ID of the video. source.region = @"Access region"; // Required. The region in which ApsaraVideo VOD is activated. Default value: cn-shanghai. source.securityToken = @"<yourSecurityToken>"; // Required. The STS token. To generate an STS token, call the AssumeRole operation in STS. source.accessKeySecret = @"<yourAccessKeySecret>"; // Required. The AccessKey secret that is generated when the temporary STS token is issued. To generate the AccessKey secret, call the AssumeRole operation in STS. source.accessKeyId = @"<yourAccessKeyId>"; // Required. The AccessKey ID that is generated when the temporary STS token is issued. To generate the AccessKey ID, call the AssumeRole operation in STS. // source.authTimeout = 3600; // Optional. The validity period of the playback URL. Unit: seconds. If you have configured a validity period for signed URLs in the ApsaraVideo VOD console, the configuration of this parameter takes precedence. If you leave this parameter empty, the default value is used. The validity period must be longer than the actual duration of the video. Otherwise, the playback URL expires before the playback is complete. // Build the config parameter based on VidPlayerConfigGenerator. VidPlayerConfigGenerator* config = [[VidPlayerConfigGenerator alloc]init]; [config addVidPlayerConfigByStringValue:@"EncryptType" value:@"HLSEncryption"]; // Optional. If you set the encryption method to HLSEncryption, only videos that are encrypted by using HLS encryption are returned. [config setHlsUriToken: @"xxxxxxx"]; // Optional. You can pass this parameter if you want to verify MtsHlsUriToken. source.playConfig = [config generatePlayerConfig]; // Configure the playback source. [self.player setStsSource:source];
UrlSourceを使用したHLS暗号化ライブストリームの再生
暗号化されていないビデオの再生と同様に、ストリーミングURLを使用してHLSを使用して暗号化されたライブストリームを再生する場合、追加のパラメーターを設定する必要はありません。
AVPUrlSource *urlSource = [[AVPUrlSource alloc] urlWithString:url]; // Required. The HLS-encrypted streaming URL. [self.player setUrlSource:urlSource];
よくある質問
HLS暗号化および対応するソリューションに関する一般的な質問の詳細については、「HLS暗号化に関するよくある質問」をご参照ください。
DRM暗号化
概要
ApsaraVideo VODは、業界で一般的に使用されているDRM暗号化テクノロジーをサポートしています。 ApsaraVideo VODコンソールでDRM証明書を追加および管理し、DRM暗号化を有効にして、著作権で保護されたビデオコンテンツのセキュリティを確保できます。 WidevineおよびFairplay DRM暗号化がサポートされています。
DRM暗号化の利点とアーキテクチャの詳細については、「概要」をご参照ください。
DRM暗号化の設定
この機能は、ApsaraVideo VODコンソールでのみ有効にできます。 詳細については、「DRM暗号化の有効化」をご参照ください。
ApsaraVideo Player SDK for Webの使用
制限事項
DRM暗号化ビデオの再生には、ApsaraVideo Playerのみを使用できます。
手順
ApsaraVideo Player SDK for Webをwebページに埋め込んで、Alibaba Cloud独自の暗号化を使用して暗号化されたビデオを再生できます。 サンプルコード:
ApsaraVideo Player SDK for Webを使用する前に、ブラウザがDRM暗号化ビデオの再生をサポートしていることを確認してください。 以下の項目では、ApsaraVideo Playerの互換性について説明します。
VidStsを使用してDRM暗号化されたオンデマンドビデオを再生する
VidStsを使用してDRM暗号化されたオンデマンドビデオを再生する場合は、isDrmパラメーターをtrueに設定する必要があります。 暗号化されていないビデオを再生する場合、この設定はオプションです。 isDrm: trueは、DRM暗号化が有効になっていることを意味します。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no" />
<title>Demo for the playback of a DRM-encrypted on-demand video</title>
<link rel="stylesheet" href="https://g.alicdn.com/apsara-media-box/imp-web-player/2.16.3/skins/default/aliplayer-min.css" />
<script charset="utf-8" type="text/javascript" src="https://g.alicdn.com/apsara-media-box/imp-web-player/2.16.3/aliplayer-min.js"></script>
</head>
<body>
<div class="prism-player" id="J_prismPlayer"></div>
<script>
var player = new Aliplayer({
id: 'J_prismPlayer',
width: '100%',
isDrm: true,
vid : '<your video ID>',// Required. You can log on to the ApsaraVideo VOD console and choose Media Files > Audio/Video to obtain the video ID. Example: 1e067a2831b641db90d570b6480f****.
accessKeyId: '<your AccessKey ID>',// Required. The AccessKey ID of the temporary AccessKey pair. To obtain the AccessKey ID, call the AssumeRole operation in STS.
securityToken: '<your STS token>',// Required. The STS token. To generate an STS token, call the AssumeRole operation in STS.
accessKeySecret: '<your AccessKey secret>',// Required. The AccessKey secret that is generated when the temporary STS token is issued. To generate the AccessKey secret, call the AssumeRole operation in STS.
region: '<region of your video>', // Required. The ID of the region in which the media asset is stored, such as cn-shanghai, eu-central-1, or ap-southeast-1.
certId: '<your certificate ID>', // This parameter is required for playback on Apple devices. This parameter is used to request an Apple certificate. You can obtain the value of this parameter in the ApsaraVideo VOD console or the ApsaraVideo Live console based on how DRM encryption is performed.
// authTimeout: 7200, // The validity period of the playback URL. Unit: seconds. If you have configured a validity period for signed URLs in the ApsaraVideo VOD console, the configuration of this parameter takes precedence. If you leave this parameter empty, the default value 7200 is used. The validity period must be longer than the actual duration of the video. Otherwise, the playback URL expires before the playback is complete.
},function(player){
console.log('The player is created.')
});
</script>
</body>
</html>
LiveStsSourceを使用してDRM暗号化されたライブストリームを再生する
LiveStsSourceを使用してDRM暗号化されたライブストリームを再生する場合は、ストリーミングURLとSTSトークンを指定する必要があります。 詳細については、「ロールを作成し、STSを使用してロールに一時的なアクセス許可を付与する」をご参照ください。 サンプルコード:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no" />
<title>Demo for playing a DRM-encrypted live stream</title>
<link rel="stylesheet" href="https://g.alicdn.com/apsara-media-box/imp-web-player/2.16.3/skins/default/aliplayer-min.css" />
<script charset="utf-8" type="text/javascript" src="https://g.alicdn.com/apsara-media-box/imp-web-player/2.16.3/aliplayer-min.js"></script>
</head>
<body>
<div class="prism-player" id="J_prismPlayer"></div>
<script>
var player = new Aliplayer({
id: 'J_prismPlayer',
width: '100%',
isLive: true, // Set this parameter to true.
isDrm: true,
source: '<your live stream url>',// Required. The streaming URL of the live stream that is encrypted by DRM.
accessKeyId: '<your AccessKey ID>',// Required. The AccessKey ID of the temporary AccessKey pair. To obtain the AccessKey ID, call the AssumeRole operation in STS.
securityToken: '<your STS token>',// Required. The STS token. To generate an STS token, call the AssumeRole operation in STS.
accessKeySecret: '<your AccessKey secret>',// Required. The AccessKey ID that is generated when the temporary STS token is issued. To generate the AccessKey ID, call the AssumeRole operation in STS.
region: '<region of your video>', // Required. The ID of the region in which the media asset is stored, such as cn-shanghai, eu-central-1, or ap-southeast-1.
certId: '<your certificate ID>', // This parameter is required for playback on Apple devices. This parameter is used to request an Apple certificate. You can obtain the certificate ID from the ApsaraVideo VOD or ApsaraVideo Live console.
},function(player){
console.log('The player is created.')
});
</script>
</body>
</html>
ApsaraVideo Player SDK for Androidの使用
制限事項
DRM暗号化ビデオの再生には、ApsaraVideo Playerのみを使用できます。
手順
ApsaraVideo Player SDK for Androidをアプリケーションに統合できます。 次のコンテンツでは、ApsaraVideo Player SDK for Androidを再生に使用する方法について説明し、サンプルコードを提供します。
Android用ApsaraVideo Player SDKを統合します。
ApsaraVideo Player SDK For Androidを統合する方法の詳細については、「クイックインテグレーション」をご参照ください。
再生用のプレーヤーを作成します。
詳細については、「プレーヤーの作成」をご参照ください。 ステップ3: 再生ソースの設定で、次のいずれかの方法で再生ソースを設定します。
説明ApsaraVideo Player for Androidを使用する場合、高いセキュリティレベルでビデオを再生するにはSurfaceViewを使用することを推奨します。
VidStsを使用してDRM暗号化されたオンデマンドビデオを再生する
暗号化されていないビデオの再生と同様に、VidStsを使用してDRMを使用して暗号化されたオンデマンドビデオを再生する場合、追加のパラメーターを設定する必要はありません。
VidSts vidSts = new VidSts(); vidSts.setVid("Vid"); // Required. The video ID. vidSts.setAccessKeyId("<yourAccessKeyId>"); // Required. The AccessKey ID that is generated when the temporary STS token is issued. To generate the AccessKey ID, call the AssumeRole operation in STS. vidSts.setAccessKeySecret("<yourAccessKeySecret>");// Required. The AccessKey secret that is issued together with the STS token. To generate the AccessKey secret, call the AssumeRole operation in STS. vidSts.setSecurityToken("<yourSecurityToken>");// Required. The security token. To generate an STS token, call the AssumeRole operation in STS. vidSts.setRegion("Access region"); // Required. The ID of the region in which ApsaraVideo VOD is activated. Default value: cn-shanghai. // vidAuth.setAuthTimeout(3600);// The validity period of the playback URL. Unit: seconds. If you have configured a validity period for signed URLs in the ApsaraVideo VOD console, the configuration of this parameter takes precedence. If you leave this parameter empty, the default value is used. The validity period must be longer than the actual duration of the video. Otherwise, the playback URL expires before the playback is complete. aliPlayer.setDataSource(vidSts);
LiveStsSourceを使用してDRM暗号化されたライブストリームを再生する
LiveStsSourceを使用してDRMを使用して暗号化されたライブストリームを再生する場合、ストリーミングURLとSTSトークンを指定し、暗号化方法をWideVine_FairPlayに設定する必要があります。 サンプルコード:
再生ソースを設定します。
AVPLiveStsSourceを再生ソースとして設定します。
// Create the AVPLiveStsSource playback source. You must set EncryptionType to WideVine_FairPlay. LiveSts liveSts = new LiveSts(); liveSts.setUrl("<your live stream url>");// Required. The HLS URL of the live stream that is encrypted by DRM. liveSts.setAccessKeyId("<your AccessKey ID>");// Required. The AccessKey ID that is generated when the temporary STS token is issued. To generate the AccessKey ID, call the AssumeRole operation in STS. liveSts.setAccessKeySecret("<your AccessKey secret>");// Required. The AccessKey secret that is generated when the temporary STS token is issued. To generate the AccessKey secret, call the AssumeRole operation in STS. liveSts.setSecurityToken("<your STS token>");// Required. The STS token. To generate an STS token, call the AssumeRole operation in STS. liveSts.setDomain("<your Domain>");// Required. The streaming domain. liveSts.setApp("<your App Name>");// Required. The name of the application to which the live stream belongs. liveSts.setStream("<your Stream Name>");// Required. The name of the live stream. liveSts.setEncryptionType(LiveSts.LiveEncryptionType.WideVine_FairPlay);// Required. Set the encryption method to WideVine_FairPlay. liveSts.setRegion("<region of your video>");// Required. The region in which ApsaraVideo VOD is activated, such as cn-shanghai. // Configure the playback source. aliPlayer.setDataSource(liveSts); // Prepare for playback. aliPlayer.prepare();
STSトークンが有効かどうかを確認します。
暗号鍵は、暗号化ライブストリームの再生中に変化してもよい。 プレイヤーはSTSから最新のキーを取得するリクエストを送信します。 STSトークンが有効かどうかを確認する必要があります。 トークンが無効な場合、暗号化されたライブストリームの再生が影響を受けます。
mAliyunVodPlayer.setOnVerifyTimeExpireCallback(new AliPlayer.OnVerifyTimeExpireCallback() { @Override public AliPlayer.Status onVerifySts(StsInfo info) { if (The token can be used){ return IPlayer.StsStatus.Valid; } if(A valid STS token can be obtained){ Obtain STS();// This operation can be synchronously or asynchronously performed. return IPlayer.StsStatus.Pending; } // If the token is invalid and the latest STS token cannot be obtained, we recommend that you stop the playback to prevent screen flickers. mAliyunVodPlayer.stop(); return IPlayer.StsStatus.Invalid; } @Override public AliPlayer.Status onVerifyAuth(VidAuth auth) { return AliPlayer.Status.Valid; } });
説明有効なSTSトークンを取得したら、
updateLiveStsInfo
を呼び出してSTSトークンを更新します。 トークンの取得に失敗した場合は、再生を停止することを推奨します。 STSトークンを更新しない場合、プレーヤーは期限切れのSTSトークンを使用して暗号化キーを取得します。 STSトークンが無効になると、画面が点滅したり、再生が失敗したりすることがあります。mAliyunVodPlayer.updateStsInfo(stsInfo);
ApsaraVideo Player SDK for iOSの使用
制限事項
DRM暗号化ビデオの再生には、ApsaraVideo Playerのみを使用できます。
手順
ApsaraVideo Player SDK for iOSをアプリケーションに統合できます。 次のコンテンツでは、ApsaraVideo Player SDK for iOSを再生に使用する方法について説明し、サンプルコードを提供します。
ApsaraVideo Player SDK for iOSを統合します。
ApsaraVideo Player SDK For iOSを統合する方法の詳細については、「クイックインテグレーション」をご参照ください。
再生用のプレーヤーを作成します。
詳細については、「プレーヤーの作成」をご参照ください。 ステップ3: 再生ソースの設定で、次のいずれかの方法で再生ソースを設定します。
説明ApsaraVideo Player SDK for iOSを使用して再生する場合は、
[self.player prepare]
を呼び出す前に、AliPlayerGlobalSettings
でsetFairPlayCertID
メソッドを呼び出して証明書のIDを指定する必要があります。 証明書IDを取得するには、次の手順を実行します。ApsaraVideo VODコンソールにログインします。 左側のナビゲーションウィンドウで、[構成管理]> [メディア処理]> [DRM証明書] を選択します。[AliPlayerGlobalSettings setFairPlayCertID:@"Certificate ID obtained in the ApsaraVideo VOD console"];
VidStsを使用してDRM暗号化されたオンデマンドビデオを再生する
暗号化されていないビデオの再生と同様に、VidStsを使用してDRMを使用して暗号化されたオンデマンドビデオを再生する場合、追加のパラメーターを設定する必要はありません。
AVPVidStsSource *source = [[AVPVidStsSource alloc] init]; source.region = @"Access region"; // Required. The region in which ApsaraVideo VOD is activated. Default value: cn-shanghai. source.vid = @"Vid"; // Required. The ID of the video. source.securityToken = @"<yourSecurityToken>"; // Required. The STS token. To generate an STS token, call the AssumeRole operation in STS. source.accessKeySecret = @"<yourAccessKeySecret>"; // Required. The AccessKey secret that is generated when the temporary STS token is issued. To generate the AccessKey secret, call the AssumeRole operation in STS. source.accessKeyId = @"<yourAccessKeyId>"; // Required. The AccessKey ID that is generated when the temporary STS token is issued. To generate the AccessKey ID, call the AssumeRole operation in STS. // source.authTimeout = 3600; // Optional. The validity period of the playback URL. Unit: seconds. If you have configured a validity period for signed URLs in the ApsaraVideo VOD console, the configuration of this parameter takes precedence. If you leave this parameter empty, the default value is used. The validity period must be longer than the actual duration of the video. Otherwise, the playback URL expires before the playback is complete. // Configure the playback source. [self.player setStsSource:source]
LiveStsSourceを使用してDRM暗号化されたライブストリームを再生する
LiveStsSourceを使用してDRMを使用して暗号化されたライブストリームを再生する場合、ストリーミングURLとSTSトークンを指定し、暗号化方法をENCRYPTION_TYPE_FAIRPLAYに設定する必要があります。 サンプルコード:
再生ソースを設定します。
AVPLiveStsSourceを再生ソースとして設定します。
// Create the AVPLiveStsSource playback source. You must set encryptionType to ENCRYPTION_TYPE_FAIRPLAY. AVPLiveStsSource *liveStsSource = [[AVPLiveStsSource alloc] initWithUrl:@"Streaming URL" accessKeyId:@"Temporary AccessKey ID" accessKeySecret:@""Temporary AccessKey secret" securityToken:@"Security token" region:@"Region name" domain:@"Streaming domain" app:@"Application name" stream:@"Stream name" encryptionType:ENCRYPTION_TYPE_FAIRPLAY];// Required. Set the encryption method to ENCRYPTION_TYPE_FAIRPLAY. // Configure the playback source. [self.aliPlayer setLiveStsSource:liveStsSource]; ...... // Prepare for playback. [self.aliPlayer prepare];
STSトークンが有効かどうかを確認します。
暗号鍵は、暗号化ライブストリームの再生中に変化してもよい。 プレイヤーはSTSから最新のキーを取得するリクエストを送信します。 STSトークンが有効かどうかを確認する必要があります。 トークンが無効な場合、暗号化されたライブストリームの再生が影響を受けます。
__weak typeof(self) weakSelf = self; [self.aliPlayer setVerifyStsCallback:^AVPStsStatus(AVPStsInfo info) { if (The token can be used) { return Valid; } if(A valid STS token can be obtained){ Obtain STS();// This operation can be synchronously or asynchronously performed. return Pending; } [weakSelf.aliPlayer stop]; return Invalid; }];
説明有効なSTSトークンを取得したら、
updateLiveStsInfo
を呼び出してSTSトークンを更新します。 トークンの取得に失敗した場合は、再生を停止することを推奨します。 STSトークンを更新しない場合、プレーヤーは期限切れのSTSトークンを使用して暗号化キーを取得します。 STSトークンが無効になると、画面が点滅したり、再生が失敗したりすることがあります。[self.aliPlayer updateLiveStsInfo:self.liveStsSource.accessKeyId accKey:self.liveStsSource.accessKeySecret token:self.liveStsSource.securityToken region:self.liveStsSource.region];