ADOBE®   MEDIA SERVER 5.0.3

デベロッパーズガイド


翻訳:株式会社サムライズ

 

注意

Adobe Media Server® バージョン 5についての本ドキュメントは第三者によって翻訳されたものであり、Adobe Systems Incorporated(アドビ システムズ社)は本翻訳物の正確性や完全性を査閲していません。

 

暗号化されたオンデマンドメディアのストリーミング(pRTMP)

オンデマンドコンテンツを暗号化してFlash Player及びAIRに配信するには、Protected RTMPpRTMP)を使用します。

注意: Protected RTMPはプロトコルではありません。RTMPプロトコルを通じて暗号化されたデータを配信するものです。

 

システム要件

Protected RTMPはオリジンのみの構成でサポートされています。RTMPEとは違い、pRTMPはオリジンエッジ構成では動作しません。

メディアファイルを共有するアプリケーションは、その共有ファイルでは必ず同じProtected RTMPの設定を使用しなければなりません。Protected RTMPのコンテンツを再生するには、Flash Player 11.0またはAIR 3.0が必要です。Protected RTMPは、F4MRAW、及びF4Fを除き、RTMPがサポートする全てのオンデマンドのファイル形式及びコーデックをサポートします。

 

注意:Adobe Media Server 5では、保護されたProtected RTMPVODストリーミングではサポートされていますが、ライブストリーミングではサポートされていません。

 

 

Protected RTMPについて

Adobe MediaServerはオンデマンドのメディアファイルを暗号化し、Adobe Access 3.0のライセンスをコンテンツのDRMメタデータに埋め込みます。Flash PlayerAIRのクライアントはAdobe Media Serverと通信してメディアを再生します。Protected RTMPではライセンスサーバーは不要です。ライセンスはコンテンツのメタデータに埋め込まれ、クライアントはライセンスをメディアと一緒に受信します。

 

Protected RTMPAdobe Access 3.0 DRMのコンテンツ保護を使用するため、RTMPEよりもセキュアです。RTMPEは通信チャンネルを保護するのに対し、Protected RTMPはコンテンツを暗号化します。

 

コンテンツは暗号化されているため、許可されていない再生は不可能です。Protected RTMPのコンテンツは、保護されたストリーミングの秘密鍵を持つFlash Player及びAIRのクライアントのみが復号することができます。

 

RTMPE接続をサーバー間で使用してAdobe Media Server上でコンテンツを復号する方法はありません。異なるアプリケーションが共通のメディアファイルにアクセスする場合、Protected RTMPについては同じ設定である必要があります。つまり、同じメディアファイルに保護されたRTMPと保護されていないRTMPの両方でアクセスしてはいけません。

 

異なるアプリケーションが共通のメディアファイルを含む場合、Protected RTMPについては同じ設定である必要があります。AMSがメディアファイル再生(VOD)の要求を受け取った際は、メディアにアプリケーションで指定された保護を適用し、メモリにキャッシュします。既にキャッシュされているコンテンツの新規リクエストを受け取る度に、サーバーはキャッシュされているメディアの保護設定とその新規リクエストでのアプリケーションの設定を比較します。もしその設定が一致しなかった場合、AMSは、キャッシュされているメディアと、現在のリクエストでのアプリケーションの設定に従って処理されたコンテンツに置き換えて、それからメディアをクライアントに送信します。キャッシュされているメディアの設定と要求されたメディアの設定の不一致を検知する度に、AMSはエラーログエントリを作成します。

 

以下の理由により、保護されたAMSはデプロイメントを単純化しセキュリティを向上させます。

 

        Adobe Media Serverが唯一必要なサーバーです。

        ライセンスサーバーは不要です。

        ドメインサーバーも不要です。

        全てのメディアを同じ共通キーでパッケージ化することができます。

        コンテンツはAdobe Access 3.0DRM保護で暗号化されます。

        Protected RTMP 128ビットのAES暗号化を使用します。RTMPE128ビットのRC4を使用します。

