ADOBE®   MEDIA SERVER 5.0.3

デベロッパーズガイド


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

 

注意

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

 

オフラインでのパッケージ化

 

 

HDSのオフラインでのパッケージ化

ファイルパッケージャーは、オンデマンドメディアファイルを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.f4fsample.f4x、及びsample.f4m

 

コンテンツをLinux上でパッケージ化する

1       ターミナルウィンドウを開きます。

2       クリーンインストールされたLinux上では、変数LD_LIBRARY_PATHをファイルパッケージャーのライブラリが入っているディレクトリにセットします。

3       シェルプロンプトで、ツールの名前とオプションを入力します:

 

f4fpackager --input-file=sample.f4v --output-path=/sampleoutput

 

以下のファイルが出力されます:sampleSeg1.f4fsample.f4x、及びsample.f4m

 

マルチビットレートのコンテンツをパッケージ化する

マルチビットレートのコンテンツをストリーミングするには、1つのメディアを複数のビットレートでエンコードして、複数のメディアファイルを作成します。そしてファイルパッケージャーを使って各メディアファイルを一つ一つ処理します。これらのメディアファイルは、各ファイルの情報を記載した1つのマニフェストファイルを共有します。OSMFプレイヤーはこの情報を使って再生を行います。

 

マルチビットレートファイルのパッケージ化について

ファイルパッケージャーを実行する度に、ファイルパッケージャーは入力ファイルのファイル名が記載されたマニフェストファイルを作成します。--manifest-fileオプションを渡すと、その情報をファイルパッケージャーは作成するマニフェストファイルに追加します。例えば、以下のオプションで実行したとします:

 

--input-file=sample1.f4v

 

ツールは以下のファイルを作成します:sample1Seg1.f4fsample1.f4x、及びsample1.f4m

そして以下のコマンドを実行するとします:

--input-file=sample2.f4v --manifest-file=sample1.f4m

 

ツールはsample2Seg1.f4fsample2.f4xsample2.f4mというファイルを作成します。マニフェストファイルsample2.f4mにはsample2.f4vsample1.f4vについての情報が含まれています。

 

マルチビットレートのコンテンツのマニフェストファイルを作成するには、--manifest-fileオプションを渡して、前に処理されたファイルのマニフェストファイルを指定します。最初のファイルを処理する際には--manifest-fileオプションを渡してはいけません。

 

 

マルチビットレートのファイルをパッケージ化する

注:この例ではWindowsを使用しています。Linuxのコマンドは、「コンテンツをLinux上でパッケージ化するを参照してください。

 

1   いくつかのビットレートでメディアファイルをエンコードします。例えば150 kbps700 kbps1500 kbpsです。
この例ではsample1_150kbps.f4vsample1_700kbps.f4vsample1_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.f4fsample1_150kbps.f4x、及びsample1_150kbps.f4m

 

6   以下のコマンドを入力して2番目のファイルを処理します:

 

f4fpackager --input-file=sample1_700kbps.f4v --manifest-file=sample1_150kbps.f4m --bitrate=700

以下のファイルが出力されます:sample1_700kbpsSeg1.f4fsample1_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.f4fsample1_1500kbps.f4xsample1_1500kbps.f4m

マニフェストファイルsample1_1500kbps.f4mには、今回の入力ファイルからの情報とマニフェストファイルsample1_700kbps.f4mからの情報が入っています。sample1_700kbps.f4mファイルには、sample1_150kbps.f4vファイルとsample1_700kbps.f4vファイルについての情報が入っています。

 

8   ファイルを再生するには、sample1_1500kbps.f4mファイルのURLOSMFプレイヤーに渡します。このマニフェストファイルは最後に作成されたものなので、3つのファイル全てについての情報が入っています。

 

コンテンツをパッケージ化・暗号化する

パッケージ化とAdobe Accessで保護するための暗号化の両方を行うには、ファイルパッケージャーを使用します。

 

Adobe Accessには、Adobe® Access™ Server for Protected Streamingと呼ばれるAdobe Access SDKに基くライセンスサーバーの実装が入っています。Adobe Access Server for Protected StreamingHTTP Dynamic Streamingで使うために設計されています。Adobe Accessについての更なる情報は、Adobe Accessのドキュメントを参照してください。

 

 

共通キーを作成する

ファイルパッケージャーでコンテンツを暗号化するには共通キーファイルを作成する必要があります。共通キーファイルの中身は128バイトのランダムに生成されたデータです。ファイルパッケージャーはコンテンツIDと共にこのキーを使って、コンテンツ暗号化キーを作成します。

 

注:この基本キーは128バイトですが、最初の128ビット(16バイト)のみがキーの作成に使われます。

 

オープンソースツールであるOpenSSLAdobeのスクランブルユーティリティを使って、ランダムデータを作成して共通キーファイルを出力することができます。OpenSSLwww.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.f4vsample_1000kbps.f4vsample_1500kbps.f4v)をパッケージ化し、全てのファイルを同じマニフェストファイルに追加することができます。

 

このオプションが無ければ、ツールはFlash Media Manifest fileF4M)を作成します。

いいえ

無し

--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

ファイル中のデータを暗号化するかどうかを指定します。このオプションはFLVF4V/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

エラーコードが無効です。

 

HLSのオフラインでのパッケージ化

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無し
この場合は、m3u8に対しての相対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 ServerURL

無し

保護のタイプが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

ディスク書き込みエラー。

m3u8tsセグメントをディスクに書き込めません。

8

入力されたxmlファイルをパースできません。

パースの問題が発生しました。

9

無効なプログラムオプション。

コマンドラインが間違っていてパースできません。

10

無効な暗号化パラメーター。

ライセンスファイルが間違っているか、キーファイルが不正です。

12

システムの標準入出力エラー。

入力に問題が発生しました。

16

m3u8作成エラー。

m3u8ファイルを作成できません。

17

tsファイル作成エラー。

tsファイルを作成できません。

18

無効な目標長。

目標長が小さすぎるか大きすぎます。

19

保護方式が無効です。

"FlashAccessV4""Vanilla"以外の方式が指定された場合。

999

内部処理エラー

-

 

ライセンス発行の設定と制限(HDSとHLS)

license-path要素を追加することで、ライセンスパスを追加できます。この要素にはAdobe Media Serverのライセンスディレクトリのパスを指定する必要があります。この値が明確に指定されていない場合、HDSHLSもオフラインパッケージャーはtoolsディレクトリにあるということを考慮して、'../../'がライセンスパスとして仮定されます。設定ファイルのlicense-path要素で指定するパスは、絶対パスかオフラインパッケージャーのあるディレクトリに対する相対パスが指定できます。例えば:

 

<license-path>C:\Program Files\Adobe\Adobe Media Server 5\</license-path>

 

注:このライセンスの設定と制限は、f4fpackagerhlspackagerの両方に適用されます。

 

 

最終更新日 2013/9/30