Видео Flash (.flv)
Adobe СтандартFlash Video (FLV) е контейнерен формат, разработен от Macromedia и Adobe за предаване на синхронизирани видео и аудио потоци в мрежата чрез плъгина за браузър Adobe Flash Player.
Проверка и метаданни
Операционните системи и файловите анализатори идентифицират FLV файлове чрез проверка на началната двоична байтова последователност:
Байтов подпис на заглавката (сигнатурни байтове)
Операционните системи и файловите анализатори идентифицират FLV файлове чрез проверка на началната двоична байтова последователност:
HEX ПОДПИС (ОФСЕТ 0):
46 4C 56 01ASCII ПРЕДСТАВЯНЕ: FLV
Стандартизация: Adobe Systems Flash Video File Format Specification
Технически спецификации
| Контейнерна архитектура | Поточен контейнер с тагове за преплетени аудио-, видео- и скриптови данни. |
| Компресия | Видео Sorenson Spark, VP6 или H.264 с аудио MP3 или AAC. |
| Поредност на байтовете (Endianness) | Битове и байтове в ред от старшия към младшия (Big-Endian). |
| Цветови пространства | YUV 4:2:0 |
| Канали и структура | Моно и стерео аудио с видеопоток. |
| Максимални размери | Обичайно до 1080p. |
| Прозрачност | Видео потоците с кодек VP6 поддържат прозрачност чрез алфа канал. |
| Поточно предаване и прогресивно зареждане | Вградена поддръжка на RTMP (протокол за съобщения в реално време) за предаване на живо. |
Техническа сравнителна матрица: FLV спрямо конкуренти
| Технически атрибут | FLV (Текущ) | MP4 | WEBM | MKV |
|---|---|---|---|---|
| Поддръжка от браузъри днес | 0% (Напълно премахната от всички съвременни браузъри) | Поддържа се от много актуални браузъри; наличността зависи от версията и платформата. | Поддържа се от много актуални браузъри; наличността зависи от версията и платформата. | Изисква настолен медиен плеър |
| Стандартизация | Проприетарна спецификация на 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.
Анализ на сигурността и вектори на атака към парсера
Плъгинът 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 ('Me at the zoo' през април 2005 г.), беше кодирано и доставено като FLV файл.
- Магическата байтова последователност на Flash Video '46 4C 56 01' изписва в ASCII 'FLV', последвано от версия 1 на контейнера.
- Стив Джобс публикува известното си отворено писмо 'Мисли за Flash' през 2010 г., което ускори прехода на индустрията от FLV към HTML5 MP4.
Често задавани технически въпроси
Защо вече не мога да възпроизвеждам FLV файлове на моя компютър?
Adobe и всички основни уеб браузъри официално спряха поддръжката на Flash Player през декември 2020 г. поради уязвимости в сигурността. За да възпроизвеждате FLV файлове днес, използвайте VLC media player или ги конвертирайте в MP4.
Мога ли да конвертирам FLV в MP4 без загуба на качество?
Съвместими H.264 и AAC потоци могат да се прехвърлят от FLV в MP4 без повторно кодиране; времето зависи от файла и устройството.
Какви кодеци използваха първоначално FLV видеоклиповете?
Ранните FLV файлове са използвали Sorenson Spark (вариант на H.263) и по-късно On2 VP6, преди Adobe да добави поддръжка за стандартния H.264 през 2007 г.