Protected RTMPvhost、アプリケーション、もしくはアプリケーションインスタンスのレベルで設定します。Protected RTMPを設定するには、Application.xmlファイルや、サーバーサイドアクションスクリプト、そしてAuthorizationプラグインを使用します。

 

注意: Protected RTMPで使用されるDRMは、保護されたHTTPストリーミングで使用されるものと同じものです。

 

クイックスタート:Protected RTMPを使用してオンデマンドメディアを再生する

このチュートリアルを完了するには、以下のソフトウェアをインストールします。

        Adobe Media Server 5

サーバーのインストールについての情報は、Installing the serverを参照してください。

        Flash Player 11

このチュートリアルではFlash Player 11が必要です。

 

Adobe Media ServerProtected RTMPを設定する

1       VODアプリケーションのProtected RTMPを設定します。

2       テキストエディタでamsrootinstall/applications/vod/Application.xmlを開きます。

3       <ProtectedRTMP enabled="true"></ProtectedRTMP>要素を追加します。Application.xmlファイルは以下のようになります。

 

<Application>

<ProtectedRTMP enabled="true"></ProtectedRTMP>

...

</Application>

 

4       ファイルを保存して閉じます。

5       もしVODアプリケーションが実行中の場合は、終了してApplication.xmlファイルをリロードしてください。もしAdobe Media Serverのスタート画面を開いているなら、VODアプリケーションは実行中です。スタート画面を閉じるとVODアプリケーションも終了します(他のクライアントがVODアプリケーションに接続している場合を除きます)。

 

オンデマンドメディアを再生する

1       Adobe Media Server Sample Video Playerをダブルクリックして、ブラウザで開きます。

amsrootinstall/samples/videoPlayer/videoplayer.html.

2       /applications/vod/mediaのリストにあるリンクのいずれかをクリックします。VODアプリケーションがストリーミングする全てのファイルでProtected RTMPが使用されます。

 

 

Protected RTMPを設定する

Protected RTMPは以下の場所で設定することができます。

 

        Application.xmlファイル

    単一のアプリケーションでProtected RTMPを設定するには、アプリケーションフォルダのApplication.xmlファイルを設定します。

    バーチャルホストの全てのアプリケーションでpRTMPを設定するには、vhostフォルダのApplication.xmlファイルを設定します。

        サーバーサイドアクションスクリプト

    アプリケーションオブジェクトのプロパティを設定します。

        Authorizationプラグイン

    AuthorizationプラグインのE_APPSTARTイベントのフィールドを設定します。

 

Application.xmlファイルを使用してProtected RTMPを設定する

Protected RTMPを設定するには、アプリケーションレベルやvhostレベルでApplication.xmlファイルに<ProtectedRTMP>セクションを追加し、enabled属性を"true"に設定します。その他のpRTMPのパラメータはデフォルト値です。デフォルト値を使用しても、パラメータを新しい値に設定しても構いません。以下に<ProtectedRTMP>セクションのサンプルを示します。

 

<Application>

<ProtectedRTMP enabled="true">

<CommonKeyFile>creds/common-key.bin</CommonKeyFile>

<UpdateInterval>60</UpdateInterval>

<SWFVerification enabled="true">

<WhiteListFolder>whitelists</WhiteListFolder>

</SWFVerification>

</ProtectedRTMP>

</Application>

 

Protected RTMPを設定するには、以下のパラメータをApplication.xmlファイルで使用します。

 

パラメータ

説明

デフォルト

CommonKeyFile

基本キーを格納しているファイルへの相対パスです。このパスはApplication.xmlファイルがあるフォルダに対する相対パスです。

 

サーバーはインストール中に基本キーファイルを生成します。サーバーは基本キーを(コンテンツIDと共に)使用して、最終的なコンテンツ暗号化キーを生成します。このキーデータはスクランブルツールを使用して暗号化及びBase64形式化されています。サーバーはコンテンツIDを自動的に生成します。

