Відео Flash (.flv)
Специфікація СтандартFlash Video (FLV) - це формат контейнера, розроблений компаніями Macromedia та Adobe для доставки синхронізованого відео та аудіо через інтернет за допомогою плагіна браузера Adobe Flash Player.
Аналіз та метадані
Операційні системи та аналізатори файлів ідентифікують файли FLV, перевіряючи початкову послідовність бінарних байтів:
Сигнатура заголовка на байтовому рівні (Magic Bytes)
Операційні системи та аналізатори файлів ідентифікують файли FLV, перевіряючи початкову послідовність бінарних байтів:
ШІСТНАДЦЯТКОВА СИГНАТУРА (ЗСУВ 0):
46 4C 56 01ASCII-УЯВЛЕННЯ: FLV
Стандартизація: Специфікація формату файлу Adobe Systems Flash Video
Технічні характеристики
| Архітектура контейнера | Потоковий контейнер на основі тегів з чередованими тегами аудіо, відео та даних сценарію |
| Стиснення | Відео Sorenson Spark, VP6 або H.264 з аудіо MP3 або AAC |
| Порядок байтів (Endianness) | Порядок бітів та байтів від старшого до молодшого (Big-Endian) |
| Колірні простори | YUV 4:2:0 |
| Канали та структура | Моно- та стереoaудіо з відеопотоком |
| Максимальні розміри | Зазвичай до 1080p |
| Прозорість | Підтримується прозорість альфа-каналу у відеопотоках VP6 |
| Потокове та прогресивне завантаження | Рідна підтримка трансляцій у реальному часі за протоколом RTMP (Real-Time Messaging Protocol) |
Технічна матриця порівняння: FLV проти конкурентів
| Технічний атрибут | FLV (Поточний) | MP4 | WEBM | MKV |
|---|---|---|---|---|
| Підтримка у браузерах сьогодні | 0% (Повністю видалено з усіх сучасних браузерів) | 100% універсальна у всіх браузерах | 100% підтримка сучасними браузерами | Вимагає настільного медіаплеєра |
| Стандартизація | Проприєтарна специфікація Adobe | Міжнародний відкритий стандарт ISO/IEC | Відкритий стандарт W3C / WebM | Відкритий стандарт Matroska |
| Відтворення на мобільних пристроях | Не підтримується нативно на iOS та сучасному Android | Апаратна підтримка на рівні ОС | Апаратна підтримка на рівні ОС | Підтримується через VLC / сторонні програми |
| Альфа-прозорість | Підтримується за допомогою кодека On2 VP6 | Обмежена (потребує canvas або WebCodecs) | Рідна підтримка альфа-каналу (VP9) | Підтримується у потоках VP9/ProRes |
Типові режими пошкодження та посібник з відновлення в шістнадцятковому форматі
Завантажене відео FLV показує загальну тривалість як 'невідому' і не може бути перемотане.
Першопричина: Відсутність тегу сценарію 'onMetaData', що містить таблиці міток часу опорних кадрів та розміру файлу.
Відновлення: Введіть відсутні таблиці ключових кадрів за допомогою 'yamdi' (Yet Another MetaData Injector) або конвертуйте в MP4 за допомогою File2File.
Аналіз безпеки та векторів атак на парсери
Плагін Flash Player історично був одним із найбільш експлуатованих програмних компонентів в історії обчислювальної техніки через помилки пошкодження пам'яті в ActionScript та аналізі FLV.
Відомі вектори атак
- Використання після звільнення (use-after-free) та переповнення купи в механізмі аналізу ActionScript 3 FLV (наприклад, CVE-2015-5122).
- Створені пакети метаданих AMF0/AMF3, що викликають довічне виконання пам'яті.
- Переповнення буфера в застарілих процедурах декомпресії Sorenson Spark.
Захисні найкращі практики: Ніколи не запускайте рідні плагіни Flash Player. Перекодовуйте архівні файли FLV безпосередньо в MP4 за допомогою ізольованого у пісочниці FFmpeg.
Історичне походження та віхи
Головні переваги та плюси
- Історичний піонер всюдисущого онлайн-відео: уможливив відтворення вебвідео без автономних настільних плеєрів.
- Підтримував прозорість альфа-каналу у відеопотоках за допомогою кодека On2 VP6.
- Низькі накладні витрати на пакети, оптимізовані для трансляції живого відео RTMP з низькою затримкою.
Технічні обмеження та мінуси
- Повністю застарілий і не підтримується у всіх сучасних вебпереглядачах після припинення підтримки Flash Player.
- Вимагає перекодування або зміни контейнера на MP4 для відтворення на iOS, Android та смарт-телевізорах.
- Бракує сучасних функцій контейнера, таких як багатоканальне аудіо та адаптивний бітрейт-стрімінг.
Цікаві технічні факти
- Перше відео, коли-небудь завантажене на YouTube («Я в зоопарку» у квітні 2005 року), було закодоване та доставлене у вигляді файлу FLV.
- Послідовність магічних байтів Flash Video '46 4C 56 01' утворює ASCII-слово 'FLV', за яким слідує версія контейнера 1.
- Стів Джобс опублікував свій знаменитий відкритий лист «Думки про Flash» у 2010 році, який прискорив перехід індустрії від FLV до HTML5 MP4.
Поширені технічні запитання
Чому я більше не можу відтворювати файли FLV на своєму комп'ютері?
Adobe та всі основні вебпереглядачі офіційно припинили підтримку Flash Player у грудні 2020 року через вразливості безпеки. Щоб відтворювати файли FLV сьогодні, використовуйте медіаплеєр VLC або конвертуйте їх у формат MP4.
Чи можу я конвертувати FLV в MP4 без втрати якості?
Якщо файл FLV містить відео H.264 та аудіо AAC, File2File може виконати без втрат перепакування контейнера в MP4 за лічені секунди без перекомпресії відео.
Який кодек спочатку використовували відео FLAC (або FLV)?
Ранні файли FLV використовували Sorenson Spark (варіант H.263), а пізніше On2 VP6, перш ніж Adobe додала підтримку стандартного H.264 у 2007 році.