Відео Flash (.flv)
Специфікація СтандартFlash Video (FLV): це формат контейнера, розроблений компаніями Macromedia та Adobe для передавання синхронізованого відео й аудіо через інтернет за допомогою плагіна Adobe Flash Player для браузера.
Аналіз та метадані
Операційні системи та аналізатори файлів ідентифікують файли FLV, перевіряючи початкову послідовність бінарних байтів:
Сигнатура заголовка на байтовому рівні (Magic Bytes)
Операційні системи та аналізатори файлів ідентифікують файли FLV, перевіряючи початкову послідовність бінарних байтів:
ШІСТНАДЦЯТКОВА СИГНАТУРА (ЗСУВ 0):
46 4C 56 01ПОДАННЯ В ASCII: FLV
Стандартизація: Специфікація формату файлу Adobe Systems Flash Video
Технічні характеристики
| Архітектура контейнера | Потоковий контейнер на основі тегів з чергованими тегами аудіо, відео та даних сценарію |
| Стиснення | Відео Sorenson Spark, VP6 або H.264 з аудіо MP3 або AAC |
| Порядок байтів (Endianness) | Порядок бітів та байтів від старшого до молодшого (Big-Endian) |
| Колірні простори | YUV 4:2:0 |
| Канали та структура | Моно- та стереоаудіо з відеопотоком |
| Максимальні розміри | Зазвичай до 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.app.
Аналіз безпеки та векторів атак на парсери
Через помилки пошкодження пам'яті в ActionScript і засобах розбору FLV плагін Flash Player історично був одним із найчастіше атакованих програмних компонентів.
Відомі вектори атак
- Використання звільненої пам'яті (use-after-free) і переповнення буфера динамічної пам'яті в засобі розбору ActionScript 3 FLV (наприклад, CVE-2015-5122).
- Некоректні пакети метаданих AMF0/AMF3 можуть спричинити пошкодження пам’яті в уразливих парсерах.
- Переповнення буфера в застарілих процедурах декомпресії Sorenson Spark.
Рекомендації щодо захисту: Не запускайте плагін Flash Player. Перекодовуйте архівні файли FLV безпосередньо у формат MP4 за допомогою FFmpeg в ізольованому середовищі.
Історичне походження та віхи
Основні переваги
- Історичний піонер масового вебвідео: завдяки FLV відео можна було відтворювати в браузері без окремих настільних програвачів.
- Підтримував прозорість альфа-каналу у відеопотоках за допомогою кодека 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 без втрати якості?
Сумісні потоки H.264 і AAC можна перепакувати з FLV у MP4 без повторного кодування; час залежить від файлу й пристрою.
Які кодеки спочатку використовували відео FLV?
Ранні файли FLV використовували Sorenson Spark (варіант H.263), а пізніше On2 VP6, перш ніж Adobe додала підтримку стандартного H.264 у 2007 році.