Flash Video

(перенаправлено с «FLV»)

Flash Video — формат файлов, медиаконтейнер, используемый для передачи видео через Интернет. Использовался такими сервисами видеохостинга, как YouTube, Google Video, Вконтакте, RuTube и другими[1]. Хотя описание формата контейнера было открыто, кодеки защищены патентами и остаются собственническими[2].

Flash Video
Расширение.flv, .fla, .f4v, .f4a, .f4b, .f4p
MIME-типvideo/x-flv, video/mp4, audio/mp4
РазработчикAdobe Systems (разработано Macromedia)
ОпубликованFLV: 10 сентября 2003; 20 лет назад (2003-09-10)
F4V: 3 декабря 2007; 16 лет назад (2007-12-03)
Последний выпуск10.1.2.01 (август 2010; 13 лет назад (2010-08))
Тип форматамедиаконтейнер
СодержитАудио, видео, текст, данные
Расширен изFLV: SWF
F4V: MPEG-4 Part 12
Открытый формат?Нет
Сайтadobe.com/devnet/f4v.html
Логотип Викисклада Медиафайлы на Викискладе

Видеоформат

Изначально FLV-файл — это битовый поток, который является вариантом видеостандарта H.263 под названием Sorenson Spark[2]. Был введен в Flash с версии 6[3].

Flash Player 8 и более новые редакции поддерживают потоковое видео On2 TrueMotion VP6.[2] On2 VP6 обеспечивает более качественное изображение, особенно при использовании низкого битрейта. С другой стороны, этот формат более сложен, что может создать трудности при просмотре на устаревших машинах.Опциональный альфа-канал, представляющий собой попиксельную прозрачность, поддерживается с помощью дополнительного видеопотока, который кодирует только альфа-канал. Реализация предполагает, что YUV-данные основного On2 VP6 видеопотока всегда конвертируются клиентом в RGB. Эта возможность доступна только для видео On2 VP6.

Начиная с Flash Player 9 Update 3 поддерживается новый формат мультимедиа-файла ISO Base MPEG-4 Part 12, с новым видеокодеком — H.264[2]. Этот стандарт видеосжатия при том же низком битрейте выдаёт значительно более детализированное и «ясное» изображение, особенно в динамических сценах. Недостатками являются, опять-таки, повышение требований к вычислительным ресурсам и платные патенты.

F4V-файлы предоставляют лучшее качество изображения по сравнению с FLV, однако требуют более новой версии Flash (9.0.115 и выше) и наличия более быстрого процессора. Помимо этого, F4V-файлы не поддерживают альфа-каналы[4]. Формат-контейнер, при создании которого использовали формат ISO Media File Format, изначально в своей работе использовал формат Quick Time Container Format от компании Apple. В отличие от старого формата FLV, формат F4V полностью совместим с форматами H.264 и AAC, что позволяет воспользоваться также и другими форматами-контейнерами.[5].

Аудиоформат

Звук в FLV, как правило, закодирован в MP3[2], однако иногда могут использоваться Nellymoser codec, несжатое аудио или ADPCM-аудиоформат. В версии Flash Player 9 Update 3, в соответствии с внедрением Adobe формата ISO Base (MPEG-4 Part 12), добавлена поддержка AAC-аудио[2] (профили AAC-LC, Main Profile, и HE-AAC). В версии Flash Player 10 Beta добавлен открытый кодек SPEEX.

Проигрыватели FLV

Формат FLV предназначен для потокового видео, однако существует возможность использовать его для локального хранения и воспроизведения видео. FLV используется в Adobe Flash Player, который распространяется в качестве плагина для различных браузеров и различных операционных систем. Также формат поддерживается многими мультимедиа проигрывателями, например mplayer или Light Alloy.

Популярные проигрыватели, поддерживающие FLV:

Так как FLV — это медиаконтейнер, а не формат, некоторые проигрыватели могут некорректно воспроизводить видео или звуковой поток при отсутствии кодеков, использованных при создании файла.

Конвертеры из FLV

Формат файла

Заголовок

FLV-файлы начинаются со стандартного заголовка, который показан ниже:[6]

ПолеТип данныхПо умолчаниюДетали
Signaturebyte[3]«FLV»Всегда «FLV», признак формата
Versionuint81Только 0x01 если действительно
Flagsuint8 bitmask0x05Битовая маска: 0x04 — аудио, 0x01 — видео (0x05 — аудио+видео)
Header Sizeuint32_be9Используется для пропуска новых расширенных заголовков в будущем

Пакеты

После заголовка файл делится на пакеты под названием «теги FLV», которые имеют 15-байтные заголовки. Первые четыре байта обозначают размер предыдущего пакета/тега (включая заголовок) и помогают при поиске назад.

ПолеТип данныхПо умолчаниюДетали
Size of previous packetuint32_be0Для первого пакета установлено в NULL
Packet Typeuint818Для первого пакета установлено в метаданные AMF
Payload Sizeuint24_beВарьируетсяРазмер только пакета данных
Timestamp Loweruint24_be0Для первого пакета установлено в NULL
Timestamp Upperuint80Расширение для получения значения uint32_be
Stream IDuint24_be0Для первого потока одного и того же типа установлено в NULL
Payload DatafreeformВарьируютсяДанные, которые определены в Packet Type

См. также

Примечания

Ссылки