וידאו AVI (.avi)
Microsoft תקןAudio Video Interleave (AVI) היא מכולת מולטימדיה חשובה שהציגה Microsoft בשנת 1992, והיא משלבת זרמי שמע ווידאו להפעלה מסונכרנת.
בדיקה ומטא-נתונים
מערכות הפעלה ומנתחי קבצים מזהים קבצי AVI על ידי בדיקת רצף הבייטים הבינארי הראשוני:
חתימת כותרת ברמת הבייט (Magic Bytes)
מערכות הפעלה ומנתחי קבצים מזהים קבצי AVI על ידי בדיקת רצף הבייטים הבינארי הראשוני:
חתימת HEX (היסט 0):
52 49 46 46 ?? ?? ?? ?? 41 56 49 20ייצוג ASCII: RIFF????AVI
תקינה: Microsoft RIFF Specification / OpenDML Extension
מפרט טכני
| מבנה המכולה | מכולת מקטעים משולבים בתבנית Resource Interchange File Format (RIFF) |
| דחיסה | זרמים משולבים שתומכים ב-DivX, Xvid, Motion JPEG, נתונים גולמיים לא דחוסים ושמע MP3 |
| סדר בתים (Endianness) | סדר בתים Little-Endian (סדר הבתים של Intel x86) |
| מרחבי צבע | YUV 4:2:0, RGB וצבעי פלטה |
| ערוצים ומבנה | זרמי שמע בסטריאו ובריבוי ערוצים |
| ממדים מרביים | ללא הגבלה; הרחבת OpenDML AVI תומכת ב-4K ובזרמים בגודל כמה גיגה-בתים |
| שקיפות | נתמכת באמצעות זרמי וידאו RGBA לא דחוסים |
| הזרמה ופרוגרסיביות | מקטע האינדקס נמצא בסוף הקובץ; AVI אינו מתאים במיוחד להזרמה הדרגתית ברשת |
מטריצת השוואה טכנית: 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 |
מצבי השחתה נפוצים ומדריך שחזור הקסדצימלי (Hex)
נגן המדיה יכול להפעיל את הווידאו אך אינו יכול לדלג קדימה או אחורה, או מציג הודעת שגיאה על 'אינדקס פגום'.
גורם שורש: גוש אינדקס הסיום 'idx1' קוצץ או נמחק במהלך הורדה שנקטעה.
שחזור: בנה מחדש את האינדקס באמצעות DivFix++, VLC ('Build index then play'), או 'ffmpeg -i broken.avi -c copy fixed.avi'.
ניתוח אבטחה ווקטורי תקיפה נגד מנתחי פורמטים (parsers)
קבצי AVI מכילים היררכיות גושים מורכבות ותומכים באינספור קודקי וידאו ישנים ואלמוניים, מה שהופך מפנחים שאינם מוגנים בארגז חול לפגיעים לניצול פרצות במנתחים.
ווקטורי תקיפה ידועים
- גלישת חוצץ בזיכרון הדינמי (Heap buffer overflow) בניתוח גוש 'strh' (כותרת זרם) בנגני מדיה ישנים של חלונות.
- גלישת מספר שלם במהלך הקצאת מערך אינדקס עבור כותרות בעלות ספירת פריימים גדולה שהוכנו במזיד.
- קריאה מחוץ לגבולות הזיכרון בפענוח Motion JPEG בתוך מסנני DirectShow ישנים.
שיטות מומלצות להגנה: המר קבצי AVI לא מהימנים למכלי MP4 מודרניים ומבודדים טרם קליטתם.
היסטוריה ואבני דרך
יתרונות מרכזיים
- תמיכה שולחנית ישנה רחבה במיוחד בתוכנות מדיה של חלונות ועורכי וידאו.
- תומך בפריימים גולמיים לא דחוסים עבור סריקת סרטים בארכיון וניתוח וידאו מדעי.
- ארכיטקטורת שזירת זרמים פשוטה עם תקורה נמוכה של המעטפת.
מגבלות טכניות וחסרונות
- חסר תמיכה מובנית בתכונות מודרניות של מכולי וידאו כגון קצבי פריימים משתנים (VFR) ופרקים.
- אינו מתאים היטב להזרמה באינטרנט מכיוון שגוש האינדקס הראשי ('idx1') מאוחסן בסוף הקובץ.
- אין תמיכה מובנית בדפדפן וידאו ב-HTML5 ללא קידוד מחדש ל-MP4 או WebM.
עובדות טכניות מעניינות
- בתחילת שנות ה-2000, קבצי DivX ו-Xvid מסוג AVI היו הפורמט העיקרי ששימש רשתות שיתוף קבצים עמית לעמית (P2P).
- מפרט ה-AVI המקורי משנת 1992 לא יכול לעלות על 2 גיגה-בייט בשל מצביעי היסט קבצים של 32 סיביות.
- גוש ה-'idx1' בסוף קובץ AVI מפרט את היסט הבייטים של כל פרים ופרים לצורך דילוג וחיפוש.
שאלות טכניות נפוצות
מדוע אני לא יכול לנגן סרטוני AVI ישירות בדפדפני אינטרנט?
דפדפנים מודרניים מתקננים על MP4 (H.264/AV1) ו-WebM (VP9/AV1) מכיוון שמעטפות הקבצים שלהם ממוטבות לסטרימינג פרוגרסיבי. פורמט AVI חסר תכונות סטרימינג אינטרנטיות מובנות ואינו נתמך בתגית <video> של HTML5.
כיצד אוכל לתקן קובץ AVI שאינו מאפשר דילוג או גלילה (scrubbing)?
קבצי AVI מסתמכים על טבלת אינדקס בסוף הקובץ. אם היא חסרה או פגומה, נגנים אינם יכולים לבצע דילוג. טרנסקודד או יצירת אינדקס מחדש של הקובץ באמצעות ממיר הוידאו File2File.app משחזר את גלילת ציר הזמן המלאה.
מה ההבדל בין AVI לבין MP4?
AVI היא מכולת ותיקה משנת 1992, שתוכננה להפעלה מקומית במחשב. MP4 הוא תקן מודרני משנת 2001 שתומך בהזרמת אינטרנט, בפרקים, בקצב פריימים משתנה, בכתוביות ובדחיסה יעילה יותר.