Видеоконтейнер Flash (FLV) (.flv)
Спецификация СтандартFlash Video (FLV): это формат контейнера, разработанный Macromedia и Adobe для доставки синхронизированного видео и аудио через интернет с помощью плагина браузера Adobe Flash Player.
Анализ и метаданные
Операционные системы и анализаторы файлов идентифицируют файлы FLV по начальной двоичной последовательности байтов:
Сигнатура заголовка на уровне байтов (Magic Bytes)
Операционные системы и анализаторы файлов идентифицируют файлы FLV по начальной двоичной последовательности байтов:
HEX-СИГНАТУРА (СМЕЩЕНИЕ 0):
46 4C 56 01ПРЕДСТАВЛЕНИЕ ASCII: FLV
Стандартизация: Спецификация формата файла Flash Video от Adobe Systems
Технические спецификации
| Архитектура контейнера | Потоковый контейнер на основе тегов, в котором чередуются теги аудио-, видео- и скриптовых данных |
| Сжатие | Сжатие видео 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 |
Распространенные сценарии повреждения и руководство по восстановлению в HEX
У загруженного видео FLV общая длительность указана как «неизвестна», и его нельзя перематывать.
Первопричина: Отсутствие тега скрипта 'onMetaData', содержащего таблицы временных меток ключевых кадров и размеров файлов.
Восстановление: Внедрите недостающие таблицы ключевых кадров с помощью 'yamdi' (Yet Another MetaData Injector) или конвертируйте в MP4 с помощью File2File.app.
Анализ безопасности и векторы атак на парсер
Плагин Flash Player исторически был одним из программных компонентов, чаще всего подвергавшихся атакам, из-за ошибок повреждения памяти в ActionScript и при разборе FLV.
Известные векторы атак
- Использование после освобождения и переполнение кучи в механизме синтаксического анализа 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 году.