ADOBE® MEDIA SERVER 5.0.3
デベロッパーズガイド
![]() ![]() ![]() |
翻訳:株式会社サムライズ |
---|
注意
Adobe Media Server® バージョン 5についての本ドキュメントは第三者によって翻訳されたものであり、Adobe Systems Incorporated(アドビ システムズ社)は本翻訳物の正確性や完全性を査閲していません。
オフラインでのパッケージ化
ファイルパッケージャーは、オンデマンドメディアファイルをHTTPでストリーミングできる形式へとパッケージ化するコマンドラインツールです。ファイルパッケージャーはAdobeAccessで保護するためのファイル暗号化を行うこともできます。
注:オンデマンドコンテンツを、クライアントが要求してきた時にHTTPでのストリーミング向けにリアルタイムでパッケージ化するには、Adobe Media Serverデベロッパーズガイドの「オンデマンドメディアのストリーミング(HTTP)」を参照してください。
オンデマンドメディアのパッケージ化
ファイルパッケージャーの場所
ファイルパッケージャーは以下の場所にあります:
• rootinstall/tools/f4fpackagerフォルダ
ファイルパッケージャーは実行にいくつかのライブラリが必要です。これらのライブラリはf4fpackagerフォルダにあります。ファイルパッケージャーを移動させるには、f4fpackagerフォルダとその中身を全て移動させてください。
入力ファイル形式と出力ファイル形式
HTTPでオンデマンドメディアをストリーミングするには、そのファイルをファイルパッケージャーで処理します。ファイルパッケージャーは内容をパースし、それをセグメントとフラグメントに変換し、セグメントとフラグメントをF4F形式へと書き込みます。ファイルパッケージャーにAdobeAccessで保護するための暗号化を行わせることもできます。
ファイルパッケージャーは以下のファイル形式に対応しています:
• F4V/MP4互換のファイル
• FLV
重要:このファイル形式は、Speexオーディオを除き、その形式がサポートするあらゆるコーデックを格納することができます。Speexオーディオはパッケージ化することは可能で、ファイルパッケージャーはエラーも出しませんが、オーディオは再生できません。ファイルパッケージャーはビデオのみや音声のみのストリームをパッケージ化することもできます。
ファイルパッケージャーは以下のファイル群を出力します:
ファイルタイプ |
説明 |
.f4f |
セグメントです。このツールはF4Fファイルを1つ以上出力します。各ファイルにはソースファイルのセグメントが1つ入っています。各セグメントにはコンテンツのフラグメントが1つ以上入っています。プレイヤーはURLで各セグメントにアクセスできます。 |
.f4m |
Flash Mediaマニフェストファイルです。コーデックや解像度、マルチビットレートファイルがあるかどうかの情報が入っています。 |
.f4x |
インデックスファイルです。ストリーム中の特定のフラグメントの位置が入っています。 |
.bootstrap |
ブートストラップファイルです。ファイルのセグメントそれぞれのブートストラップ情報が入っています。--external-bootstrapオプションを指定したときのみ、ツールは外部の.bootstrapファイルを作成します。そのオプションを指定しなければ、ブートストラップ情報はマニフェストファイルに格納されます。 |
.drmmeta |
DRM追加ヘッダーファイルです。暗号化されたファイルの追加ヘッダー情報が入っています。--external-bootstrapオプションを指定してファイルを暗号化したときのみ、ツールはこのファイルを作成します。そうでなければ、この情報はマニフェストファイルに格納されます。 |
セグメントとフラグメント
1つのF4Fファイルにはメディアファイルのセグメントが1つ入っています。各セグメントには複数のフラグメントが入ることができます。各セグメントと各フラグメントの継続時間を設定するには、--segment-duration と --fragment-durationのオプションを使ってください。設定は秒を単位として行います。0より大きいセグメントの継続時間を指定すると、複数のファイルが作成されます。ちょうどいいサイズのフラグメントとは、インターネットで送信するために十分なほど小さく、Apache HTTPサーバーを複数回呼びださなくてもいいほど長いものです。
ファイルパッケージャーを実行する
ファイルをパッケージ化するには、ファイルパッケージャーに入力ファイルの名前を渡します。
名前を指定するには2つの方法があります:
• コマンドラインで--input-fileオプションを入力する。
• 入力ファイルを指定する設定ファイルを作成し、コマンドラインで--conf-fileオプションを入力する。
コンテンツをWindows上でパッケージ化する
1 コマンドプロンプトを開きます。
2 ディレクトリをf4fpackager.exeがあるディレクトリに変更します。
3 ツールの名前とオプションを入力します:
f4fpackager --input-file=sample.f4v --output-path=c:\sampleoutput
以下のファイルが出力されます:sampleSeg1.f4f、sample.f4x、及びsample.f4m。
1 ターミナルウィンドウを開きます。
2 クリーンインストールされたLinux上では、変数LD_LIBRARY_PATHをファイルパッケージャーのライブラリが入っているディレクトリにセットします。
3 シェルプロンプトで、ツールの名前とオプションを入力します:
f4fpackager --input-file=sample.f4v --output-path=/sampleoutput
以下のファイルが出力されます:sampleSeg1.f4f、sample.f4x、及びsample.f4m。
マルチビットレートのコンテンツをパッケージ化する
マルチビットレートのコンテンツをストリーミングするには、1つのメディアを複数のビットレートでエンコードして、複数のメディアファイルを作成します。そしてファイルパッケージャーを使って各メディアファイルを一つ一つ処理します。これらのメディアファイルは、各ファイルの情報を記載した1つのマニフェストファイルを共有します。OSMFプレイヤーはこの情報を使って再生を行います。
ファイルパッケージャーを実行する度に、ファイルパッケージャーは入力ファイルのファイル名が記載されたマニフェストファイルを作成します。--manifest-fileオプションを渡すと、その情報をファイルパッケージャーは作成するマニフェストファイルに追加します。例えば、以下のオプションで実行したとします:
--input-file=sample1.f4v
ツールは以下のファイルを作成します:sample1Seg1.f4f、sample1.f4x、及びsample1.f4m。
そして以下のコマンドを実行するとします:
--input-file=sample2.f4v --manifest-file=sample1.f4m
ツールはsample2Seg1.f4f、sample2.f4x、sample2.f4mというファイルを作成します。マニフェストファイルsample2.f4mにはsample2.f4vとsample1.f4vについての情報が含まれています。
マルチビットレートのコンテンツのマニフェストファイルを作成するには、--manifest-fileオプションを渡して、前に処理されたファイルのマニフェストファイルを指定します。最初のファイルを処理する際には--manifest-fileオプションを渡してはいけません。
注:この例ではWindowsを使用しています。Linuxのコマンドは、「コンテンツをLinux上でパッケージ化する」を参照してください。
1 いくつかのビットレートでメディアファイルをエンコードします。例えば150 kbps、700 kbps、1500 kbpsです。
この例ではsample1_150kbps.f4v、sample1_700kbps.f4v、sample1_1500kbps.f4vの 3つのファイルを使います。Adobe Media Serverにはこれらのファイルがrootinstall\applications\vod\mediaにインストールされています。
2 ファイルをファイルパッケージャーと同じフォルダにコピーします。
Adobe Media Serverでは、ファイルパッケージャーはrootinstall\tools\f4fpackagerフォルダにあります。
3 コマンドプロンプトを開きます。
4 ディレクトリをf4fpackager.exeがあるディレクトリに変更します。
5 以下のコマンドを入力します:
f4fpackager --input-file=sample1_150kbps.f4v --bitrate=150
以下のファイルが出力されます:sample1_150kbpsSeg1.f4f、sample1_150kbps.f4x、及びsample1_150kbps.f4m。
6 以下のコマンドを入力して2番目のファイルを処理します:
f4fpackager --input-file=sample1_700kbps.f4v --manifest-file=sample1_150kbps.f4m --bitrate=700
以下のファイルが出力されます:sample1_700kbpsSeg1.f4f、sample1_700kbps.f4x、及びsample1_700kbps.f4m。
マニフェストファイルsample1_700kbps.f4mには、今回の入力ファイルからの情報とマニフェストファイルsample1_150kbps.f4mからの情報が入っています。
7 以下のコマンドを入力して3番目のファイルを処理します:
f4fpackager --input-file=sample1_1500kbps.f4v --manifest-file=sample1_700kbps.f4m --bitrate=1500
以下のファイルが出力されます:sample1_1500kbpsSeg1.f4f、sample1_1500kbps.f4x、sample1_1500kbps.f4m。
マニフェストファイルsample1_1500kbps.f4mには、今回の入力ファイルからの情報とマニフェストファイルsample1_700kbps.f4mからの情報が入っています。sample1_700kbps.f4mファイルには、sample1_150kbps.f4vファイルとsample1_700kbps.f4vファイルについての情報が入っています。
8 ファイルを再生するには、sample1_1500kbps.f4mファイルのURLをOSMFプレイヤーに渡します。このマニフェストファイルは最後に作成されたものなので、3つのファイル全てについての情報が入っています。
コンテンツをパッケージ化・暗号化する
パッケージ化とAdobe Accessで保護するための暗号化の両方を行うには、ファイルパッケージャーを使用します。
Adobe Accessには、Adobe® Access™ Server for Protected Streamingと呼ばれるAdobe Access SDKに基くライセンスサーバーの実装が入っています。Adobe Access Server for Protected StreamingはHTTP Dynamic Streamingで使うために設計されています。Adobe Accessについての更なる情報は、Adobe Accessのドキュメントを参照してください。
ファイルパッケージャーでコンテンツを暗号化するには共通キーファイルを作成する必要があります。共通キーファイルの中身は128バイトのランダムに生成されたデータです。ファイルパッケージャーはコンテンツIDと共にこのキーを使って、コンテンツ暗号化キーを作成します。
注:この基本キーは128バイトですが、最初の128ビット(16バイト)のみがキーの作成に使われます。
オープンソースツールであるOpenSSLやAdobeのスクランブルユーティリティを使って、ランダムデータを作成して共通キーファイルを出力することができます。OpenSSLはwww.openssl.orgからダウンロードしてください。
ランダムデータを作成し共通キーファイルを出力:
openssl rand -out commonKey.bin 128
--common-keyコマンドラインオプションとして、または設定ファイルの<common-key>要素に記述して、commonKey.binを渡します。
ファイルの暗号化には多数のコマンドラインオプションが必要です。オプションをコマンドラインで設定するより、設定ファイルを使った方が簡単です。
1 テキストエディタでf4fpackager_config.xmlを開きます。
デフォルトでは、このツールはファイルパッケージャーと同じディレクトリでf4fpackager_config.xmlを探します。しかし、どこに移動させてもどんな名前を付けても構いません。
2 以下の必須オプションの値を入力します(ここにはサンプルの値も入っています):
<offline>
<input-file>someFile.f4v</input-file>
<content-id>contentId</content-id>
<common-key>commonKey.bin</common-key>
<license-server-url>http://server1.com:9999</license-server-url>
<license-server-cert>licenseServer.der</license-server-cert>
<transport-cert>transportCert.der</transport-cert>
<packager-credential>packagerCredential.pfx</packager-credential>
<credential-pwd>mYpwd</credential-pwd>
<policy-file>policyFile.pol</policy-file>
</offline>
さらに要素を追加してデフォルト値を変更することもできます。
3 設定ファイルを保存します。
4 コマンドプロンプトを開きます。
5 f4fpackager.exeがあるディレクトリに変更します。
6 以下のコマンドを入力します:
f4fpackager --conf-file=f4fpackager_config.xml
1 コマンドプロンプトを開きます
2 ファイルパッケージャーがあるディレクトリに変更します。
3 以下のコマンドを入力します:
f4fpackager --input-file=someFile.f4v --license-server-url=http://server1.com:9999 --transport-cert=transportCert.der --license-server-cert=licenseServer.der --packager-credential=packagerCredential.pfx --credential-pwd=mYpwd --policy-file=policyFile.pol --common-key=commonKey.bin --content-id=contentId
ファイルパッケージャーのリファレンス
ファイルをフラグメント化するためのコマンドラインオプション
ファイルパッケージャーの全てのオプションはコマンドラインで設定することができます。コマンドラインで設定されたオプションは、設定ファイルのどのオプションもオーバーライドします。唯一の必須オプションは--input-fileです。
オプション |
説明 |
必須 |
デフォルト値 |
--allowed-drift |
このツールは継続時間を丸めるため、実際の時間からはずれます。このオプションで、どのくらい実際の時間からずれてもよいかを秒を単位として指定します。 |
いいえ |
1 |
--bitrate |
フラグメント化するコンテンツのビットレートを指定し、マニフェストファイルに追加します。このオプションは複数のビットレートでエンコードされたファイルを処理するために使用します。このオプションを使わない場合、マニフェストファイルを手動で編集してビットレートを追加します。 |
いいえ |
0 |
--config-dump |
設定をダンプします。このオプションではファイルをフラグメント化しません。 |
いいえ |
None |
--conf-file |
パッケージ化処理の設定が記述された設定ファイルです。
絶対パスか、このツールがあるディレクトリに対する相対パスが指定できます。f4fpackager_config.xmlというファイル名か、または他のファイル名でも適切なファイル名なら何でも使用できます。
このツールがC:\mediaディレクトリにあり、設定ファイルがC:\media\testディレクトリにあったとすると、コマンドラインで以下のコマンドを実行します。 f4fpackager --conf- file=test\f4fpackager_config.xml. |
いいえ |
f4fpackager_conf ig.xml
f4fpackager_config.xmlがカレントディレクトリに無かった場合は、デフォルト値は「無し」になります。 |
--duration-precision |
フラグメントの継続時間をどのくらいの精度にするか、秒を単位として設定します。時間ベースのフラグメント継続時間を使用する際は、フラグメント実行テーブルのフラグメント継続時間をどのくらい丸めるかを継続時間の精度で制御します。これにより、フラグメント継続時間の僅かなばらつきのために実行テーブルが肥大化しすぎるのを防ぐことができます。 |
いいえ |
0.1 |
--edit-list |
このオプションを指定すると、パッケージャーは入力ファイルのedit listに従います。デフォルトでは、パッケージャーはedit listに従いません。 |
いいえ |
無し |
--external-bootstrap |
ブートストラップボックスを.bootstrapファイルに出力します。このオプションを使わなければ、ブートストラップボックスはマニフェストファイル(F4M)の中に格納されます。
ファイルを暗号化する場合は、DRM追加ヘッダー情報を.drmmetaファイルへ出力します。このオプションを使わなければ、追加ヘッダー情報はマニフェストファイルに格納されます。 |
いいえ |
無し |
--fragment-duration |
各フラグメントの継続時間を秒を単位として指定します。各フラグメントの実際の長さは、キーフレーム間隔などの入力ファイルの特性に依存します。 |
いいえ |
4 |
--frame-precision |
このオプションは--duration-precisionオプションのフレームベース版です。この値がフラグメント実行テーブルへと丸めるフレーム数です。 |
いいえ |
1 |
--frame-rate |
元のコンテンツのフレームレートを一秒あたりのフレーム数(fps)で指定します。この値は浮動小数点数です;NTSCなら、29.97を使ってください。 |
いいえ |
|
--frames-per-keyframe- interval |
キーフレームの間にあるフレームの数です。例えば、2秒ごとに1つのキーフレームがある30fpsのビデオには、キーフレーム間に60枚のフレームがあります。 |
いいえ |
|
--input-file |
ソースとなるコンテナファイルへのパスです。パスは、絶対パスかファイルパッケージャーのあるディレクトリに対する相対パスを指定できます。
--conf-fileオプションを指定し、設定ファイルに<input-file> の値が記述してある場合は、--input-fileオプションは必須ではありません。 |
はい |
無し |
--inspect-bootstrap |
ブートストラップファイルを調査します。 .bootstrapファイルが入力された場合は、そのファイルを調査します。そうでない場合は、F4Fファイルの中のbootstrapボックスを調査します。 |
いいえ |
無し |
--inspect-fragments |
F4Fファイルの中のF4Fフラグメントを調査します。 |
いいえ |
無し |
--inspect-index |
AFRAファイルが入力された場合、AFRAインデックスファイルを調査します。 |
いいえ |
無し |
--keyframe-intervals-per- fragment |
1フラグメントあたりのキーフレーム間隔(GOP)の数です。フラグメントサイズがキーフレーム間隔と同じになる1がデフォルト値です。 |
いいえ |
1 |
--manifest-file |
既存のマニフェストファイルを更新します。動的ストリーミング用に複数のビットレートでエンコードされたファイルをパッケージ化するには、このオプションを使ってください。例えば、3つのファイル(sample_500kpbs.f4v、sample_1000kbps.f4v、sample_1500kbps.f4v)をパッケージ化し、全てのファイルを同じマニフェストファイルに追加することができます。
このオプションが無ければ、ツールはFlash Media Manifest file(F4M)を作成します。 |
いいえ |
無し |
--output-manifest-file |
指定した名前でマニフェストファイルを作成します。 |
いいえ |
無し |
--output-path |
パッケージ化されたファイルを出力するディレクトリのパスです。ディレクトリが存在しなかった場合は、ツールが作成します。パスは、絶対パスかファイルパッケージャーがあるディレクトリに対する相対パスで指定できます。 |
いいえ |
カレントディレクトリ |
--sample-dump |
この設定で生成されるサンプルとフラグメントをダンプします。このオプションはファイルのフラグメント化は行いません。 |
いいえ |
無し |
--segment-duration |
セグメントの長さ(単位は秒)。デフォルト値は0で、セグメントを1つ作成します。 |
いいえ |
0 |
ファイルパッケージャーにはフラグメントのサイズを決めるオプションがあります。フレームベースのオプションである--keyframe-interval-per-fragmentと、時間ベースのオプションである--fragment-durationがあります。各オプションにはフラグメント作成の方法を改善する追加オプションがあります。
ソースメディアのビデオが固定フレームレートでエンコードされている場合はフレームベースのオプションを使用します。フレームベースのオプションではフラグメントのサイズをビデオのキーフレームの間隔にきっちり一致させることができます。オーディオやビデオ以外のデータが入ったメディアには、時間ベースのオプションを使用します。
フレームベースのオプション:--keyframe-interval-per-fragment、--frames-per-keyframe-interval、 --frame-rate、--frame-precision。時間ベースのオプション:--fragment-duration、--duration-precision。フレームベースのオプションは時間ベースのオプションをオーバーライドします。--keyframe-interval-per-fragmentオプションを使用しなかった場合は、ファイルパッケージャーは--fragment-durationオプションを使用します。--keyframe-interval-per-fragmentや--fragment-durationに値を指定しなかった場合、ファイルパッケージャーはデフォルトのフラグメント継続時間を使用します。それは4秒です。
ファイル暗号化のコマンドラインオプション
Adobe Accessと併用するためにファイルを暗号化するには、ファイルパッケージャーを使用します。以下のオプションの中にはデジタル証明書が必要なものもあります。デジタル証明書を取得するには、Adobe Access Certificate Enrollment Siteを参照してください。
オプション |
説明 |
必須 |
デフォルト |
--transport-cert |
DER形式のトランスポート証明書ファイル。
|
はい |
無し |
--license-server-url |
このコンテンツのライセンス取得を処理するライセンスサーバーのURL。 |
はい |
無し |
--license-server-cert |
コンテンツ保護のためのDER形式のサーバー証明書ファイル。 |
はい |
無し |
--packager-credential |
パッケージャーの保護資格情報が格納されたPFXファイル。 |
はい |
無し |
--credential-pwd |
パッケージャーの資格情報を保護するために使われるパスワード。 |
はい |
無し |
--common-key |
共通キーが格納されているファイル。共通キーはコンテンツIDと共に、コンテンツ暗号化キーを作成するために使われます。共通キーはランダムに生成した128バイトのものである必要があります。共通キーは128バイトですが、最初の128ビット(16バイト)のみがコンテンツ暗号化キーを作成するために使われます。
動的ストリーミングでは、同じ共通キーとコンテンツIDをコンテンツのセット全てに使用します。同じキーとIDを使うと、1つのライセンスでコンテンツのセットを全て復号することができます。 |
はい |
無し |
--content-id |
共通キーと共にコンテンツ暗号化キーを作成するために使われるコンテンツID。 |
はい |
無し |
--policy-file |
このコンテンツのポリシーが格納されているファイル。今のところ、このツールではポリシーを1つだけ適用できます。 |
はい |
無し |
--encrypt-audio |
ファイル中のオーディオを暗号化するかどうかを指定します。 |
いいえ |
true |
--encrypt-video |
ファイル中のビデオを暗号化するかどうかを指定します。 |
いいえ |
true |
--encrypt-data |
ファイル中のデータを暗号化するかどうかを指定します。このオプションはFLVとF4V/MP4の両方に対応しています。 |
いいえ |
true |
--ms-unencrypted |
コンテンツ冒頭の何ミリ秒を暗号化しないままにしておくかを指定します。このオプションを使うと、クライアントはライセンスの取得を再生開始と非同期で行えるため、ストリーミング開始にかかる時間を短縮できます。 |
いいえ |
0 |
--video-encrypt-level |
H.264のコンテンツを暗号化するレベル。指定できる値は、0(低)、1(中)、2(高)です。デフォルト値は2です。
注:このオプションをH.264以外のコンテンツに使ってもエラーは出ませんが、暗号化レベルは変わりません。
「0」や「1」の値は、「部分的な暗号化」を意味します;ビデオのキーフレームなどの重要なサンプルのみが暗号化されます。この設定を使うと暗号化されるフレーム数が減ります。クライアントでの再生パフォーマンスを改善するにはこの設定を使ってください。
「2」の値を指定すると、(--ms-unencryptedを指定したならばその後の)全てのビデオサンプルを暗号化します。 |
いいえ |
2 |
ファイルパッケージャーの設定ファイル
ファイルパッケージャーはXML設定ファイルを使ってコマンドラインオプションの値を読み込みます。デフォルトの設定ファイルf4fpackager_config.xmlは、ファイルパッケージャーと同じディレクトリにあります。大抵、コマンドラインでオプションを入力するよりも、再利用可能なテキストファイルでオプションを指定する方が簡単です。
コマンドラインでオプションを指定すると、設定ファイルで指定されたオプションがオーバーライドされます。この機能により、コンテンツのセットに使う設定ファイルを作成しながらも、ファイルごとに設定を少し変更するということが可能です。
注:このツールを実行するのに、設定ファイルは使わなくても構いません。
設定ファイルの名前と場所を渡すには、コマンドラインで--conf-fileオプションを入力します。--conf-fileオプションを入力しなければ、ツールと同じフォルダにf4fpackager_config.xmlというファイルがあるかどうかチェックします。
設定ファイルには、入力ファイルを含めパッケージ化と暗号化の全てのオプションを入力できます。以下に設定ファイルのフォーマットを示します:
<offline>
<input-file>/media/input-file.f4v</input-file>
<output-path>/media/http</output-path>
<fragment-duration></fragment-duration>
... You can set as many options as you want ...
</offline>
パスを入力するオプションでは、絶対パスか、ツールがあるディレクトリに対する相対パスを指定できます。
エラー
ファイルパッケージャーは以下のエラーを出力します:
エラーコード |
エラーメッセージ |
説明 |
1 |
File not found |
入力ファイルか、マニフェストファイル、あるいは設定ファイルが見つかりませんでした。 |
2 |
Input File not given |
入力ファイルが指定されていません。ファイルパッケージャーを実行するには、対応するファイル形式へのパスを指定する必要があります。 |
3 |
Invalid input file |
入力ファイルか、マニフェストファイル、あるいは設定ファイルが無効な入力ファイルです。 |
4 |
Can’t access file |
入力ファイルか、マニフェストファイル、あるいは設定ファイルにアクセスできません。 |
5 |
Unsupported codec |
入力ファイルに対応していないコーデックが含まれています。 |
6 |
No supported tracks |
入力ファイルに対応しているトラックがありません。 |
7 |
Write error |
書き込みエラーが発生しました。入力ファイルが正しい構造をしているか、ファイルパッケージャーを実行するために十分なメモリがあるか確認してください。 |
8 |
XML library error |
設定ファイルのパース中にエラーが発生しました。XMLが正しい構造をしているか確認してください。 |
9 |
Program Options error |
プログラムオプションライブラリが動作しませんでした。コマンドラインの引数が正しい構造をしているか確認してください。 |
10 |
Offline Encryption info error |
ファイルパッケージャーはファイルを暗号化するために十分な情報を持っていません。入力に欠けているものがないか確認してください。 |
11 |
Encryption library error |
コンテンツを暗号化中に暗号化ライブラリがエラーを出しました。 |
12 |
Standard error |
標準例外が発生しました。ファイルパッケージャーを実行するために十分なメモリがあるか確認してください。 |
13 |
Invalid Bootstrap error |
ブートストラップファイルが壊れていてパースできません。 |
14 |
FLV Error |
FLVファイルが読み込めません。 |
999 |
Internal error |
ファイルパッケージャーで内部エラーが発生しました。 |
1000 |
Invalid Input file warning |
入力ファイルが無効だという警告。 |
2000 |
Invalid Error code |
エラーコードが無効です。 |
Adobe Media Serverのインストールには、オンデマンドのメディアを、HTTPでストリーミング可能なフラグメント化されたビデオコンテンツにパッケージ化するためのコマンドラインツールが入っています。このオフラインパッケージャーはAdobe Accessで保護するための暗号化を行うこともできます。
hlspackagerは、F4Vソースを読み込み、フラグメント化されたHLS VODコンテンツを作成するコマンドラインツールです。コマンドラインか設定ファイルでパッケージャーに様々なオプションを渡すことができます。しかし、コマンドラインでオプションが渡されると、設定ファイルで指定されたそのオプションをオーバーライドします。
注:パッケージャーはF4Vと MP4 ファイルのみを認識できます。.
パッケージャーツールは、パッケージ化の処理中に何種類かの出力ファイルを作成します:
• m3u8ファイル(シングルストリーム再生リスト)
• m3u8に記載されているTSセグメント
hlspackagerのシンタックスを以下のコマンドに示します:
hlspackager --input-file=<input> --output-path=<output> --base-url=<baseurl> --audio-only=<bool> --config-dump --help --media-target-duration=<fragmentLength> --conf-file=<confFile>
注:HLSオフラインパッケージャーは、ストリームやファイルによって生成されるコンテンツの名前にプレフィックスを付加しません。よって、作成されるコンテンツと同じ名前のファイルが出力ディレクトリにあれば、全て上書きしてしまいます。マルチビットレートでバッチジョブを使う場合は、output-pathオプションを使用して作成されるコンテンツのために違うディレクトリのパスを指定する必要があります。
サポートされている様々なオプションを以下の表で説明します:
オプション |
説明 |
デフォルト |
必須 |
--input-file |
ソースファイルのパス。 |
無し |
はい |
--output-path |
作成されるHLSファイル群のパス |
カレントディレクトリ |
いいえ |
--base-url |
ファイルでTSファイルの名前に付加するベースURL。 |
URL無し |
いいえ |
--media-target-duration |
各TSセグメントの目標継続時間。 |
8000ミリ秒 |
いいえ |
--conf-file |
パッケージ化処理の追加情報が記述された設定ファイルを指定します。 |
作業ディレクトリのhlspackager_config.xml |
いいえ |
--config-dump |
最終的に適用される設定を出力します。この場合、パッケージ化は行われません。 |
出力無し |
いいえ |
--audio-only |
オーディオのみのストリームを展開するかどうか("true"/"false") . |
false |
いいえ |
--protection-scheme |
使用する保護のタイプ("Vanilla" か"FlashAccessV4"). |
無し (暗号化無し) |
はい |
--transport-cert |
このコンテンツの保護に使用するDER形式のトランスポート証明書を指定します。 |
無し |
保護のタイプがFlashAccessV4の場合、はい |
--license-server-url |
このコンテンツのライセンス取得を処理するライセンスサーバーのURL。 |
無し |
保護のタイプがFlashAccessV4の場合、はい |
--license-server-cert |
このコンテンツの保護に使用するDER形式のライセンスサーバー証明書を指定します |
無し |
保護のタイプがFlashAccessV4の場合、はい |
--packager-credential |
パッケージャーの保護資格情報を含むPFXファイル。 |
無し |
保護のタイプがFlashAccessV4の場合、はい |
--credential-pwd |
パッケージャーの保護資格情報を保護するために使用するパスワード文字列 |
無し |
保護のタイプがFlashAccessV4の場合、はい |
--common-key-file |
(コンテンツIDと共に)最終的なコンテンツ暗号化キーを作成するために使われる基本キー。 コンテンツのセット全体に共通の共通キーとコンテンツIDを使うことで、1つのライセンスでコンテンツのセットを復号することができるようになり、マルチビットレートの場合に便利です。 共通キーを作成するには、「ホスティングとキー作成」を参照してください。 |
無し |
保護のタイプがFlashAccessV4の場合、はい |
--content-id |
このコンテンツのコンテンツID。 共通キーと共に最終的なコンテンツ暗号化キーを作成するために使用されます。 |
入力ファイル名 |
任意 (FlashAccessV4 の場合のみ) |
--policy-file |
このコンテンツに使用するポリシーが含まれるファイルを指定します。 今のところ、このツールでは パッケージ化されたコンテンツにポリシーを1つだけ適用できます。 |
無し |
保護のタイプがFlashAccessV4の場合、はい |
--key-rotation-interval |
"FlashAccessV4"の保護でのキーローテーションの間隔。 キーを何秒後に変更するかを指定します。 0 や-1や無効な値を指定するとキーローテーションは無効化されます。 |
キーローテーション無し |
任意 (FlashAccessV4の場合のみ) |
--embed-leaf-license |
リーフライセンスを埋め込むか否か |
false |
任意(FlashAccessV4 の場合のみ) |
--license-server-cred- file |
指定されたlocationでコンテンツを保護するために使用されるライセンスサーバー保護資格証明書. |
無し |
embed-leaf-license がtrueならば、はい( FlashAccessV4 の場合のみ) |
--license-server-cred- pwd |
上で設定されたライセンスサーバー保護資格証明書のパスワード。 |
無し |
embed-leaf-license がtrueならば、はい( FlashAccessV4 の場合のみ) |
--key-file-path |
“Vanilla”暗号化のキーファイル(base-64形式のキー)のパス 共通キーを作成するには、「ホスティングとキー作成」を参照してください。 |
無し |
Vanilla方式の場合、はい |
--key-file-url |
“Vanilla”暗号化のキーファイル(base-64形式のキー)のURL 共通鍵を作成するには、「ホスティングとキー作成」を参照してください。 |
無し |
Vanilla方式の場合、はい |
--faxskey-server-url |
iOSクライアントへの鍵配送を処理するAdobe Access ServerのURL。 |
無し |
保護のタイプがFlashAccessV4の場合、はい |
--key-server-cert-file |
リモート鍵配送のキーサーバー の証明書 |
無し |
保護のタイプがFlashAccessV4の場合、はい |
コマンドでオプションを渡す代わりに、オプションが記述された設定ファイルをパッケージャーに渡すこともできます。設定ファイルとは、パッケージ化処理の設定を指定するために使用することができるXMLファイルです。
パッケージャーは、設定ファイルがユーザーから渡されたかどうかをチェックします。渡されていなければ、パッケージャーと同じディレクトリにhlspackager_config.xmlがないかチェックします。設定ファイルは必須というわけではありません。設定ファイルのフォーマットは以下の通りです:
<offline>
<input-file>/media/input-file.f4v</input-file>
<output-path>/media/http</output-path>
<media-target-duration></media-target-duration>
... other options...
</offline>
フラグメント化されたコンテンツは、サーバーのwebrootディレクトリに直接ホストすることができます。例えば、フラグメント化されたコンテンツをwebroot/myOfflineContent/ディレクトリ内に置いている場合、次のURLでそのコンテンツを再生することができます。
- http://server-name/myOfflineContent/prog_index.m3u8.
Vanillaコンテンツ向けのキー作成
Vanilla方式でコンテンツを暗号化する場合は、base-64形式のキーを入力ファイルとして使用します。base-64形式のキーを作成するには、以下に示すOpenSSLコマンドを実行します:
openssl rand -out keyfile.bin -base64 16
作成されたkeyfile.binファイルはbase-64のキーが入っており、コンテンツのフラグメント化に使用することができます。ホスティングするキーを作成するには、以下のコマンドを実行します:
openssl base64 -d -in keyfile.bin -out plain-keyfile.bin
plain-keyfile.binファイルはホスティングして鍵配送に使用することができます。
Adobe Accessコンテンツ向けのキー作成
base-64形式のキーを作成するには、以下に示すOpenSSLコマンドを実行します:
openssl rand -out keyfile.bin -base64 16
エラーコード
以下の表でパッケージャーが出すエラーコードを説明します:
エラーコード |
説明 |
例 |
1 |
入力ファイルが見つからないか、不正です。 |
間違っているか不正な入力ファイルのパスが指定されました。 |
2 |
入力ファイルのパラメーターがありません。 |
--input-fileパラメーターがありません。 |
3 |
入力ファイルが不正あるいは壊れています。 |
mp4ファイルが壊れています。 |
4 |
入力ファイルにアクセスできません。 |
入力ファイルが開けないかアクセスできません。 |
7 |
ディスク書き込みエラー。 |
m3u8やtsセグメントをディスクに書き込めません。 |
8 |
入力されたxmlファイルをパースできません。 |
パースの問題が発生しました。 |
9 |
無効なプログラムオプション。 |
コマンドラインが間違っていてパースできません。 |
10 |
無効な暗号化パラメーター。 |
ライセンスファイルが間違っているか、キーファイルが不正です。 |
12 |
システムの標準入出力エラー。 |
入力に問題が発生しました。 |
16 |
m3u8作成エラー。 |
m3u8ファイルを作成できません。 |
17 |
tsファイル作成エラー。 |
tsファイルを作成できません。 |
18 |
無効な目標長。 |
目標長が小さすぎるか大きすぎます。 |
19 |
保護方式が無効です。 |
"FlashAccessV4"か"Vanilla"以外の方式が指定された場合。 |
999 |
内部処理エラー |
- |
license-path要素を追加することで、ライセンスパスを追加できます。この要素にはAdobe Media Serverのライセンスディレクトリのパスを指定する必要があります。この値が明確に指定されていない場合、HDSもHLSもオフラインパッケージャーはtoolsディレクトリにあるということを考慮して、'../../'がライセンスパスとして仮定されます。設定ファイルのlicense-path要素で指定するパスは、絶対パスかオフラインパッケージャーのあるディレクトリに対する相対パスが指定できます。例えば:
<license-path>C:\Program Files\Adobe\Adobe Media Server 5\</license-path>
注:このライセンスの設定と制限は、f4fpackagerとhlspackagerの両方に適用されます。
最終更新日 2013/9/30