AVI 動画 (.avi)
Microsoft 標準Audio Video Interleave(AVI)は、1992年に Microsoft によって導入された画期的なマルチメディアコンテナであり、同期再生のために音声ストリームと動画ストリームをインターリーブ(交互に配置)します。
調査とメタデータ
オペレーティングシステムやファイル解析ツールは、先頭のバイナリバイトシーケンスを検査することで AVI ファイルを識別します:
バイトレベルのヘッダーシグネチャ (マジックバイト)
オペレーティングシステムやファイル解析ツールは、先頭のバイナリバイトシーケンスを検査することで AVI ファイルを識別します:
16進数シグネチャ (オフセット 0):
52 49 46 46 00 00 00 00 41 56 49 20ASCII表現: RIFF....AVI
標準化: Microsoft RIFF Specification / OpenDML Extension
技術仕様
| コンテナアーキテクチャ | Resource Interchange File Format (RIFF) interleaved chunk container |
| 圧縮 | Interleaved streams supporting DivX, Xvid, Motion JPEG, raw uncompressed, and MP3 audio |
| バイトエンディアン | Little-Endian (Intel x86 byte order) |
| 色空間 | YUV 4:2:0, RGB, and palette colors |
| チャンネルと構造 | Stereo and multichannel audio streams |
| 最大寸法 | Unrestricted; OpenDML AVI extension supports 4K and multi-gigabyte streams |
| 透過性 | Supported via RGBA uncompressed video streams |
| ストリーミングとプログレッシブ | Index chunk placed at end of file; poorly suited for progressive web streaming |
技術比較マトリックス: AVI 対 競合製品
| 技術属性 | AVI (現在) | MP4 | MKV | MOV |
|---|---|---|---|---|
| ストリーミングへの適合性 | 不良。シークする前にファイル全体をダウンロードする必要がある | 優秀(FastStart / HLS / DASH) | 良好(セグメント化された EBML) | 優秀(FastStart) |
| HTML5 ウェブ再生 | モダンブラウザではネイティブ非対応 | すべてのブラウザで 100% 普遍的 | 部分的に対応(Edge / Chrome) | Safari / Apple デバイスでサポート |
| 字幕の埋め込み | ハックに依存(外部の .srt ファイルが必要) | ネイティブ時限テキスト(tx3g / VTT) | ASS/SSA/SRT の完全なネイティブサポート | ネイティブ Apple QuickTime 字幕 |
| 可変フレームレート | 厳密に固定フレームレート(CFR) | ネイティブ VFR サポート | ネイティブ VFR サポート | ネイティブ VFR サポート |
一般的な破損モードと16進数リカバリガイド
メディアプレイヤーで動画を再生できるが、シークや早送りできない、あるいは「破損したインデックス」と報告される。
根本原因: ダウンロード中断時に、末尾の 'idx1' インデックスチャンクが切り詰められたか削除されたため。
復旧: DivFix++、VLC(「インデックスを構築してから再生する」)、または 'ffmpeg -i broken.avi -c copy fixed.avi' を使用してインデックスを再構築します。
セキュリティ分析とパーサー攻撃ベクトル
AVI ファイルには複雑なチャンク階層が含まれ、数え切れないほどの不明瞭なレガシー動画コーデックをサポートしているため、サンドボックス化されていないデコーダはパーサの脆弱性の影響を受けやすくなっています。
既知の攻撃ベクター
- 従来の Windows メディアプレイヤーにおける 'strh'(ストリームヘッダー)チャンク解析のヒープバッファオーバーフロー。
- 悪意を持って作成された大きなフレーム数のヘッダーに対するインデックス配列割り当て時の整数オーバーフロー。
- レガシーの DirectShow フィルタ内の Motion JPEG 解凍におけるバッファ領域外読み取り。
防御的ベストプラクティス:
歴史的背景とマイルストーン
主な利点とメリット
- Windows のメディアソフトウェアや動画エディタ全体における、非常に幅広いレガシーデスクトップサポート。
- アーカイブフィルムのスキャンや科学的な動画解析のための、非圧縮の生フレームをサポート。
- コンテナのオーバーヘッドが少ない、シンプルなストリームインターリーブ構造。
技術的な制限とデメリット
- 可変フレームレート(VFR)やチャプターなど、現代の動画コンテナ機能のネイティブサポートが欠けている。
- マスターインデックスチャンク('idx1')がファイルの末尾に格納されているため、ウェブストリーミングには適していない。
- MP4 や WebM に再エンコードしない限り、HTML5 動画のブラウザネイティブサポートがない。
興味深い技術トリビア
- 2000年代初頭、DivX および Xvid の AVI ファイルは、ピアツーピアのファイル共有ネットワークで使用される主要なフォーマットでした。
- 1992年のオリジナルの AVI 仕様では、32ビットのファイルオフセットポインタが原因で 2 GB を超えることができませんでした。
- AVI ファイルの末尾にある 'idx1' チャンクには、シークのためにすべての単一フレームのバイトオフセットがリストされています。
よくある技術的な質問
ウェブブラウザで AVI 動画を直接再生できないのはなぜですか?
最新のブラウザは、プログレッシブストリーミングに最適化されたコンテナフォーマットを持つ MP4(H.264/AV1)および WebM(VP9/AV1)を標準として採用しています。AVI にはネイティブのウェブストリーミング機能がなく、HTML5 の <video> タグではサポートされていません。
シークやスクラブができない AVI ファイルを修正するにはどうすればよいですか?
AVI ファイルは、ファイルの末尾にあるインデックステーブルに依存しています。不完全な場合、プレーヤーはシークできません。File2File Video Converter でファイルをトランスコードまたは再インデックスすると、完全なタイムラインスクラブが復元されます。
AVI と MP4 の違いは何ですか?
AVI は、ローカルデスクトップ再生用に設計された 1992 年のレガシーコンテナです。MP4 は、ウェブストリーミング、チャプター、可変フレームレート、字幕、および優れた圧縮をサポートする 2001 年のモダンな標準規格です。