rootinstall/creds/common-key.bin

UpdateInterval

どのくらいの頻度で(分を単位として)サーバーがDRMメタデータを更新するかを指定するオプションの設定です。

60

SWFVerification

SWF検証のコンテナです。SWF検証を有効化するには、enabled 属性を"true"に設定してください。

"false"

WhiteListFolder

SWF検証のSWFホワイトリストを格納しているフォルダです。このフォルダには複数のホワイトリストファイルを格納することができます。相対パスは、アプリケーションのフォルダに対する相対パスになります。

アプリケーションのフォルダが格納されているフォルダ。

 

Authorizationプラグインを使用してProtected RTMPを設定する

プラグインレベルでProtected RTMPを設定するには、E_APPSTARTイベントでコードを書いてF_APP_PRTMPフィールドをtrueに設定します。その他のpRTMPフィールドはデフォルト値です。デフォルト値を使用しても、フィールドを新しい値に設定しても構いません。AuthorizationプラグインはApplication.xmlファイルでのProtected RTMPの設定より優先されます。

 

E_APPSTARTイベントは、全てのアプリケーションレベルのフィールドの読み込みをサポートするアプリケーションレベルのイベントです。そのフィールドは以下を含みます。

 

フィールド

説明

読み・書き

F_APP_URI

クライアントが接続されているアプリケーションのURIです。値にはサーバー名やポートの情報は含まれません。

読み取り専用

F_APP_NAME

アプリケーション名。

読み取り専用

F_APP_NAME

アプリケーションインスタンス名。

読み取り専用

 

E_APPSTARTイベントは、Protected RTMP用に以下の新しいフィールドをサポートします。

 

フィールド

説明

読み・書き

F_APP_PRTMP

ストリーミングがProtected RTMPかどうかを示すブール値です。

読み書き

F_APP_PRTMP_COMMON_KEY_FILE

共通キーファイルへのパスを指定する文字列です。このパスは絶対パスでも相対パスでも構いません。相対パスはアプリケーションフォルダに対する相対パスです。

読み書き

F_APP_PRTMP_UPDATE_INTERVAL

どのくらいの頻度で(分を単位として)DRMメタデータが更新されるかを指定する数字です。

読み書き

F_APP_PRTMP_SWF_VERIFICATION

SWF検証が有効かどうかを示すブール値です。

読み書き

F_APP_PRTMP_SWF_WHITELIST_FOLDER

SWF検証のホワイトリストフォルダへのパスを指定する文字列です。

 

このパスは絶対パスでも相対パスでも構いません。相対パスはアプリケーションフォルダに対する相対パスです。

読み書き

F_APP_PRTMP_SWF_WHITELIST

'\n'で区切られた、1つまたは複数のSWFダイジェストを含む文字列です。SWF ダイジェストとはSWFsha256のハッシュでbase64形式です。AMSに同梱されているホワイトリストツールを使用してホワイトリストを生成します。この文字列は、ツールで生成されたホワイトリストのコメントや空行が含まれていても構いません。それらは無視されます。

読み書き

F_APP_PRTMP_AIR_WHITELIST

'\n'で区切られた、1つまたは複数のAIR識別子を含む文字列です。AIR識別子はAIRアプリへの署名に使用されるsignature.xmlファイルから得られます。AMSに同梱されているホワイトリストツールを使用してホワイトリストを生成します。この文字列は、ツールで生成されたホワイトリストのコメントや空行が含まれていても構いません。それらは無視されます。

読み書き

 

E_PRTMP_WHITELISTイベントはAMSn分(update intervalの設定によります)毎に呼び出すアプリケーションレベルのイベントで、これによりF_APP_PRTMP_SWF_WHITELISTF_APP_PRTMP_AIR_WHITELISTフィールドを通じてSWFAIRのホワイトリストを更新することができます。

 

