Audio Video Interleave拡張子.avi
MIMEタイプvideo/avi
video/msvideo
video/x-msvideo
タイプコード
Audio Video Interleave(オーディオ ビデオ インターリーブ)は動画用ファイルフォーマットである。 Windows標準の動画用ファイルフォーマット(コンテナ形式)で、AVIファイル、AVIコンテナなどと呼ばれている。拡張子は「.avi」である。一部の古いコーデックはWindows Media Playerで再生可能である。 マイクロソフトがApple ComputerのQuickTimeに対抗するために開発したAPI、Video for Windowsで対応している。 RIFFというフォーマットを利用し画像と音声を交互に織り交ぜながら(インターリーブ)格納する。 インデックスが最後にあるため、AVIファイルの内容が不完全な状態では再生が出来ず、修復を行わなければならない。 拡張子が「.divx」のDivX Media Formatは基本部分はAVIそのものである。 今となってはAVI自体は入れ物(コンテナ)となってしまった。現在ではいくつかの種類(後述)のコーデックでエンコードされた動画や音声のデータを格納できる。そのため再生には適切なコーデックを用意する必要があるが、ファイルの拡張子を見ただけではコーデックが何であるか判断できない[1]。しかし@media screen{.mw-parser-output .fix-domain{border-bottom:dashed 1px}}コーデックのダウンロード機能も進歩しAVIに格納できるコーデックはフルセットをワンクリックでダウンロードできるようになった[要出典]。 AVIを含むRIFFファイルは、バイナリのままでも可読性が高く構造を理解しやすい。また、AVIを扱うAPI(Video for Windows)をWindowsが提供しているため、対応ソフトウェアを開発しやすく、実際に多数のソフトウェアが公開されている。 AVIは1992年以前に策定された比較的古い形式であり、策定当初は問題とはならなかった次のような点が現在では欠点となってしまっている。 AVIコンテナに格納されたストリームデータは、再生時に一定間隔で先頭から順に取り出される。Bフレームがフレーム間予測において前方フレームを参照して符号化されていた場合、参照するPフレームが処理されて初めて復号可能となる。このため、BフレームをAVIコンテナに格納する際に、このフレーム間の参照関係を考慮しPフレームと順序を入れ替えて格納することになる。こうして格納されたデータは、データを復号し、復号された画像を表示するという作業を特定のタイミングで繰り返すことで動画として再生される事になるが、データの復号と表示の間隔はフレームレートから計算するため同一のタイミングとなる。その結果、復号した画像がそのままの順序で表示される事になり、部分的に逆再生を行っているかのような動画となってしまう(たとえば、MP4コンテナではデータ復号・復号画像の合成・表示のタイミングを個別に指定できるためこの問題は発生しない)。 しかし、近年のデコーダは入力されたデータに対し本来の表示順序通りにフレームを出力するよう改良されているため、利用上の問題はなくなっている。ただし、この方法を用いたデコーダでは最初のIフレームが他のフレームの2倍の表示時間となり、最終フレームは表示されないという副作用が発生する。この副作用についても、Packed-bitstreamと呼ばれる特殊なストリームフォーマットを用いることで解消した例がある(Xvid、DivXがサポートしている)。以上の様に、コーデック側の工夫によってBフレームは問題なく利用可能となっているが、AVIコンテナ自体にBフレームを正確に扱う為の情報が不足しているため、今後も新しい映像圧縮技術をAVIで扱えるかどうかはコーデック側に委ねられたことになる。
概要
主な特徴
欠点
ストリーミング配信用途には不向き。
AVI1.0では2GBを超えるファイルを作成できない(AVI2.0(OpenDML
データが個別のタイムスタンプを保持できない。
映像の可変フレームレート(VFR)に対応していない(擬似的な方法での実現例はある)。
Bフレーム
Bフレームの表示不都合