ApsaraVideo VOD での HLS 暗号化、Alibaba Cloud 独自暗号化、DRM 暗号化に関するよくある質問にお答えします。
HLS 暗号化
MtsHlsUriToken とは何か、またその取得方法は?
MtsHlsUriToken は、HLS 暗号化のユーザートークンです。M3U8 マニフェストには、復号化キーサーバーへの URL が含まれています。アクセスを制限するには、キーサーバーに認証レイヤーを追加し、認証ロジックによって生成された MtsHlsUriToken を復号化キー URL に追加して検証します。
暗号化を設定するには、MtsHlsUriToken を生成するトークン発行サービスをセットアップします (「HLS 暗号化」のステップ 1)。
生成されたキーの使用方法
GenerateKMSDataKey API は、暗号文キー (CiphertextBlob) とプレーンテキストキー (Plaintext) を返します。「SubmitTranscodeJobs」の「EncryptConfig:HLS 暗号化の設定を指定」の指定に従い、暗号文キーのみを ApsaraVideo VOD に渡します。
-
生成された暗号文キーとプレーンテキストキーの両方をキャッシュしてください。
-
サービスキーは作成後に削除または更新できません。暗号化キーの生成にのみ使用されます。
復号サービスへのトークンの渡し方
再生には Alibaba Cloud CDN ドメイン名を使用します。M3U8 アドレスをリクエストするときに MtsHlsUriToken パラメーターを渡します。システムは自動的に復号サービス用に MtsHlsUriToken を書き換え、リクエストを送信します。
暗号化されたビデオの再生を検証する方法
HLS 暗号化された M3U8 の再生をテストするには、Alibaba Cloud Player 診断プラットフォームを使用します。M3U8 URL と MtsHlsUriToken の値 (設定されている場合) を入力して、復号と再生を検証します。
その他の FAQ
-
API エラーメッセージ
SubmitTranscodeJobs API が KeyNotFound を返す場合は、ApsaraVideo VOD のテクニカルサポートに連絡して、中国 (北京) や中国 (上海) などの必要なリージョンにサービスキーの作成を依頼してください。サービスキーは暗号化キーの生成に使用されます。
-
暗号化されていないファイル
出力ファイルが暗号化されていない場合は、トランスコーディングテンプレートに移動し、[ビデオ暗号化] が有効になっており、[HLS 標準暗号化] が選択されていることを確認してください。
-
カスタムキー
カスタム文字列を暗号化キーとして使用することはできません。GenerateKMSDataKey API を呼び出してプレーンテキストキーを生成してください。
-
暗号化の失敗
HLS 暗号化とトランスコーディングが出力なしで失敗した場合、GenerateKMSDataKey API によって生成されたキーが AES_128 タイプであることを確認してください。
-
復号の失敗
HLS 暗号化されたビデオの再生時の復号に失敗した場合、復号サービスが DecryptKMSDataKey API によって返されたプレーンテキストキーをプレーヤーに送信する前に Base64 デコードしていることを確認してください。プレーンテキストキーがデコードされていない場合、復号は失敗します。
-
暗号化されたファイルの重複
暗号化されたファイルが重複して表示される場合は、SubmitTranscodeJobs API が複数回呼び出されたかどうかを確認してください。HLS 暗号化とトランスコーディングは手動でのみ開始できます。
DRM 暗号化
DRM 暗号化における「Submit transcode job failed」エラー
現象:DRM 暗号化を使用してトランスコーディングジョブを送信すると、ジョブがエラーコード TranscodeJob.SubmitFailed で失敗します。
原因:
DRM 暗号化されたトランスコーディングジョブは、ビデオのアップロード後、ApsaraVideo VOD コンソール > [メディアライブラリ] > [オーディオ/ビデオ] > [メディア処理] > [トランスコードテンプレートグループ処理] からトリガーできません。
解決策:
DRM 暗号化されたトランスコードテンプレートグループをワークフローに追加し、トランスコーディングに使用してください。詳細については、「ワークフロー」をご参照ください。
DRM 証明書のアップロード時の「Can not found user info」エラー
現象:DRM 証明書をアップロードすると、アクションがエラーコード NotUserInfoExist で失敗します。
解決策:
DRM 証明書のリージョンに、有効化された VOD バケットが存在することを確認してください。詳細については、「VOD バケットの有効化」をご参照ください。
その他の暗号化に関する FAQ
ビデオの暗号化の有無と方式の確認方法
コンソールから、または API を呼び出して確認できます。
方法 1 (コンソール):ApsaraVideo VOD コンソールにログインします。左側メニューで、[メディアライブラリ] > [オーディオ/ビデオ] を選択します。ビデオを見つけて [管理] をクリックします。ビデオ詳細ページで [ビデオ URL] タブをクリックし、[フォーマット] 列を確認します。フォーマットが mp4 の場合、通常、ビデオは暗号化されていません。フォーマットが m3u8 で、再生 URL に暗号化パラメーターが含まれている場合、ビデオは HLS 暗号化を使用しています。
方法 2 (API):GetPlayInfo API を呼び出し、レスポンスパラメーターを確認します。Encrypt フィールドは、ビデオが暗号化されているかどうかを示します (0:暗号化なし、1:暗号化あり)。Encrypt が 1 の場合は、EncryptType フィールドで暗号化方式を判断します。AliyunVoDEncryption は Alibaba Cloud 独自暗号化を、HLSEncryption は HLS 暗号化をそれぞれ示します。
一部のデバイスでのみ発生する DRM ライセンスエラー InvalidParameter.ResourceNotFound のトラブルシューティング方法
このエラーは通常、クライアントが DRM 証明書 (ライセンス) を正しく取得または設定できなかったために発生します。ライセンス自体は有効ですが、問題が発生しているデバイスはダウンロードと設定の手順を完了していません。すべてのクライアントがドキュメントの要件に従ってライセンスファイルを正しくダウンロードおよび設定していることを確認してください。問題が発生しているデバイスを正常に動作するデバイスと比較して、問題をトラブルシューティングできます。
同じビデオソースで DRM 暗号化と Alibaba Cloud 独自暗号化は共存できますか?
はい。DRM 暗号化ストリームと Alibaba Cloud 独自暗号化ストリームは、同じ videoId で共存できます。他の暗号化タイプのストリームを生成するためにビデオを再度アップロードする必要はありません。
ビデオを再生する際は、再生したいストリームに一致する暗号化タイプを指定してください。
-
アプリで Alibaba Cloud 独自暗号化ストリームを再生するには、プレーヤーの再生パラメータで
encryptType: 1を設定します。 -
Web で DRM 暗号化ストリームを再生するには、プレーヤーの再生パラメータで
isDrm: trueを設定します。
STS トークンを使用した Web 再生が失敗し、誤った暗号化タイプにフォールバックすることがあるのはなぜですか?
これは、ビデオに古いトランスコーディングストリームと新しいトランスコーディングストリームの両方がある場合に発生する可能性があります。GetPlayInfo API が新しいストリームのみを返し、プレーヤーが混合ストリームのシナリオを正しく処理しない場合、再生が Alibaba Cloud 独自暗号化ストリームにフォールバックして失敗することがあります。
この問題を解決するには、DeleteStream API を呼び出してビデオの独自暗号化ストリームを削除し、DRM 暗号化ストリームのみを保持して、再度再生を試してください。
ビデオストリームを削除すると復元できません。操作は慎重に行ってください。
古いバージョンの Web Player SDK を使用している場合、開発者コンソールを閉じると HLS 再生が失敗したり停止したりするのはなぜですか?
古いバージョンの ApsaraVideo Player SDK for web (例:2.20.0) は、新しい Edge ブラウザーのカーネルと互換性がありません。この非互換性により、HLS の読み込みエラーが発生したり、ブラウザーの開発者コンソールを閉じた後に再生が停止したりすることがあります。
この問題を解決するには、ApsaraVideo Player SDK for web を最新バージョンにアップグレードし、再生を許可するための無料ライセンスを申請していることを確認してください。