サーバーサイドアクションスクリプトを使用してProtected RTMPを設定する

Protected RTMPを設定するには、以下のサーバーサイドアクションスクリプトのプロパティを使用します。

 

プロパティ

データ型

application.prtmpEnabled

Boolean

application.prtmpCommonKeyFile

String

application.prtmpUpdateInterval

Int

application.prtmpSWFVEnabled

Boolean

application.prtmpSwfWhitelistFolder

String

 

注意:prtmpCommonKeyFile 及びprtmpSwfWhitelistFolderプロパティは、ファイルやフォルダへのパスを指定します。サーバーは相対パスをアプリケーションディレクトリに対する相対パスとして解決します。

 

これらのプロパティはapplication.onAppStart()イベント中に設定ファイルから取得される値で埋められます。このイベントで値を設定することもできます。それは以下のように行います。

 

application.onAppStart = function()

{

trace  ("----------prtmp on start----------");

trace("prtmp " + application.prtmpEnabled);

trace("prtmpCommonKeyFile " + application.prtmpCommonKeyFile);

trace("prtmpUpdateInterval " + application.prtmpUpdateInterval);

trace("prtmpSwfVerification " + application.prtmpSWFVEnabled);

trace("prtmpSwfWhitelist " + application.prtmpSwfWhitelistFolder);

trace  ("------------prtmp on start-------  -");

application.prtmpEnabled = false;

application.prtmpCommonKeyFile = "TEST  ";

application.prtmpUpdateInterval = 12000  ;

application.prtmpSWFVEnabled = true;

application.prtmpSwfWhitelistFolder = "";

}

 

application.onConnect()イベント中に新しい値をトレースします。

 

{

trace("----------prtmp on connect----------");

trace("prtmp " + application.prtmpEnabled);

trace("prtmpCommonKeyFile " + application.prtmpCommonKeyFile);

trace("prtmpUpdateInterval " + application.prtmpUpdateInterval);

trace("prtmpSwfVerification " + application.prtmpSWFVEnabled);

trace("prtmpSwfWhitelist " + application.prtmpSwfWhitelistFolder);

trace("------------prtmp on connect--------");

}

 

上述のコードは、以下の様なapplication.logファイルを出力します。

 

#Version: 1.0

#Start-Date: 2011-10-19 12:20:41

#Software: Adobe Media Server 5 d430 x64

#Date: 2011-10-19

#Fields: date time x-pid x-status x-ctx x-comment

2011-10-19 12:20:41 7832 (s)2641173 ----------prtmp on start-----------

2011-10-19 12:20:41 7832 (s)2641173 prtmp true -

2011-10-19 12:20:41 7832 (s)2641173 prtmpCommonKeyFile c:\Program Files\Adobe\Adobe Media Server 5\conf\_defaultRoot_\_defaultVHost_\streamtest\creds\common-key.bin -

2011-10-19 12:20:41 7832 (s)2641173 prtmpUpdateInterval 3600000 -

2011-10-19 12:20:41 7832 (s)2641173 prtmpSwfVerification false -

2011-10-19 12:20:41 7832 (s)2641173 prtmpSwfWhitelist c:\Program Files\Adobe\Adobe Media Server 5\conf\_defaultRoot_\_defaultVHost_\streamtest -

2011-10-19 12:20:41 7832 (s)2641173 ------------prtmp on start---------

2011-10-19 12:20:41 7832 (s)2641173 ----------prtmp on connect-----------

2011-10-19 12:20:41 7832 (s)2641173 prtmp false -

2011-10-19 12:20:42 7832 (s)2641173 prtmpCommonKeyFile c: \Program Files\Adobe\Adobe Media Server 5\conf\_defaultRoot_\_defaultVHost_\streamtest\TEST -

