オンデマンド(録画済み)ビデオをWebページに追加するには、ビデオを用意してエンコードする必要があります。その際には、Adobe Flashビデオ(FLV)形式への変換を行います。
このセクションでは、オンデマンドビデオのエンコード方法について説明します。また、Flashビデオのエンコード形式に関する背景知識や、ビデオをキャプチャする際に最良の結果を得る方法についても説明します。
このセクションでは、FLV以外の形式で保存されたビデオがすでに用意されていることを前提に説明を進めます。よく使われているビデオ編集ツールの多くは、デジタルビデオカメラからビデオを直接キャプチャする機能を備えています。ビデオのキャプチャに関するヒントについては、「ビデオキャプチャで良好な結果を得る方法」を参照してください。
既存のビデオをFLV形式に変換(エンコード)する方法について詳しくは、この後の「Flashビデオ(FLV)ファイルのエンコーディングと作成」セクションを参照してください。
ライブビデオをキャプチャおよびパブリッシュするには、Adobe Flash PlayerおよびMacromedia Flash Media Server(以前のFlash Communication Server)を使用します。詳しくは、Flash Media Server(Flash Communication Server)デベロッパーセンターを参照してください。
Flashには、ビデオクリップをFLV形式にエンコードするためのビデオエンコーディングソリューションがいくつか用意されています。
Flashビデオの読み込みウィザードでは、読み込み時にビデオクリップをFlashビデオ(FLV)形式にエンコードできます。ただし、ビデオの読み込みウィザードには、一度に1つしかビデオクリップをエンコードできないという制限があり、エンコードの処理には高い負荷や長い時間がかかります。
ビデオベースのコンテンツを広範囲に操作する場合に備えて、Flash CS3 Professionalには、Flash CS3 Video EncoderおよびQuickTime Exporterが用意されています。
Flash CS3 Video Encoderを使用すると、ビデオクリップのバッチ処理が可能になり、ワークフローを中断することなく、複数のクリップを一度にエンコードできます。Encoderでは、ビデオおよびオーディオコンテンツのエンコーディングオプションを選択できるだけでなく、エンコードするビデオクリップにキューポイントを埋め込み、切抜きとカットコントロールを使用してビデオを編集できます。
詳しくは、Flash CS3 Video Encoderアプリケーションのオンラインヘルプを参照してください。
注意:Flashビデオの読み込みウィザードおよびFlash CS3 Video Encoderでは、エンコーディングとキューポイントの設定をXMLファイルに書き出して、別のビデオ作成作業で再利用することができます。
Adobe Flash CS3 ProfessionalとApple QuickTime 6.1.1がインストールされているコンピュータでは、FLV QuickTime書き出しプラグインがサポートしているビデオ編集アプリケーションから、このプラグインを使用してFLVファイルを書き出すことができます。書き出したFLVファイルは、その後Flashに直接読み込んでFlashドキュメント内で使用できます。
FLV書き出しプラグインは次のビデオ編集アプリケーションをサポートしています。
FLV QuickTime書き出しプラグインを使用して、Flash CS3 Video Encoderまたはビデオ編集アプリケーションからFLVファイルを書き出すと、FlashドキュメントでFLVファイルを操作するプロセスを大幅に効率化できます。FLV書き出しプラグインでは、ビデオおよびオーディオコンテンツを書き出すときに、フレームレート、ビットレート、品質などのエンコーディングオプションを選択できます。FLVファイルはFlashに直接読み込むことができ、読み込み後にビデオをエンコードし直す必要はありません。
Flash CS3 Video Encoderのデフォルトでは、Flash Player 8またはそれ以降で使用する場合はOn2 VP6ビデオコーデックでエンコードされたビデオを書き出し、Flash Player 7で使用する場合はSorenson Sparkビデオコーデックでエンコードされたビデオを書き出します。コーデックとは、エンコード中のビデオファイルの圧縮方法と再生中のビデオファイルの解凍方法を制御する圧縮/解凍アルゴリズムです。ビデオを使用するFlashコンテンツを作成する場合は、VP6ビデオコーデックが推奨のビデオコーデックです。VP6では、小さいファイルサイズを維持しながら、最善の組み合わせのビデオ品質を得ることができます。
Flashコンテンツで(プログレッシブダウンロードまたはFlash Media Serverのストリーミング機能を使って)VP6エンコードのFlashビデオを動的にロードする場合、ユーザがバージョン8以降のFlash Playerを使ってコンテンツを再生する限り、Flash Player 9用のSWFを再パブリッシュする必要はありません。VP6ビデオをFlash SWFバージョン6または7にストリーミングまたはダウンロードし、ユーザがバージョン8以降のFlash Playerを使ってコンテンツを再生することで、Flash Player 9用のSWFファイルを再作成する必要がなくなります。
注意:VP6ビデオのパブリッシュと再生の両方をサポートしているのは、バージョン8以降のFlash Playerだけです。
| コーデック | コンテンツ(SWF)のバージョン(パブリッシュするバージョン) | Flash Playerのバージョン(再生に必要なバージョン) |
|---|---|---|
Flash Playerのバージョン(再生に必要なバージョン) |
6 | 6、7、8、9 |
| 7 | 7、8、9 | |
On2 VP6 |
6 | 8、9 |
| 7 | 8、9 | |
| 8 | 8、9 | |
| 9 | 9 |
エンコーダの効率には、元になるビデオの物理的な特性だけでなく様々な要素が影響し、ひいてはビデオ再生時のユーザエクスペリエンスに関係してきます。エンコーディング処理において重要な意味を持つ要素は、ソース品質とフレームモーションの2つです。
ビデオのソース品質は、ビデオカメラの録画ボタンを押した瞬間に決まります。高品質のソースビデオを作成し、圧縮後の最終的なビデオの品質を最大限に高めるために役立つ基本的なガイドラインを次に示します。
カメラが揺れないように三脚を使用します。カメラが安定していないと、ビデオのイメージの大部分が動くことになり、したがってフレームごとに値が変化するピクセルの割合が高くなります。カメラをしっかりと設置すれば、フレームごとに値が変化するピクセルの数を減らすことができ、圧縮率を高く(データレートを低く)した場合の品質が向上します。
効果的なライティングテクニックを使用します。ハイエンドのカメラを使用し、三脚で固定したとしても、光量が不足していればイメージの品質はやはり低くなります。低光量フィルタや光量ゲインフィルタを使用すると、イメージにビデオノイズが生じます。このノイズはフレームごとに異なるため、コーデックでの圧縮時に良好な品質を得ることが難しくなり、ビデオノイズを補うために、許容できる最大限(またはそれ以上)のデータレートを使用する必要に迫られる可能性があります。
できるだけ高性能のカメラを使用します。低品位のカメラ、特に、アナログ信号を磁気テープ(VHS、Hi-8など)に記録するタイプのアマチュア用の機器では、録画したビデオに非常に多くのアナログノイズが混入します。デジタルカメラの場合も、ムービーモードでは画質に制約があり、ビデオクリップのノイズは概して多くなります。たとえ三脚で固定し、最高のライティングで撮影したとしても、カメラの性能によるノイズは避けられません。
与えられた条件の中で最善を尽くします。ハイエンドのデジタルカメラ、デジタルBetacamカムコーダおよび35mmフィルムカメラでは、ライティングが良好でカメラを三脚に固定していれば、明瞭なイメージが得られます。そのような場合には圧縮率も最適となり、低いデータレートと高い画質を両立できます。とはいえ、業務用の機器、三脚および最高のライティング状態をいつも用意できるわけではありませんが、ビデオソースの品質がよいほど、また、ソースに含まれるノイズが少ないほど、より低いデータレートで高品質の再生用ファイルを作成できるということを常に意識する必要があります。
ファイルをエンコードする際の元データには、可能な限り非圧縮形式を使用します。圧縮済みのデジタルビデオ形式をFLV形式に変換すると、圧縮時に使用したエンコーダに起因するビデオノイズが混入する可能性があります。別のコンプレッサによってすでに適用されているエンコーディングアルゴリズムにより、ビデオの品質、フレームサイズおよびレートはすでに低下した状態になっています。また、そのコンプレッサに特有のデジタル処理によるノイズが含まれている可能性もあります。そのようなノイズはFLVのエンコーディング処理に影響し、場合によっては、より高いデータレートを使用しないとファイルの再生品質を確保できなくなることもあります。
フレームモーションも、エンコーディング処理への影響を考慮する必要がある要素です。これは、あるフレームと別のフレームの間で変化するピクセルの割合のことです。ピクセルの変化は、人物や物体の動き、カメラエフェクトや後処理エフェクトによって生じます。
ビデオクリップ内のモーションが大きいほど、より多くの情報をエンコーダで圧縮する必要があります。動きの比較的少ないクリップでは(話す人物の顔など)、フレーム間のピクセルの変化はさほど大きくありません。ビデオコンプレッサは、何らかの方式に基づいてフレームを削除してから、まったく圧縮していない一連のフレームをエンコードします。それらの非圧縮フレーム(キーフレーム)は、削除したフレームを再生時に計算して「再構築」するために使用されます。
オンデマンドビデオをエンコードする際は、様々な要素のバランスをとる必要があります(モーションの再現性、ファイルサイズ、目標帯域幅、フレームレート、キーフレーム間隔、ビデオのピクセル寸法など)。
こうした要素のいくつかについては、Flashビデオのエンコード時に値を指定できます。また、このセクションではいくつかの設定項目について、一般的な用語を使って説明しています。その他の設定に関する技術について詳しくは、「ビデオ標準の概要」を参照してください。
様々な設定に使用する具体的な値について詳しくは、Kevin Towesによる記事「Encoding Best Practices for Prerecorded Flash Video*」を参照してください。この記事には、推奨される設定の一覧表*があります。
ビデオをインターネット配信用のFlashビデオに圧縮する際の参考になる一般的なガイドラインを次に示します。
ビットレートとは、1秒間に転送されるデータの量です。Flashビデオをエンコードする際には、エンコード処理で使用するビットレートを指定します。ビットレートは視聴者の環境に応じて選択する必要があります。例えば、大半のビジターが56kbpsのモデムを使用すると考えられる場合、2Mbpsのビットレートでエンコードしたビデオは提供できません。
Flashビデオは、一連のキーフレーム(ビデオから一定間隔で抽出したフルフレームの非圧縮イメージ)としてエンコードされます。各キーフレームの後には、キーフレームのピクセルを変更してその次のキーフレームとの間にデルタフレームを生成するために使用される情報が配置されます。再生時にキーフレームを基にしてデルタフレームを再現する処理は、デコーダによって行われます。
キーフレーム間隔とは、あるキーフレームから次のキーフレームまでの間にあるデルタフレームの数です。キーフレーム間隔を大きくするほど、削除したフレームをデコーダで再現する処理は困難になります。また、キーフレーム間隔があまりにも大きい場合、データレートが不足し、十分なビットデータを圧縮および送信できなくなることがあります。したがって、動きの激しいビデオクリップでキーフレーム間隔を大きくとると、視聴者には画質が非常に低く感じられます。
視聴者のシーク操作やスクラブ操作を認めるような形でFlashビデオのコンテンツを提供する場合、再生中にストリームが早送りされるため、キーフレームは特に重要となります。
注意:ビデオで正確なシークやスクラブを可能にするには、ストリームの配信にFlash Media ServerまたはFlash Video Streaming Serviceを使用する必要があります。プログレッシブビデオ内の特定の位置へのシークを可能にするには、各位置を示すナビゲーションキューポイント(タイムコード)をエンコード時に埋め込む必要があります。ナビゲーションキューポイントを埋め込んだ場合、エンコーダは指定されたタイムコードの位置にキーフレーム全体を配置します。これは、正確なシークを可能にするために必要な処理です。