Flash Video
Flash Video
Flash Video(フラッシュ ビデオ)は、主にFlash Player 6以降を利用してインターネット上で動画を配信するために利用されるコンテナ型のファイルフォーマットで、元はマクロメディアが開発していたものを、アドビシステムズ(現アドビ)が会社ごと買収した。
Flash Videoは広範囲で利用可能なFlash Playerとウェブブラウザのプラグインや、サードパーティーによるプログラム等を通じて、ほとんどのオペレーティングシステムで観ることができた。作成には、FFmpegなどを使う。
Adobe Flash(旧Macromedia Flash)ではFlash Videoを他のメディアタイプと同様に扱うことができ、ファイル内の他のオブジェクトと同様に重ね合わせ、スクリプト処理、制御を行うことができる。
Flash VideoはSWFファイルの内部に埋め込まれる場合もある。なお、アドビによって定義され、Flash Playerが対応している動画ファイルフォーマットには異なる「FLV」と「F4V」の2つが存在する。FLVファイル内の動画および音声のデータはSWFファイルと同じ方法でエンコードされる。後者のF4VファイルフォーマットはISOベースのメディアファイルフォーマットを基にしており、これはFlash Player 9の「update 3」以降で対応を開始した。
Flash Videoコンテナフォーマットそのものが開かれる際に利用される圧縮形式のほとんどは、特許によって保護されており、一般にはSorenson SparkまたはVP6コーデックによって映像データがエンコードされている。
Flash Videoの普及以前、HTML上での動画表現ではWindows Media Video、QuickTimeムービー、Real Player、DivXなどが利用されていたが、ユーザーはファイルのコーデック毎に不安定なプラグインやプレーヤーのインストールが必要だった。
そんな中、2002年のFlash MX(バージョン6)からFlash Video(Sorenson H.263の調整版)がサポートされた。当時リッチコンテンツの主流でシェアが高かったFlashプラグイン上で再生・表示できることが大きな利点となり、2005年以降、YouTube、Googleビデオ、ニコニコ動画などの大手動画投稿サイトでFlash Videoフォーマットが採用されたことで、インターネット上での動画再生のインフラ構築にも大きく貢献をした。Yahoo! Video、ロイターを始めとした多くのニュース提供元などで次々に採用された。
Flash VideoはWeb上における埋め込み動画の形式として、すぐにその地位を確立し、これにより従来のテキストと静止画ベースであったインターネットインフラが動画ベースへとシフトし、Webの表現方法が革新される一因となった。
しかし、2010年代に入るとHTML5の登場とAdobe Flashの終了決定に伴い、これらはHTML5に移行した。
FLVファイルフォーマットはFlash MX (Flash Player 6) から規定され、映像コーデック「Sorenson Spark(H.263派生)」、音声コーデック「PCM」「ADPCM」「MP3」「Nellymoser」に対応した。最新のFlash PlayerではH.264の映像とHE-AACの音声にも対応している。
その後、Flash Player 8から、より高画質な映像を扱えるOn2テクノロジー社の映像コーデック「VP6」を追加。同時にVP6を利用して映像のアルファチャンネルを保持できる「VP6 with alpha channel」にも対応した。また、映像コーデック「ScreenVideo」「ScreenVideo v2」にも対応した。
Flash Player 9 update 3 (9,0,115,0) からは更に映像コーデック「AVC (H.264)」、音声コーデック「AAC」に対応したが、アドビ社は「H.264/AVCとAACをフルに活用したい場合はFLVではなくF4Vファイルフォーマットの利用を推奨する」としている。また、同バージョンではHD映像用のVP6コーデックの新たなプロファイル「VP6-S」にも対応。従来のVP6との再生互換性を保ちつつ、低データレートかつ低負荷でのHD映像再生をサポートしている。なお、これにともない従来のVP6は「VP6-E」プロファイルと呼ばれている。
また、Flash Player 10からは音声コーデック「Speex」に対応している。
F4Vファイルフォーマットは、従来のFLVファイルフォーマットとは別にFlash Player 9 update 3から規定されたフォーマットであり、「ISO/IEC 14496-12: ISO base media file format」(MPEG-4 Part 12) をベースとして規定されている。F4Vがサポートする映像コーデックは「H.264/AVC」、音声コーデックは「MP3」「AAC」のみとなっているが、上記の通りH.264/AVCとAACをフルに活用できるように設計されており、H.264/AVCとAACを扱う場合は、FLVではなくF4Vの利用が推奨されている。
また、2007年8月20日、開発元のアドビシステムズはFlash Player 9 betaからFlash VideoとしてMPEG-4 (H.264, AAC, HE-AAC) をサポートする予定であることを発表、2007年12月3日にリリースされたFlash Player 9 update 3 (9,0,115,0) から正式に対応した。これは従来のFLVコンテナとは別に、H.264/AVC映像とAAC音声を含んだMPEG-4派生のコンテナフォーマットの再生をある程度サポートするということであり、MP4、M4A、MOV、MP4V、3GP、3G2といったコンテナの再生がサポートされている。F4Vコンテナもその1つと言える。
エンコードにはAdobe Flashに含まれているエンコーダ以外にも、VP6コーデックでFLVファイルへのエンコードをサポートしているOn2 Flix, Sorenson Squeezeなどサードパーティー製の製品も使用される。書き出すためのMac OS X QuickTime用コーデックがAdobe Flashに付属するため、Mac OS Xならば、QuickTimeを利用するアプリケーション群全てで書き出し等が可能である。なお、FLVファイルは1ファイルあたり1つのビデオと1つのオーディオストリームに制限される。
また、FLVファイルはFLV ExtractやHugFlash等のフリーウェアを用いて無劣化でAVIやMOV等に変換することが可能(器であるコンテナフォーマットを換えるだけであるため)。
ストリーミングにはAdobe Flash Media Server(旧Macromedia Flash Communication Server)を利用したRTMP (RTMPT/RTMPS) プロトコルが使用されるが、通常のHTTPプロトコルを利用可能のためFlash Videoのストリーミングとして後者が多く用いられる(厳密にはストリーミングではなくプログレッシブダウンロードでありウェブブラウザのキャッシュに保存したファイルを元に再生する。キャッシュが残っている場合はページ移動時の再読み込みが速くなる)。
なお、RTMPプロトコルの仕様書は現在Adobeのサイト上より入手することが可能。一方、RTMPの仕様書が公開される以前よりRed5というオープンソースプロジェクトにより解析が進められており、無料で使用できるFlash Videoストリーミングサーバが提供されている()。
FLVファイルをDirectShowなどで再生する場合は、FourCCとして「FLV1」(Sorenson Spark)、「FLV4/VP6F」(On2 VP6) がよく用いられる(FFmpeg、ffdshow、FLV Splitter等)。
Video: Sorenson H.263 (FLV1), On2 VP6 (FLV4), Screen video, H.264
Audio: MP3, ADPCM, Linear PCM, Nellymoser Asao Codec, Speex, AAC, HE-AAC, G.711(システム内部用に予約)
Video: H.264
Images (still frame of video data): GIF, PNG, JPEG
Audio: AAC, HE-AAC, MP3
上記および下記、AACと書かれた物は、AAC-Main, AAC-LC, AAC v1, AAC v2, HE-AAC v1(AAC+), HE-AAC v2に対応している。
h264H.264とAACを使う場合、FLV形式ではいくつかの制約事項があるため、プレイヤー開発者は新しいF4V形式を使うことを強く推奨する。