2011-10-19 12:20:42 7832 (s)2641173 prtmpUpdateInterval 12000 -

2011-10-19 12:20:42 7832 (s)2641173 prtmpSwfVerification true -

2011-10-19 12:20:42 7832 (s)2641173 prtmpSwfWhitelist c:\Program Files\Adobe\Adobe Media Server 5\WhiteListFolder -

2011-10-19 12:20:42 7832 (s)2641173 ------------prtmp on connect---------

 

 

サーバーのパフォーマンスを調整する

最もCPUパワーを使用するpRTMPの処理は、DRMメタデータの生成とライセンスの生成です。Adobe Media Serverは、初めてクライアントがメディアファイルにアクセスする際にDRMメタデータを生成します。サーバーはメタデータをキャッシュし、同じメディアファイルへの次の要求に再利用します。

 

DRMメタデータに含まれるメディアのライセンスは、メディア再生にライセンスが生成された時点から24時間のタイムリミットを設定します。よって、サーバーは定期的にライセンスをリフレッシュし、新しいタイムスタンプを持つ新しいDRMメタデータを生成します。どのくらいの頻度でサーバーがDRMメタデータを生成するかを指示するには、<UpdateInterval>パラメータを設定してください。デフォルト値は60分です。CPUパワーの使用を減らすには、ライセンス生成の頻度を減らしてください。

 

 

証明書とポリシーファイル

Protected RTMP用の全ての証明書とポリシーファイルは、Adobe Media Serverrootinstall/credsフォルダにインストールされています。

 

Protected Streamingの証明書を追加する

Adobe Media Serverは、Protected Streamingの証明書(.cerファイル)をProtected RTMPに使用します。保護されたストリーミングの証明書3部と共にAMSはインストールされます。デスクトップ、モバイル、セットトップ向けには別々の証明書を使用します。

 

万一セキュリティ違反が発生した場合には、Adobeはセキュリティアラートを発して、新しい保護されたストリーミングの証明書をダウンロードしてくださいとお伝えします。

 

保護されたストリーミングの証明書を追加するには、rootinstall/creds/sdフォルダにコピーします。

 

静的セキュリティファイルについて

以下のファイルはAdobe Media Serverと共に、rootinstall/creds/staticフォルダにインストールされます。これらのファイルは置き換えたり改変したりしないでください。

 

ポリシーファイル

Adobe Media Serverはポリシーファイルrootinstall/creds/static/creds_24hr_policy.polと共にインストールされます。このポリシーファイルは次のように設定されています。

 

anonymous; not use licensechaining; 24 hourslimited license caching;and Protected Streaming is permitted.

このポリシーファイルは、サーバーがDRMメタデータを生成してから24時間以内にコンテンツの再生を開始することをクライアントに許可します。例えその24時間を超えたとしても、ユーザーは最後までコンテンツの視聴を続けることができます。その24時間はサーバーがDRMメタデータを生成し、それをキャッシュに格納する際にスタートします。Application.xml<UpdateInterval>パラメータによって、サーバーがDRMメタデータを生成する頻度を決定します。デフォルト値は60分です。

 

ライセンスサーバー証明書

Adobe発行のDER形式のライセンスサーバー証明書です。このライセンスサーバー証明書はライセンスに署名するのに使用される秘密鍵を指定しています。

 

トランスポート証明書

Adobe発行のDER形式のX.509トランスポート証明書ファイルです。このトランスポート証明書は、クライアントがサーバー(例えば認証サーバーなど)と通信する際に使用されます。この機能はAdobe Media Server 5ではサポートされていませんが、証明書は引き続き必要です。

 

パッケージャー保護資格情報

Adobe発行のパッケージャーサーバー保護資格情報(証明書とそれに関連付けられた鍵)のPFXファイルです。サーバーはこのファイルを、コンテンツファイルの暗号化中にメタデータに署名するために使用します。

 

 

最終更新日 2013/9/30