Оригинальный автор(ы) | Фабрис Беллард Бобби Бингем (libavfilter) [1] |
---|---|
Разработчик(и) | Команда FFmpeg |
Первоначальный выпуск | 20 декабря 2000 г ( 2000-12-20 ) | [2]
Стабильный релиз | 7.1 [3] / 30 сентября 2024 г. |
Репозиторий | git.ffmpeg.org/ffmpeg.git |
Написано в | C и сборка [4] |
Операционная система | Различные, включая Windows , macOS и Linux ( исполняемые программы доступны только от третьих лиц, поскольку проект распространяет только исходный код ) [5] [6] |
Платформа | x86 , ARM , PowerPC , MIPS , RISC-V , DEC Alpha , Blackfin , AVR32 , SH-4 и SPARC ; может быть скомпилирован для других настольных компьютеров |
Тип | Мультимедийная структура |
Лицензия | LGPL-2.1 или более поздняя версия , GPL-2.0 или более поздняя версия Не подлежит распространению, если скомпилировано с любым программным обеспечением с лицензией, несовместимой с GPL [7] |
Веб-сайт | ffmpeg.org |
FFmpeg — это бесплатный и открытый программный проект, состоящий из набора библиотек и программ для обработки видео, аудио и других мультимедийных файлов и потоков. В его основе лежит сам инструмент командной строки ffmpeg
, предназначенный для обработки видео и аудио файлов. Он широко используется для перекодирования форматов , базового редактирования (обрезки и конкатенации ), масштабирования видео , эффектов постобработки видео и соответствия стандартам ( SMPTE , ITU ).
FFmpeg также включает в себя другие инструменты: ffplay
, простой медиаплеер, и ffprobe
, командный инструмент для отображения медиаинформации. Среди включенных библиотек есть libavcodec , библиотека аудио/видеокодеков , используемая многими коммерческими и бесплатными программными продуктами, libavformat (Lavf), [8] библиотека мультиплексирования и демультиплексирования аудио/видеоконтейнеров , и libavfilter, библиотека для улучшения и редактирования фильтров с помощью графа фильтров, похожего на GStreamer . [9]
FFmpeg является частью рабочего процесса многих других программных проектов, а его библиотеки являются основной частью программных медиаплееров, таких как VLC , и включены в ядро обработки для YouTube и Bilibili . [10] Включены кодировщики и декодеры для многих форматов аудио- и видеофайлов, что делает его весьма полезным для перекодирования распространенных и редких медиафайлов.
FFmpeg публикуется под лицензией LGPL-2.1 или более поздней версии или GPL-2.0 или более поздней версии , в зависимости от включенных опций. [11]
Проект был начат Фабрисом Беллардом [11] (использующим псевдоним «Жерар Ланто») в 2000 году и возглавлялся Михаэлем Нидермайером с 2004 по 2015 год. [12] Некоторые разработчики FFmpeg также были частью проекта MPlayer .
Название проекта вдохновлено группой стандартов видео MPEG , вместе с «FF» для «быстрой перемотки», поэтому FFmpeg расшифровывается как «Fast Forward Moving Picture Experts Group». [13] Логотип представляет собой зигзагообразный шаблон сканирования, который показывает, как видеокодеки MPEG обрабатывают энтропийное кодирование . [14]
13 марта 2011 года группа разработчиков FFmpeg решила создать ответвление проекта под названием Libav . [15] [16] [17] Событие было связано с проблемой в управлении проектом, в которой разработчики не согласились с руководством FFmpeg. [18] [19] [20]
10 января 2014 года двое сотрудников Google объявили, что за последние два года в FFmpeg было исправлено более 1000 ошибок с помощью фаззинг-тестирования . [21]
В январе 2018 года была удалена программа командной строки ffserver — давний компонент FFmpeg. [22] Ранее разработчики объявили программу устаревшей, сославшись на высокие затраты на обслуживание из-за использования ею внутренних интерфейсов прикладного программирования . [23]
Проект выпускает новый релиз в среднем каждые три месяца. Хотя версии релиза доступны для загрузки на веб-сайте, разработчики FFmpeg рекомендуют пользователям компилировать программное обеспечение из исходного кода, используя последнюю сборку из исходного кода , используя систему контроля версий Git . [24]
На данный момент в рамках проекта FFmpeg создано два формата видеокодирования с соответствующими кодеками и один формат контейнера . Два видеокодека — это кодек без потерь FFV1 и кодек без потерь и с потерями Snow. Разработка Snow застопорилась, а его формат битового потока еще не завершен, что делает его экспериментальным с 2011 года. Формат контейнера мультимедиа под названием NUT больше не разрабатывается активно, но все еще поддерживается. [25]
Летом 2010 года разработчики FFmpeg Фиона Глейзер, Рональд Бултье и Дэвид Конрад анонсировали декодер ffvp8. В ходе тестирования они определили, что ffvp8 быстрее, чем собственный декодер libvpx от Google . [26] [27] Начиная с версии 0.6, FFmpeg также поддерживал WebM и VP8 . [28]
В октябре 2013 года в FFmpeg были добавлены собственный декодер VP9 [29] и OpenHEVC, декодер с открытым исходным кодом High Efficiency Video Coding (HEVC). [30] В 2016 году собственный кодировщик AAC считался стабильным, что привело к прекращению поддержки двух внешних кодировщиков AAC от VisualOn и FAAC . FFmpeg 3.0 (под прозвищем «Эйнштейн» ) сохранил поддержку сборки для кодировщика Fraunhofer FDK AAC . [31] Начиная с версии 3.4 «Cantor» FFmpeg поддерживал формат изображения FITS . [32] С ноября 2018 года в версии 4.1 «al-Khwarizmi» AV1 можно мультиплексировать в MP4 и Matroska , включая WebM . [33] [34]
FFmpeg охватывает программные реализации алгоритмов сжатия и распаковки видео и аудио. Они могут быть скомпилированы и запущены на многих различных наборах инструкций, включая x86 ( IA-32 и x86-64 ), PPC ( PowerPC ), ARM , DEC Alpha , SPARC и MIPS . [36]
Существует множество специализированных интегральных схем (ASIC) для сжатия и декомпрессии аудио/видео. Эти ASIC могут частично или полностью разгрузить вычисление от центрального процессора. Вместо полной реализации алгоритма для использования такой ASIC требуется только API . [37]
Твердый | ASIC | цель | поддерживается FFmpeg | Подробности |
---|---|---|---|---|
АМД | УВД | декодирование | через API VDPAU и VAAPI | |
ВКЭ | кодирование | через VAAPI , считается экспериментальным [38] | ||
Амлогик | Видеодвижок Amlogic | декодирование | ? | |
BlackMagic | DeckLink | кодирование/декодирование | прием и воспроизведение в реальном времени | |
Бродком | Кристалл HD | декодирование | ||
Qualcomm | Шестиугольник | кодирование/декодирование | хваксель [39] | |
Интел | Intel Очистить Видео | декодирование | (libmfx, VAAPI) | |
Быстрая синхронизация видео Intel | кодирование/декодирование | (libmfx, VAAPI) | ||
Нвидиа | Чистое Видео / NVDEC | декодирование | через API VDPAU с FFmpeg v1.2 (устарело) через API CUVID с FFmpeg v3.1 [40] | |
НВЕНК | кодирование | начиная с FFmpeg v2.6 |
Также поддерживаются следующие API: DirectX Video Acceleration (DXVA2, Windows), Direct3D 11 (D3D11VA, Windows), Media Foundation (Windows), Vulkan (VKVA), VideoToolbox (iOS, iPadOS, macOS), RockChip MPP, OpenCL , OpenMAX , MMAL (Raspberry Pi), MediaCodec ( Android OS ), V4L2 (Linux). В зависимости от среды эти API могут приводить к определенным ASIC, к процедурам GPGPU или к коду SIMD CPU. [41]
Этот раздел может быть слишком техническим для понимания большинства читателей . ( Апрель 2023 ) |
FFmpeg поддерживает множество распространенных и несколько редких форматов изображений.
The Формат изображения PGMYUV — это самодельный вариант двоичного формата (P5) PGM Netpbm . FFmpeg также поддерживает 16-битную глубину форматов PGM и PPM, а также двоичный формат (P7) PAM с альфа-каналом или без него, глубину 8 или 16 бит для pix_fmts
monob, gray, gray16be, rgb24, rgb48be, ya8, rgba, rgb64be .
Этот раздел нуждается в дополнительных цитатах для проверки . ( Июль 2022 г. ) |
Помимо форматов FFV1 и Snow, которые были созданы и разработаны в FFmpeg, проект также поддерживает следующие форматы:
Группа | Тип формата | Имя формата |
---|---|---|
ИСО / МЭК / МСЭ-Т | Видео | MPEG-1 Часть 2 , H.261 (Px64), [42] H.262/MPEG-2 Часть 2 , H.263 , [42] MPEG-4 Часть 2 , H.264/MPEG-4 AVC , HEVC/H.265 [30] (MPEG-H Часть 2), MPEG-4 VCB (он же VP8), Motion JPEG , видео IEC DV и CD+G |
Аудио | MP1 , MP2 , MP3 , AAC , HE-AAC , MPEG-4 ALS , G.711 μ-law, G.711 A-law, G.721 (он же G.726 32k), G.722 , G.722.2 (он же AMR-WB), G.723 (он же G.726 24k и 40k), G.723.1 , G.726 , G.729 , G.729D, IEC DV audio и прямая потоковая передача | |
Подзаголовок | Синхронизированный текст MPEG-4 (он же синхронизированный текст 3GPP) | |
Изображение | JPEG , JPEG без потерь , JPEG-LS , JPEG 2000 , JPEG XL , [43] PNG , CCITT G3 и CCITT G4 | |
Альянс за открытые медиа | Видео | АВ1 [44] |
Изображение | АВИФ [45] | |
ОВОС | Подзаголовок | EIA-608 |
СЕА | Подзаголовок | СЕА-708 |
СМПТЕ | Видео | SMPTE 314M (он же DVCAM и DVCPRO ), SMPTE 370M (он же DVCPRO HD ), VC-1 (он же WMV3), VC-2 (он же Dirac Pro), VC-3 (он же AVID DNxHD ) |
Аудио | СМПТЕ 302М | |
Изображение | ДПХ | |
ATSC / ETSI / DVB | Аудио | Full Rate (GSM 06.10), AC-3 ( Dolby Digital ), Enhanced AC-3 ( Dolby Digital Plus ) и DTS Coherent Acoustics (также известный как DTS или DCA) |
Подзаголовок | Субтитры DVB (ETSI 300 743) | |
Форум DVD / Dolby | Аудио | MLP / Dolby TrueHD |
Подзаголовок | Субтитры DVD-Video | |
Xperi / DTS, Inc / QDesign | Аудио | DTS Coherent Acoustics (он же DTS или DCA), DTS Extended Surround (он же DTS-ES), DTS 96/24 , DTS-HD High Resolution Audio , DTS Express (он же DTS-HD LBR), DTS-HD Master Audio , QDesign Music Codec 1 и 2 |
Ассоциация Blu-ray Disc | Подзаголовок | PGS (поток презентационной графики) |
3GPP | Аудио | AMR-NB , AMR-WB (он же G.722.2) |
3GPP2 | Аудио | QCELP -8 (он же SmartRate или IS-96C), QCELP-13 (он же PureVoice или IS-733) и Enhanced Variable Rate Codec (EVRC, он же IS-127) |
Консорциум Всемирной паутины | Видео | Анимированный GIF [46] |
Подзаголовок | WebVTT | |
Изображение | GIF и SVG (через librsvg ) | |
IETF | Видео | ФФВ1 |
Аудио | iLBC (через libilbc), Opus и комфортный шум | |
Международная голосовая ассоциация | Аудио | DSS-SP |
САК | Видео | Видео AVS , видео AVS2 [47] (через libdavs2) и видео AVS3 (через libuavs3d) |
Майкрософт | Видео | Microsoft RLE , Microsoft Video 1 , Cinepak , Microsoft MPEG-4 v1, v2 и v3, Windows Media Video (WMV1, WMV2, WMV3/ VC-1 ), кодек WMV Screen и Mimic |
Аудио | Windows Media Audio (WMA1, WMA2, WMA Pro и WMA Lossless), XMA (XMA1 и XMA2), [48] MSN Siren , MS-GSM и MS-ADPCM | |
Подзаголовок | САМСКИЙ | |
Изображение | Windows Bitmap , WMV-изображение (WMV9-изображение и WMV9-изображение v2), DirectDraw Surface и MSP [49] | |
Ассоциация интерактивного мультимедиа | Аудио | ИМА АДПКМ |
Intel / Цифровое видео Интерактив | Видео | RTV 2.1 ( Indeo 2), Indeo 3, 4 и 5, [42] и Intel H.263 |
Аудио | DVI4 (он же IMA DVI ADPCM), Intel Music Coder и Indeo Audio Coder | |
RealNetworks | Видео | Кодек RealVideo Fractal (он же Iterated Systems ClearVideo), 1, 2, 3 и 4 |
Аудио | RealAudio v1–v10 и RealAudio Lossless [50] | |
Подзаголовок | РеальныйТекст | |
Технологии Apple /Spruce | Видео | Cinepak (Apple Compact Video), ProRes , кодек Sorenson 3 , QuickTime Animation (Apple Animation), QuickTime Graphics (Apple Graphics), Apple Video , промежуточный кодек Apple и Pixlet [51] |
Аудио | АЛАК | |
Изображение | QuickDraw PICT | |
Подзаголовок | Еловый субтитр (STL) | |
Adobe Flash Player (SWF) | Видео | Видео с экрана, Видео с экрана 2, Sorenson Spark и VP6 |
Аудио | Adobe SWF ADPCM и Nellymoser Asao | |
Adobe / Альдус | Изображение | TIFF , PSD , [51] и DNG |
Xiph.Org | Видео | Теора |
Аудио | Speex , [52] Vorbis , Opus и FLAC | |
Подзаголовок | Огг Письмо | |
Сони | Аудио | Адаптивное преобразование акустического кодирования (ATRAC1, ATRAC3, ATRAC3Plus, [53] и ATRAC9 [47] ) [42] и PSX ADPCM |
НТТ | Аудио | ТвинВК |
Google / On2 / GIPS | Видео | Duck TrueMotion 1, Duck TrueMotion 2, Duck TrueMotion 2.0 в реальном времени, VP3 , VP4 , [54] VP5 , [42] VP6 , [42] VP7 , VP8 , [55] VP9 [29] и анимированный WebP |
Аудио | DK ADPCM Audio 3/4 , On2 AVC и iLBC (через libilbc) | |
Изображение | ВебП [56] | |
Epic Games / Инструменты для RAD-игр | Видео | Видео Smacker и видео Bink |
Аудио | Бинк аудио | |
Промежуточное программное обеспечение CRI | Аудио | ADX ADPCM и HCA |
Нинтендо / NERD | Видео | Видео Mobiclip |
Аудио | GCADPCM (также известный как ADPCM THP), FastAudio и ADPCM IMA MOFLEX | |
Группа Synaptics / DSP | Аудио | Truespeech |
Electronic Arts / Criterion Games / Black Box Games / Westwood Studios | Видео | RenderWare TXD, [57] Madcow, CMV, TGV, TGQ, TQI, Midivid VQ (MVDV), MidiVid 3.0 (MV30), Midivid Archival (MVHA) и векторная квантованная анимация (VQA) |
Аудио | Варианты Electronic Arts ADPCM | |
Netpbm | Изображение | ПБМ, ПГМ, ППМ, ПНМ, ПАМ, ПФМ и ПГМ |
Консорциум MIT/X/ Открытая группа | Изображение | XBM , [50] XPM и xwd |
HPE / SGI / Silicon Graphics | Видео | Silicon Graphics RLE 8-битное видео, [46] Silicon Graphics MVC1/2 [46] |
Изображение | Изображение Silicon Graphics | |
Oracle / Sun Microsystems | Изображение | Солнечный растр |
ИБМ | Видео | IBM UltiMotion |
Технология Avid / Truevision | Видео | Avid 1:1x, Avid Meridien, [50] Avid DNxHD , Avid DNx444, [53] и DNxHR |
Изображение | Тарга [46] | |
Autodesk / Псевдоним | Видео | Кодек Autodesk Animator Studio и FLIC |
Изображение | Псевдоним PIX | |
Activision Blizzard / Activision / Инфоком | Аудио | ADPCM Зорк |
Конами / Хадсон Софт | Видео | Видео HVQM4 |
Аудио | Konami MTAF и ADPCM IMA HVQM4 | |
Травяная долина / Канопус | Видео | HQ, HQA, HQX и Lossless |
Визрт / НьюТек | Видео | SpeedHQ |
Изображение | Двоичное изображение Vizrt [45] | |
Фонд академического программного обеспечения / ILM | Изображение | OpenEXR [50] |
Корпорация Мозилла | Видео | АНПГ [56] |
Матрокс | Видео | Matrox Несжатый SD (M101) / HD (M102) |
AMD / ATI | Видео | ATI VCR1/VCR2 |
Асус | Видео | Кодек ASUS V1/V2 |
Коммодор | Видео | Кодек CDXL |
Кодак | Изображение | Фото CD |
Blackmagic Design / Синтел | Изображение | Синтел RAW |
Houghton Mifflin Harcourt / The Learning Company / ZSoft Corporation | Изображение | ПКХ |
Австралийский национальный университет | Изображение | X-Лицо [46] |
Специальная группа по интересам Bluetooth | Аудио | SBC и mSBC |
Qualcomm / КСО | Аудио | QCELP , aptX и aptX HD |
Открытый мобильный альянс / WAP-форум | Изображение | Беспроводной битмап |
Форматы вывода (контейнерные форматы и другие способы создания выходных потоков) в FFmpeg называются «мультиплексорами». FFmpeg поддерживает, среди прочего, следующее:
Этот раздел нуждается в дополнительных цитатах для проверки . ( Июль 2022 г. ) |
Тип | Цвет | Упаковано | Плоский | Палитра | |||
---|---|---|---|---|---|---|---|
Без альфы | С альфой | Без альфы | С альфой | Chroma-interleaved | С альфой | ||
Монохромный | Двоичный (1-битный монохромный) | моночёрный, монобелый | — | — | — | — | — |
Оттенки серого | 8/9/10/12/14/16 бит/пиксель | — | — | 16/32 бит/пиксель | — | — | |
РГБ | RGB 1:2:1 (4-битный цвет) | 4bpp | — | — | — | — | — |
RGB 3:3:2 ( 8-битный цвет ) | 8 бит/пкс | — | — | — | — | — | |
RGB 5:5:5 ( высокая цветность ) | 16 бит/пп | — | — | — | — | — | |
RGB 5:6:5 (высокая цветность) | 16 бит/пп | — | — | — | — | — | |
RGB/BGR | 24/30 [стр. 1] /48bpp | 32 [стр 2] /64bpp | — | — | — | 8 бит->32 бит/пиксель | |
Великобритания [стр. 3] | — | — | 8/9/10/12/14/16 бит/канал | 8/10/12/16 бит/канал | — | — | |
RGB- плавающий | РГБ | 32bpc | 16/32bpc | — | — | — | — |
Великобритания | — | — | 32bpc | 32bpc | — | — | |
ЮВ | YVU 4:1:0 | — | — | (9bpp (YVU9)) [стр. 4] | — | — | — |
ЮВ 4:1:0 | — | — | 9 бит/пп | — | — | — | |
ЮВ 4:1:1 | 8bpc (УГГГГ) | — | 8бпк | — | (8bpc (NV11)) | — | |
YVU 4:2:0 | — | — | (8bpc (YV12)) [стр. 4] | — | 8 (НВ21) | — | |
ЮВ 4:2:0 | — | — | 8 [стр 5] /9/10/12/14/16bpc | 8/9/10/16 бит/канал | 8 (NV12)/10 (P010)/12 (P012)/16bpc (P016) | — | |
YVU 4:2:2 | — | — | (8bpc (YV16)) [стр. 4] | — | (8 бит на канал (NV61)) | — | |
ЮВ 4:2:2 | 8 (YUYV [стр. 6] и UYVY)/10 (Y210)/12bpc (Y212) [стр. 7] | — | 8 [стр 8] /9/10/12/14/16bpc | 8/9/10/12/16 бит/канал | 8 (NV16)/10 (NV20 и P210)/16bpc (P216) | — | |
ЮВ 4:4:0 | — | — | 8/10/12бпк | — | — | — | |
YVU 4:4:4 | — | — | (8bpc (YV24)) [стр. 4] | — | 8bpc (NV42) | — | |
ЮВ 4:4:4 | 8 (VUYX)/10 [стр. 9] /12bpc [стр. 10] | 8 [стр. 11] / 16 бит на канал (AYUV64) [стр. 12] | 8 [стр 13] /9/10/12/14/16bpc | 8/9/10/12/16 бит/канал | 8 (NV24)/10 (P410)/ 16bpc (P416) | — | |
XYZ | XYZ 4:4:4 [стр. 14] | 12bpc | — | — | — | — | — |
Байер | BGGR/RGGB/GBRG/GRBG | 8/16 бит/пиксель | — | — | — | — | — |
FFmpeg не поддерживает форматы IMC1-IMC4, AI44, CYMK, RGBE , Log RGB и другие. Он также пока не поддерживает ARGB 1:5:5:5 , 2:10:10:10 или другие форматы битовых полей BMP , которые не используются обычно.
FFmpeg поддерживает, среди прочего, следующие фильтры. [68]
FFmpeg поддерживает следующие устройства через внешние библиотеки. [70]
FFmpeg содержит более 100 кодеков, [71] большинство из которых используют методы сжатия того или иного вида. Многие из таких методов сжатия могут быть предметом юридических претензий, связанных с патентами на программное обеспечение . [72] Такие претензии могут быть обеспечены правовой санкцией в таких странах, как США, которые внедрили патенты на программное обеспечение, но считаются не имеющими правовой санкции или недействительными в странах-членах Европейского Союза , например. [73] [ оригинальное исследование ] Патенты на многие старые кодеки, включая AC3 и все кодеки MPEG-1 и MPEG-2, истекли. [ необходима цитата ]
FFmpeg распространяется по лицензии LGPL, но если конкретная сборка FFmpeg связана с какими-либо библиотеками GPL (в частности, x264 ), то весь двоичный файл распространяется по лицензии GPL.
FFmpeg используется таким программным обеспечением, как Blender , Cinelerra-GG Infinity , HandBrake , Kodi , MPC-HC , Plex , Shotcut , VirtualDub2 ( ответвление VirtualDub ), [74] VLC media player , xine и YouTube . [75] [76] Он обрабатывает воспроизведение видео и аудио в Google Chrome [76] и версии Firefox для Linux. [77] Были разработаны графические интерфейсы для FFmpeg, включая Multimedia Xpert [78] и XMedia Recode.
FFmpeg используется ffdshow , FFmpegInterop, плагином GStreamer FFmpeg , LAV Filters и OpenMAX IL для расширения возможностей кодирования и декодирования соответствующих мультимедийных платформ.
В рамках миссии NASA « Марс 2020» FFmpeg используется марсоходом Perseverance на Марсе для сжатия изображений и видео перед отправкой отснятого материала на Землю. [79]
Зигзагообразное сканирование[ мертвая ссылка ] Альтернативный URL-адрес Архивировано 2012-07-03 на Wayback Machine
...причем
VLC
,
Boxee
,
MythTV
,
Handbrake
и
MPlayer
являются одними из самых популярных проектов, использующих FFmpeg...
{{cite web}}
: CS1 maint: числовые имена: список авторов ( ссылка )