このトピックでは、Brightcove Player がデジタル著作権管理(DRM)をどのように実装しているかについて学びます。本ドキュメントでは、まず DRM プラグインの実装方法を示し、その後にプラグインの詳細とその実装方法について説明します。
はじめに
Brightcove は、できる限り幅広いブラウザおよびデバイスに DRM 保護されたコンテンツを配信するため、以下の技術を採用しています。
- Native/EME がサポートする CENC DRM を使用した MPEG-DASH
- FairPlay を使用した HLS
Brightcove Player で DRM を使用するには、以下を行う必要があります。
- DRM が有効化されたコンテンツを作成する
- DRM プラグインを使用できるように Brightcove Player を有効化する
- 場合によっては、ライセンス サーバーを使用するように DRM プラグインを設定する
用語
Players モジュールを使用した実装
Studio で DRM プラグインを実装し、アカウント設定に基づいて DRM を有効化するには、以下の手順に従ってください。
- Players モジュールを開き、新しいプレーヤーを作成するか、DRM 機能を追加したいプレーヤーを選択します。
- プレーヤーのリンクをクリックして、プレーヤーのプロパティを開きます。
- Overview タブの Playback セクションを展開します。
- Enable DRM チェックボックスをオンにします。
- プレーヤーを公開するには、Publish Changes をクリックします。
- 開いているダイアログを閉じるには、Close をクリックします。
DRM プラグインのアーキテクチャ
DRM プラグイン(videojs-drm)は、次の 2 つのプラグインのラッパーです。
- videojs-silverlight
- videojs-contrib-eme
videojs-drm プラグインのバージョン 5 では、プレーヤーに組み込まれた DASH 再生機能を使用します。これは VHS を利用しており、VHS は組み込みの videojs-contrib-hls プラグインの後継であり、名称が変更されたバージョンです。
プレーヤー 6.26.0 以降、プレーヤーは DASH マルチピリオドをサポートしています。それ以前のバージョンのプレーヤーで DASH マルチピリオドを使用するには、Shaka Player が必要です。
バージョン 4 と同様に DASH 再生に Shaka Player を使用したい場合は、videojs-drm バージョン 5 のスクリプトとともに、次のスクリプトを含めることができます。
https://players.brightcove.net/videojs-shaka/1/videojs-shaka.js
videojs-silverlight プラグインは、特定の Internet Explorer ブラウザで DASH コンテンツの再生を可能にします。
videojs-contrib-eme プラグインは、FairPlay HLS コンテンツの再生を可能にします。
使用される再生技術
Brightcove Player は、ブラウザごとに異なる DRM 再生技術を利用します。以下に、Brightcove Player で使用される DRM 技術の詳細を示します。
- FairPlay: Apple の DRM システム
- PlayReady: Microsoft の DRM システム
- Widevine: Google の DRM システム
次の表は、Brightcove Player における、ブラウザ(最新バージョン)、フォーマット、および使用される再生技術の関係を示しています。
| ブラウザ | フォーマット | DRM 再生技術 | DRM コンテンツの配信に使用される レンディション タイプ |
|---|---|---|---|
| Chrome Desktop | Widevine を使用した HLS または DASH | EME | HLS または MPEG-DASH |
| Chrome Mobile1 | Widevine を使用した HLS または DASH | EME | HLS または MPEG-DASH |
| Internet Explorer2 | PlayReady を使用した HLS または DASH | EME | HLS または MPEG-DASH |
| Edge | Widevine を使用した HLS または DASH | EME | HLS または MPEG-DASH |
| Safari | FairPlay を使用した HLS | Native | HLS |
| Firefox | Widevine を使用した HLS または DASH | EME | HLS または MPEG-DASH |
1iOS 上の Chrome Mobile を使用した DRM 再生はサポートされていません。
DRM コンテンツの作成
DRM が有効化されたコンテンツを作成するには、次の 2 つの手順を実行する必要があります。
- アカウント マネージャーに連絡して、アカウントを DRM 対応にしてもらいます。その後、適切なライセンス キーおよび取り込みプロファイルを設定して、DRM 保護コンテンツの作成を可能にすることができます。
-
DRM 保護されたコンテンツを作成します。新しいコンテンツをアップロードするか、既存のコンテンツを DRM として再エンコードするかを選択できます。これは、目的の暗号化技術を生成する Ingest Profile を選択することで行います。
セグメント化および暗号化された動画を含む MPEG-DASH マニフェスト、または HLS FairPlay コンテンツを使用する DRM 保護コンテンツを作成する必要があります。
コードでの FairPlay 再生の実装
コードでの Widevine 再生の実装
その他の DRM プロバイダーのサポート
このプラグインには、お客様が他の DRM プロバイダーのサポートを実装できるパスが用意されています。これは、ライセンス情報を取得するために必要なカスタム ロジックが求められる Fairplay で特に有用です。特定のソースで keySystems に vendor.name を追加すると、このロジックの利用が試行され、必要な証明書およびライセンス情報が含められます。以下は Azure の例です。
player.ready(function(){
player.eme();
player.src({
src: 'http://example.com/src-url.m3u8'
type: '',
keySystems: {
'com.apple.fps.1_0': {
vendor: {
name: 'azure'
},
certificateUri: 'https://example.com/your-certificate-uri.cer',
licenseUri: 'https://example.com/your-license-uri'
}
}
});
});
以下は castLabs の例です。
var player = videojs.getPlayer('myPlayerID');
player.ready(function(){
player.eme();
player.src({
src: 'http://example.com/src-url.m3u8'
type: '',
keySystems: {
'com.apple.fps.1_0': {
vendor: {
name: 'castlabs',
options: {
authToken: 'your-auth-token',
customData: 'your-custom-data'
}
}
certificateUri: 'https://example.com/your-certificate-uri.cer',
licenseUri: 'https://example.com/your-license-uri'
}
}
});
});
次の例では、Widevine と PlayReady のソースを読み込みます。
player.src({
type: 'application/dash+xml',
src: '<some src>',
keySystems: {
'com.widevine.alpha': '<license url>',
'com.microsoft.playready': '<license url>'
}
});
デバッグの有効化
DRM DASH コンテンツのデバッグを有効にするには、以下の Shaka スクリプトを Brightcove Player に追加します。
<!-- Script for the drm plugin -->
<script src="https://players.brightcove.net/videojs-drm/5/videojs-drm.min.js"></script>
<!-- Script for the shaka plugin -->
<script src="https://players.brightcove.net/videojs-shaka/1/videojs-shaka.js"></script>
<!-- Script for shaka debug plugin -->
<script src="https://players.brightcove.net/videojs-shaka/1/videojs-shaka.debug.js"></script>
以下は、プレーヤーの読み込み時のデバッグの例です。

