Media EncoderでH.264圧縮Flashビデオ

2009年1月14日(水)
林 拓也

新Media EncoderでF4V書き出しが可能に

 新しいMedia Encoderの新機能としては、バッチエンコーディングやAfter Effectsコンポーネントポジション、Premiere Proシーケンスデータの読み込みなどがありますが、今回は、H.264圧縮のFlashビデオファイルであるF4V形式の書き出しがサポートされたことに着目していきます。

 従来のMedia EncoderでもH.264圧縮のビデオは、MOV、MP4、3GPなどで書き出すことができました。Flashで利用する場合でも、Flash Player 9.0.115.0以降であればF4Vに限らず、これらのファイル形式でも利用することができました。つまり、H.264で圧縮されたビデオファイルのFlashでの利用はCS4製品のリリース以前から実現できていました。

 では、F4V形式で書き出せることのメリットはなんでしょうか。

 新しいMedia Encoderでは、F4VファイルにXMPデータとキューポイントの2種類のメタデータを埋め込むことができ、Flash Playerではそれらのデータを取得して利用できます(XMPデータの取得はFlash Player 10が必要)。

 XMPデータとは、「Extensible Metadata Platform」の略で、静止画・ビデオ・音声などの各種ファイルに埋め込むための汎用メタデータフォーマットとしてAdobeが提唱しているXMLベースのデータです(図1-1)。各種CS4製品では作成したファイルにXMPデータを埋め込むことができます。

 Media Encoderでは、F4V以外の各ビデオファイル形式にもXMPデータを埋め込むことができますが、Flash PlayerからXMPデータを取得して扱うことができるのはFLV形式とF4V形式の2種類となっています。

 また、キューポイントに関してはFlashビデオ固有のメタデータなので、FLVやF4V以外のファイルには埋め込むことさえできません。ビデオファイルに埋め込まれたキューポイントのデータは、コンテンツの制御に有効に使うことができる便利な情報なのでこれが利用できるのは大きなアドバンテージと言えるでしょう(図1-2)。

キューポイントとXMPデータの取得

 F4Vに埋め込まれたXMPデータを取得するには、onXMPData()コールバック関数を、キューポイントのデータを取得するにはonMetaData()コールバック関数を使います。

 XMPデータは、onXMPData()コールバック関数に渡される情報オブジェクトのdataプロパティにXMLデータとして格納され、キューポイントの情報はonMetaData()コールバック関数に渡される情報オブジェクトのcuePointsプロパティに格納されます。

 なお、onMetaData()コールバック関数の情報オブジェクトでは、キューポイントだけでなくビデオの長さ(秒)やフレームレート、ビデオストリームの縦横サイズなどの情報もそれぞれプロパティとして格納されています。

 onXMPData()、onMetaData()それぞれのコールバック関数で取得した情報を、ムービープレビュー時に出力パネルに表示するスクリプトコード(ActionScript 3.0)は次のようになります。再生するビデオファイル名は「sample.f4v」としています(図1-3)。

 実際にこのスクリプトを使って、XMPデータとキューポイントを埋め込んだビデオファイルを再生させて各情報を取得してみると、F4V/FLAはXMPデータを取得できるとする参考ページの記載とは異なる動作をします。Media Encoderで作成した場合、XMPデータはF4Vファイルからは取得することができましたが、FLVファイルからは取得できずXMPデータの内容は「undefined」となってしまいます(図1-4)。

 前回(http://thinkit.jp/article/764/1/)紹介したSoundBooth CS4でも、XMPデータやキューポイントを埋め込んだビデオファイルを書き出すことができますが、SoundBooth CS4から書き出したF4V/FLVファイルでは、ともにXMPデータを取得できませんでした。この場合F4VファイルではonXMPData()コールバック関数そのものが実行されず、FLVファイルではMedia Encoderで作成したときと同様に、コールバック関数は実行されるものの「undefined」となってしまいます。

 エンコードのためのエンジンは同じものが使われていそうですが、処理の過程で違いが生じているのかもしれません。制作環境によって変わるのかもしれませんが、Flash Playerの問題という可能性も考えられそうです。

 XMPデータに関してはさまざまな使い道が考えられますが、使用する際にはMedia Encoderを使い、F4V形式で書き出した上で入念な動作確認を行うのがよいでしょう。

【参考文献】

「Adobe ActionScript 3.0 * キューポイントとメタデータの使用」(http://help.adobe.com/ja_JP/ActionScript/3.0_ProgrammingAS3/WSD30FA424-950E-43ba-96C8-99B926943FE7.html)(アクセス:2008/12)

Flash オーサリングエンジニア,アドビ認定インストラクター,ロクナナワークショップ講師。各種Webコンテンツ制作や,少人数ハンズオントレーニングから大規模なセミナー講師など幅広く活躍中。各種学校のカリキュラム・教材製作をはじめ,ActionScriptに関する書籍も多数執筆。http://67.org/ws/instructor/hayashi.html

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています