וידאו Flash (.flv)
Adobe תקןFlash Video (FLV) הוא פורמט מעטפת שפותח על ידי Macromedia ו-Adobe כדי לספק וידאו ושמע מסונכרנים דרך האינטרנט באמצעות תוסף הדפדפן Adobe Flash Player.
בדיקה ומטא-נתונים
מערכות הפעלה ומנתחי קבצים מזהים קבצי FLV על ידי בדיקת רצף הבייטים הבינארי הראשוני:
חתימת כותרת ברמת הבייט (Magic Bytes)
מערכות הפעלה ומנתחי קבצים מזהים קבצי FLV על ידי בדיקת רצף הבייטים הבינארי הראשוני:
חתימת HEX (היסט 0):
46 4C 56 01ייצוג ASCII: FLV
תקינה: Adobe Systems Flash Video File Format Specification
מפרט טכני
| מבנה המכולה | מכל הזרמה מבוסס תגיות, עם תגיות נתונים משולבות של אודיו, וידאו וסקריפטים |
| דחיסה | וידאו Sorenson Spark, VP6 או H.264 עם אודיו MP3 או AAC |
| סדר בתים (Endianness) | סדר סיביות ובתים גדול |
| מרחבי צבע | YUV 4:2:0 |
| ערוצים ומבנה | אודיו מונו וסטריאו עם זרם וידאו |
| ממדים מרביים | בדרך כלל עד 1080p |
| שקיפות | שקיפות בערוץ אלפא נתמכת בזרמי וידאו VP6 |
| הזרמה ופרוגרסיביות | תמיכה מובנית בהזרמה חיה באמצעות RTMP (פרוטוקול העברת הודעות בזמן אמת) |
מטריצת השוואה טכנית: FLV מול מתחרים
| תכונה טכנית | FLV (נוכחי) | MP4 | WEBM | MKV |
|---|---|---|---|---|
| תמיכת דפדפנים כיום | 0% (הוסר לחלוטין מכל הדפדפנים המודרניים) | נתמך בדפדפנים עדכניים רבים; הזמינות משתנה לפי גרסה ופלטפורמה | נתמך בדפדפנים עדכניים רבים; הזמינות משתנה לפי גרסה ופלטפורמה | דורש נגן מדיה שולחני |
| תקינה | מפרט קנייני של Adobe | תקן בינלאומי פתוח ISO/IEC | תקן פתוח W3C / WebM | תקן Matroska קוד פתוח |
| הפעלת וידאו במכשירים ניידים | אינה נתמכת באופן מקומי ב-iOS ובאנדרואיד מודרני | תמיכה חומרתית מקומית | תמיכה חומרתית מקומית | נתמך באמצעות VLC/אפליקציות צד שלישי |
| שקיפות אלפא | נתמכת באמצעות קודק On2 VP6 | מוגבלת (דורשת canvas או WebCodecs) | תמיכה מקומית בערוץ אלפא (VP9) | נתמכת בזרמי VP9/ProRes |
מצבי השחתה נפוצים ומדריך שחזור הקסדצימלי (Hex)
סרטון FLV שהורד מציג את משך הזמן הכולל כ-'לא ידוע' ולא ניתן לגרור בו את סרגל הזמן.
גורם שורש: היעדר תגית סקריפט 'onMetaData' המכילה את חותמות הזמן של פריימי המפתח וטבלאות גודל הקובץ.
שחזור: הזרק את טבלאות פריימי המפתח החסרות באמצעות 'yamdi' (Yet Another MetaData Injector) או המר ל-MP4 בעזרת File2File.app.
ניתוח אבטחה ווקטורי תקיפה נגד מנתחי פורמטים (parsers)
תוסף Flash Player היה היסטורית אחד מרכיבי התוכנה המותקפים ביותר בתולדות המחשוב בשל באגים של שחיתות זיכרון בניתוח קוד ActionScript וקבצי FLV.
ווקטורי תקיפה ידועים
- שימוש לאחר שחרור (Use-after-free) וגלישת זיכרון דינמי במנוע ניתוח ה-FLV של ActionScript 3 (לדוגמה CVE-2015-5122).
- חבילות מטא־נתונים פגומות מסוג AMF0/AMF3 עלולות לגרום לשיבוש זיכרון במנתחים פגיעים.
- גלישות חוצץ בשגרות פענוח ישנות של Sorenson Spark.
שיטות מומלצות להגנה: לעולם אל תריץ תוספי Flash Player מקוריים. המר קבצי FLV מאורכבים ישירות ל-MP4 באמצעות FFmpeg מבודד.
היסטוריה ואבני דרך
יתרונות מרכזיים
- חלוץ היסטורי של וידאו מקוון בכל מקום: איפשר הפעלת וידאו באינטרנט ללא נגנים שולחניים עצמאיים.
- תמך בשקיפות אלפא בזרמי וידאו באמצעות קודק On2 VP6.
- תקורת מנות נמוכה המותאמת להזרמת וידאו חי באמצעות RTMP ובהשהיה נמוכה.
מגבלות טכניות וחסרונות
- מיושן לחלוטין ואינו נתמך באף דפדפן אינטרנט מודרני בעקבות הוצאת Flash Player משימוש.
- דורש קידוד מחדש או החלפת מעטפת ל-MP4 לצורך הפעלה במכשירי iOS, אנדרואיד וטלוויזיות חכמות.
- חסר תכונות מעטפת מודרניות כגון שמע רב-ערוצי והזרמת קצב ביטים אדפטיבי מגיב.
עובדות טכניות מעניינות
- הווידאו הראשון שאי פעם הועלה ליוטיוב ('Me at the zoo' באפריל 2005) קודד וסופק כקובץ FLV.
- רצף הבייטים הקסדצימלי המזהה של Flash Video '46 4C 56 01' מאיית את האותיות ASCII 'FLV' ואחריהן גרסת מעטפת 1.
- סטיב ג'ובס פרסם את מכתבו הפתוח והמפורסם 'Thoughts on Flash' בשנת 2010, אשר האיץ את מעבר התעשייה מ-FLV ל-HTML5 MP4.
שאלות טכניות נפוצות
מדוע אינני יכול עוד לנגן קבצי FLV במחשב שלי?
חברת Adobe וכל דפדפני האינטרנט המרכזיים הפסיקו רשמית את התמיכה בנגן Flash בדצמבר 2020 עקב פרצות אבטחה. כדי לנגן קבצי FLV כיום, יש להשתמש בנגן המדיה VLC או להמיר אותם לפורמט MP4.
האם אני יכול להמיר FLV ל-MP4 ללא איבוד איכות?
אפשר להעביר זרמי H.264 ו-AAC תואמים מ-FLV ל-MP4 בלי לקודד מחדש; זמן העיבוד תלוי בקובץ ובמכשיר.
באילו קודקים השתמשו סרטוני FLV במקור?
קבצי FLV מוקדמים השתמשו ב-Sorenson Spark (גרסה של H.263) ולאחר מכן ב-On2 VP6, לפני שחברת Adobe הוסיפה תמיכה בפורמט H.264 הסטנדרטי בשנת 2007.