ご使用のサイトでAdobe Flashビデオを配信するには、様々な方法があります。サイトにFlashビデオを追加する前に、配信オプションを選択する必要があります。
Flash CS3 Professionalでは、次のいずれかの方法でオンデマンドビデオを配信できます。
ライブビデオを配信する場合は、ストリーミングを使用する必要があります。ライブビデオについて詳しくは、「配信オプションの詳細な比較」を参照してください。
さらに詳細な情報が必要な場合は、Chris Hockによる記事「Understanding the Difference Between Progressive Download and Streaming Video*」を参照してください。
Flash MXとFlash Player 6の登場以来、マルチメディアデベロッパーは、Flashオーサリングツールにビデオを読み込んでタイムライン上に配置することにより、SWFファイル内にビデオを埋め込むことができるようになりました。SWFファイルは、ビデオを完全に含む状態でパブリッシュされます。この方法を使用する場合、通常のWebサーバさえあればビデオを配信できます。
ただし、埋め込みビデオが推奨されるのは、Flash Player 5またはそれ以前のバージョンを使用しているビジターがビデオを視聴できるようにする場合、ビデオとFlashコンテンツを1つのファイルにカプセル化する必要がある場合、またはビデオクリップの長さが5秒未満である場合に限られます。これらの条件に該当しない場合、埋め込みビデオを使用する方法はお勧めできません。
埋め込みビデオを使用する方法にはいくつかのメリットがあります。たとえば、Flashタイムライン上のビデオフレームを個別に確認できることや、Flashデザインツールを使用してオーバーレイおよびインタラクションを作成できることなどです。
ただし、埋め込みビデオを使用する方法には次のような制約もあります。
これらの理由により、上記の特定のケースを除いて、埋め込みビデオを使用する方法は推奨されません。また、上記のケースに該当する場合でも、配置するビデオクリップの長さが非常に短く、ビデオの品質がそれほど重要でなく、ビデオコンテンツの更新頻度が低い場合にだけ使用するようにしてください。
Flash Player 7では、プログレッシブダウンロードと呼ばれる新しい手法が導入されました。この手法を使用すると、実行時にActionScriptコマンドを使用して、外部FLVファイルをSWFファイル内にフィードして再生することができます。具体的には、netConnectionオブジェクトとnetStreamオブジェクトをActionScript内で使用して、再生対象のFLVファイルを設定したり、「再生」、「一時停止」、(タイムコードへの)「シーク」、および「閉じる」の各ビヘイビアと特定のビデオファイルのバッファ時間およびサイズを制御したりできます。
この方法では、ビデオコンテンツ(FLVファイル)は他のFlashコンテンツやビデオ再生コントロールとは別の外部コンテンツとして保持されます。このため、SWFファイルを再パブリッシュすることなく比較的簡単にコンテンツを追加または変更できます。
また、Flash Professional(Flash MX Professional 2004以降)には、完全な機能を備えたFLV再生コントロールをFlashプロジェクトにすばやく追加するためのビデオコンポーネントが用意されています。Flash CS3 ProfessionalのFLVPlaybackコンポーネントは、FLVファイルのプログレッシブダウンロードとストリーミングの両方をサポートします。このコンポーネントは「スキンの適用」やカスタマイズが簡単であるため、ビデオプレーヤーをサイトのデザインに合わせることができます。詳しくは、Dan Carrによる記事「Skinning the ActionScript 3.0 FLVPlayback component*」を参照してください。
また、Flash CS3 Professionalには、メディアコンポーネントと共に使用して、プロジェクト内のビデオシーケンスとスライドの間に自動インタラクションを作成するためのビヘイビアのセットも用意されています。ActionScript 2.0を使用するようにファイルを設定している場合は、Flash CS3でこれらのビヘイビアを使用できます。ActionScript 2.0とビデオコンポーネントの使用方法について詳しくは、Flashのヘルプパネルでリファレンスガイドを参照してください。Flash Professional 8でビデオビヘイビアを使用する方法、またはFlash CS3 ProfessionalでActionScript 2.0ファイルと共にビデオビヘイビアを使用する方法について詳しくは、Dan Carrによる記事「Controlling Flash video with the FLVPlayback behaviors*」を参照してください。
外部プログレッシブFLVファイルを使用する方法には、埋め込みビデオを使用する方法と比べて次のような利点があります。
注意:サーバから直接ロードする場合、FLVファイルは必ずプログレッシブにダウンロードされます。ファイルのストリーミングを使用するには、Flash Media Serverが必要です。
完全性、一貫性および堅牢性が最も高い配信オプションは、Flash Media Server(以前のFlash Communication Server)を実行しているサーバからビデオおよびオーディオファイルをストリーミングする方法です。ストリーミングでは、各クライアントからビデオサーバに対して固定的な接続が確立されるため、配信されるビデオとクライアントのインタラクションが緊密に関連付けられます。この方法では、適切なサイズのビデオを配信するための帯域幅の検出、サービス品質の測定、統計情報の詳細な追跡と報告などの機能と、様々なインタラクティブ機能をビデオ体験と共に提供することができます。
プログレッシブダウンロードと同様に、ビデオコンテンツ(FLVファイル)は他のFlashコンテンツやビデオ再生コントロールとは別の外部コンテンツとして保持されます。このため、SWFファイルを再パブリッシュすることなく比較的簡単にコンテンツを追加または変更できます。さらに、ストリーミングの実行中はクライアントとサーバ間の接続が固定されるため、ユーザまたはアプリケーションからのフィードバックに応じてFLVコンテンツを変化させることができます。例えば、サービス品質の低下が検出された場合、ビットレートの低いビデオに切り替えることができます。
サーバハードウェアとFlash Media Serverソフトウェアの購入および保守にともなう支出や問題を回避したい場合は、Flash Video Streaming Serviceを使用することで、FlashビデオやMP3ファイルのストリーミングから得られるメリットを十分に享受することができます。これは、アドビ認定のコンテンツ配信ネットワークパートナーが、Flash Media Serverを冗長配置した負荷分散環境を通じて提供するホスティングサービスです。詳しくは、Adobe.comのFlash Video Streaming Serviceのページを参照してください。
Flash Media Server関連の新製品であるAdobeFlash Media Live Encoderには、プラグアンドプレイのカメラやマイクロフォンとの統合機能が用意されています。この機能を使用すると、オーディオおよびビデオをキャプチャしながらFlash Media Serverにストリーミングできます。ビデオのストリーミングおよびライブビデオのブロードキャスティングについて詳しくは、Flash Media Server(Flash Communication Server)デベロッパーセンターを参照してください。
Flashビデオの配信方法の特徴を比較したものを表2に示します。
| 埋め込みビデオ | プログレッシブFLV | ストリーミングFLV | |
|---|---|---|---|
| エンコーディング | Flashビデオの読み込みウィザードのデフォルトでは、Flash Player 8用のビデオはVP6ビデオコーデックでエンコードされ、Flash Player 7用のビデオはSorenson Sparkコーデックでエンコードされます。また、別の手段でエンコードしたFLVファイルを読み込んでFlashタイムライン上に配置することもできます(再エンコードする必要はありません)。 | FLVファイルは、各種の業務用編集およびエンコーディングアプリケーションからの書き出し時に、FLV QuickTime書き出しプラグインまたはFlash Professional 8のFlashビデオの読み込みウィザードを使用してエンコードします。また、スタンドアロンのFlash Video Encoderを使用してエンコードすることもできます。
注意:上記の方法でエンコードする場合、Flash Professional 8またはそれ以降が必要です。 |
プログレッシブFLVの場合と同じです。また、ストリーミングの帯域幅検出機能を使用してクライアントの接続を検出し、それに応じて適切なエンコードのビデオを配信できます。クライアントサイドのWebカメラまたはデジタルビデオ(DV)カメラのライブビデオフィードをキャプチャしたり、ライブエンコーディング変数をプログラムで制御することもできます。 |
| ファイルサイズ | ビデオおよびオーディオのストリームとFlashインターフェイスがSWFファイルに含まれるため、サイズの大きい単一のファイルになります。SWFファイルはファイル間での相互ロードが可能です。そのため、1つのビデオクリップを複数のファイルに分割することができます。 | SWFファイルとFLVファイルが分離されているため、SWFファイルのサイズが小さくなります。 | プログレッシブFLVの場合と同じです。 |
| タイムラインのアクセス | ビデオをFlashタイムラインに埋め込むと、個々のキーフレーム上にビデオが表示され、ステージ上の他のオブジェクトと同じようにビデオを取り扱うことができます。ビデオの個々のキーフレームに基づいてインタラクションを作成する場合に便利です。 | ビデオは実行時にのみ再生されます。個々のキーフレームはFlashのステージ上に表示されません。 | プログレッシブFLVの場合と同じです。 |
| パブリッシュ | Flashコンテンツをパブリッシュまたはテストするたびに、ビデオファイル全体を再パブリッシュします。ビデオファイルを変更した場合は、そのファイルをFlashタイムラインに手動で読み込み直す必要があります。 | FLVファイルは実行時にのみ参照されます。パブリッシュ時にビデオファイルを直接参照する必要がないため、埋め込みビデオの場合と比べてはるかに高速にパブリッシュできます。FLVファイルを更新または修正する際に、プロジェクトのSWFファイルを変更する必要はありません。 | プログレッシブFLVの場合と同じです。FLVファイルは仮想的な場所(SANやFlash Video Streaming Service CDNなど)から動的に取得できます。 |
| フレームレート | ビデオのフレームレートとSWFのフレームレートを同じにする必要があります。 | FLVビデオファイルのフレームレートとSWFファイルのフレームレートを同じにする必要がないため、ビデオとその他のFlashコンテンツを別々のタイミングで処理できます。 | プログレッシブFLVの場合と同じです。ライブビデオキャプチャでは、フレームレートをプログラムで制御できます。 |
| ActionScriptのアクセス | ビデオの再生および制御は、Flashタイムライン上でSWFコンテンツの再生を制御することにより行われます。Flash CS3 Professionalには、ActionScript 2.0ファイルを使用している場合にビデオとオーディオの再生を制御するためのビヘイビアがいくつか用意されています。 | netStreamオブジェクトをActionScript内で使用して、複数の外部FLVファイルに対して「ロード」、「再生」、「一時停止」および「シーク」の各操作を実行できます。 | プログレッシブFLVの場合と同じです。サーバサイドのActionScriptを使用して、ストリームの同期、サーバサイドのプレイリスト、クライアントの接続速度に合わせた適切な配信などの付加機能を提供することもできます。 |
| コンポーネント | ビデオ固有のコンポーネントはありません。 | メディアコンポーネント(Flash MX Professional 2004またはそれ以降)またはFLVPlaybackコンポーネント(Flash Professional 8またはそれ以降)を使用すると、外部FLVファイルを設定し、トランスポートコントロール(再生、一時停止、検索)と共に表示できます。 | メディアコンポーネント(Flash MX Professional 2004またはそれ以降)またはFLVPlaybackコンポーネント(Flash Professional 8またはそれ以降)は、Flash Media ServerまたはFlash Video Streaming Serviceからストリーミングされるビデオと共に使用できます。また、ストリーミングライブおよび多方向ビデオ用のFlash Media Serverコミュニケーションコンポーネントも使用できます。 |
| Web配信 | WFファイルはプログレッシブにダウンロードされます。ただし、ムービークリップ内に埋め込んだ場合は例外で、ビデオ全体がクライアントにダウンロードされ、メモリにロードされるまで再生が開始されません。 | FLVファイルはプログレッシブにダウンロードおよびキャッシュされ、ローカルディスクから再生されます。ビデオクリップ全体がメモリに収まる必要はありません。 | FLVファイルはFlash Media Serverからストリーミングされ、クライアントのコンピュータ上で再生されます。再生が終了した部分は直ちにメモリから破棄されます。 |
| パフォーマンス | オーディオとビデオの同期は、ビデオの再生開始から約120秒間しか維持されません。ファイル全体の長さは、再生用システムで使用できるRAM容量に制限されます。 | 埋め込みSWFビデオよりもパフォーマンスに優れ、サイズが大きく長いビデオを再生でき、オーディオとの同期も安定しています。イメージの品質が最も高く、再生用システムで使用できるハードディスク容量に制限されるだけです。 | Web配信のパフォーマンスが最も高く、要求に応じて最適なビットレートで必要な数のユーザにビデオを配信できます。イメージの品質は、リアルタイムで配信できるビットレートに制限されます。 |
| 用途 | 再生時間が短く(1分未満)、サイズが小さく(320×240未満)、フレームレートが低い(12フレーム/秒(fps))ビデオクリップ。 | 再生時間が長く、サイズが大きく(720×480以上)、フレームレートが高い(最大30fps)ビデオクリップ。 | 大量のビデオ、非常に長いビデオクリップ、およびライブの多方向ストリーミング(Webカメラでのチャットやライブイベントのブロードキャストなど)。 |
| 互換性 | Flash Player 6またはそれ以降(On2 VP6コーデックの場合はFlash Player 8またはそれ以降が必要)。 | Flash Player 7 for Sorenson Squeeze codec, Flash Player 8 for On2 VP6 codec.Flash Player 7(Sorenson Squeezeコーデックの場合)、Flash Player 8(On2 VP6コーデックの場合)。 | Flash Player 6またはそれ以降。 |