Audio Video Interleave (.avi)
Microsoft 標準Audio Video Interleave (AVI) 是 Microsoft 於 1992 年推出的劃時代多媒體容器,它將音訊與影片串流交錯以達到同步播放。
檢查與中繼資料
作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 AVI 檔案:
位元組層級標頭簽章(檔案簽章)
作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 AVI 檔案:
十六進位簽章(偏移量 0):
52 49 46 46 ?? ?? ?? ?? 41 56 49 20ASCII 表示法: RIFF????AVI
標準化: Microsoft RIFF 規格 / OpenDML 擴充
技術規格
| 容器架構 | Resource Interchange File Format (RIFF) 交錯區塊容器 |
| 壓縮 | 支援 DivX、Xvid、Motion JPEG、原始未壓縮及 MP3 音訊的交錯串流 |
| 位元組序 | 小端序(Intel x86 位元組順序) |
| 色彩空間 | YUV 4:2:0、RGB 與色盤顏色 |
| 色版與結構 | 立體聲與多聲道音訊串流 |
| 最大尺寸 | 無限制;OpenDML AVI 擴充支援 4K 與多 GB 串流 |
| 透明度 | 透過 RGBA 未壓縮影片串流支援 |
| 串流與漸進式 | 索引區塊置於檔案結尾;不適合漸進式網頁串流 |
技術比較矩陣:AVI 對比競爭格式
| 技術屬性 | AVI (目前) | MP4 | MKV | MOV |
|---|---|---|---|---|
| 串流適用性 | 差;跳轉前需下載整個檔案 | 極佳 (FastStart / HLS / DASH) | 良好 (分割式 EBML) | 極佳 (FastStart) |
| HTML5 網頁播放 | 現代瀏覽器不支援原生播放 | 許多現今瀏覽器皆支援;可用性因版本與平臺而異 | 部分支援 (Edge / Chrome) | 支援 Safari / Apple 裝置 |
| 字幕嵌入 | 仰賴變通做法(需要外部 .srt 檔案) | 原生時間軸文字(tx3g / VTT) | 完整原生支援 ASS / SSA / SRT | 原生 Apple QuickTime 字幕 |
| 可變影格率 | 嚴格的固定影格率(CFR) | 原生 VFR 支援 | 原生 VFR 支援 | 原生 VFR 支援 |
常見損壞模式與十六進位修復指南
媒體播放器可以播放影片,但無法快轉、倒轉,或回報「損壞的索引」。
根本原因: 在下載中斷期間,結尾的「idx1」索引區塊遭到截斷或刪除。
修復: 使用 DivFix++、VLC(「先建立索引再播放」)或「ffmpeg -i broken.avi -c copy fixed.avi」重建索引。
安全性分析與解析器攻擊向量
AVI 檔案包含複雜的區塊階層,且支援無數冷門的舊版影片編解碼器,使得未受沙箱保護的解碼器容易受到解析器漏洞攻擊。
已知攻擊向量
- 舊版 Windows 媒體播放器在解析「strh」(串流標頭)區塊時發生堆積緩衝區溢位。
- 針對惡意製作的大影格數標頭,在配置索引陣列時發生整數溢位。
- 舊版 DirectShow 濾鏡在進行 Motion JPEG 解壓縮時發生越界讀取。
防禦最佳實務: 在進行處理之前,將不受信任的 AVI 檔案轉碼為現代的沙箱化 MP4 容器。
歷史起源與里程碑
1999DivX 壓縮將 AVI 轉變為網際網路電影分享的主流格式。
1996OpenDML 聯盟發布 AVI 2.0,解除 2 GB 的檔案大小限制。
1992Microsoft 隨 Windows 3.1 推出了 AVI 以及 Video for Windows。
主要優勢與優點
- 在 Windows 媒體軟體與影片編輯器中具備極為廣泛的舊版桌面支援。
- 支援未壓縮的原始影格,適用於底片掃描與科學影片分析。
- 簡單的串流交錯架構,容器額外負荷低。
技術限制與缺點
- 缺乏對現代影片容器功能(例如可變影格率 (VFR) 與章節)的原生支援。
- 非常不適合網頁串流,因為主要索引區塊「idx1」儲存在檔案結尾。
- 若未重新編碼為 MP4 或 WebM,瀏覽器便無法原生播放 HTML5 影片。
有趣的技術冷知識
- 在 2000 年代初期,DivX 與 Xvid AVI 檔案是點對點檔案分享網路所使用的主要格式。
- 由於 32 位元檔案位移指標的限制,最初的 1992 年 AVI 規格無法超過 2 GB。
- AVI 檔案結尾處的「idx1」區塊列出了每一個影格的位元組位移以便進行跳轉。
常見技術問題
為什麼我無法直接在網頁瀏覽器中播放 AVI 影片?
現代瀏覽器將 MP4(H.264 / AV1)與 WebM(VP9 / AV1)訂為標準,因為它們的容器格式已針對漸進式串流進行最佳化。AVI 缺乏原生網路串流功能,且 HTML5 <video> 不支援它。
如何修復無法快轉或拖曳進度的 AVI 檔案?
AVI 檔案依賴位於檔案結尾的索引表格。如果索引不完整,播放器將無法進行快轉或倒轉。使用 File2File.app 影片轉換器對檔案進行轉碼或重新建立索引,即可恢復完整的時間軸瀏覽功能。
AVI 與 MP4 有什麼不同?
AVI 是 1992 年為本機桌面播放而設計的舊版容器。MP4 是 2001 年的現代標準,支援網路串流、章節、可變影格率、字幕以及更優異的壓縮。