以下は、動画の再生開始後のデバッグの例です。

DASH-IF
Brightcove Player は、DASH Industry Forum(DASH-IF)のアセットをサポートしており、Brightcove のデータを Native/EME に渡します。DASH-IF の詳細については、http://dashif.org をご参照ください。以下の DASH-IF のリンクも、DASH を使用する際に役立ちます。
再生制限
再生制限を使用するように Brightcove Player を設定するには、こちらをご参照ください。
既知の問題
- Media モジュールの TEXT TRACK セクションにある Default (Auto Display) キャプション設定は、DRM およびマニフェスト内キャプションと併用した場合にはサポートされていません。マニフェスト内キャプションは、たとえば Brightcove の Dynamic Delivery および SSAI 製品で使用されます。この問題の回避策は、Advanced Brightcove Player 実装で
<track>タグを使用することです。これは、プログラムで動画にキャプションを追加するドキュメントに詳細が記載されています。<track>タグにはdefault属性を使用する必要があることに注意してください。 - DRM アセットと Chrome: Iframe プレーヤー実装で DRM プラグインを使用する場合、Chrome で DRM アセットを再生できるようにするには
allow="encrypted-media"が必要です。<iframe src="https://players.brightcove.net/123456789/BydO6uuuu_default/index.html?videoId=5783262319001" allowfullscreen width="640" height="360" allow="encrypted-media"></iframe> - Silverlight/IE11 用の特別なイベント: ほとんどの場合、プレーヤーをプログラム的に操作するには、
readyまたはloadedmetadataイベントの発火を待ちます。ただし、IE11 で Silverlight 技術を使用し、かつ DRM コンテンツを再生する際にプレーヤーをプログラム的に操作したい場合は、canplayイベントを待つ必要があります。 - iOS では、必要な DRM ブラウザー API(EME)を提供しているのは Safari のみで、WebView は現在 EME をサポートしていません。したがって、Fairplay DRM は Safari でのみ動作します。
変更履歴
DRM プラグイン リリースノートをご参照ください。
過去のリリースノートについては、こちらの変更履歴をご参照ください。