FFmpeg — набор свободных библиотек с открытым исходным кодом, которые позволяют записывать, конвертировать и передавать цифровые аудио- и видеозаписи в различных форматах. Он включает libavcodec — библиотеку кодирования и декодирования аудио и видео, и libavformat — библиотеку мультиплексирования и демультиплексирования в медиаконтейнер. Название происходит от названия экспертной группы MPEG и FF, означающего «fast forward»[15].
Проект основал Фабрис Беллар (под псевдонимом Жерар Ланто (фр.Gerard Lantau)) и до января 2011 года руководство им осуществлял Михаэль Нидермайер (нем.Michael Niedermayer). Многие разработчики FFmpeg принимали участие в проекте MPlayer, и FFmpeg располагался на сервере MPlayer. 18 января группа разработчиков внезапно отстранила Нидермайера от руководства и, объясняя захват необходимостью борьбы со стагнацией и разногласиями, попыталась взять управление проектом в свои руки. Но в итоге власть всё равно осталась в руках Нидермайера, а результатом бурных споров явилось создание отдельной ветви проекта, в которой участвовали недовольные положением вещей разработчики. Позже, из-за продолжающихся разногласий с основной группой, они основали новый проект под названием Libav[англ.].
FFmpeg разработан под ОС на основе GNU/Linux, однако, может быть скомпилирован под многие другие операционные системы. Распространяется по лицензиям GNU LGPL или GNU GPL.
ffmpeg — утилита командной строки для конвертирования видеофайла из одного формата в другой. С её помощью можно также захватывать видео в реальном времени с TV-карты.
ffplay — простой медиаплеер, основанный на SDL и библиотеках FFmpeg.
ffprobe — консольная утилита, позволяющая собирать и отображать информацию о медиафайлах (как MediaInfo) и мультимедиапотоках, доступных устройствах, кодеках, форматах, протоколах и др.[16]
ffserver — HTTP- (RTSP в настоящее время разрабатывается) потоковый сервер для видео- или радиовещания.
libavcodec — библиотека со всеми аудио/видеокодеками. Большинство кодеков было разработано «с нуля» для обеспечения наилучшей производительности.
libavutil — вспомогательная библиотека со стандартными общими подпрограммами для различных компонентов ffmpeg. Включает Adler-32, CRC, MD5, SHA1, LZO-декомпрессор, Base64-кодер/декодер, DES-шифровальщик/расшифровщик, RC4-шифровальщик/расшифровщик и AES-шифровальщик/расшифровщик.
libpostproc — библиотека стандартных подпрограмм обработки видео.
libswscale — библиотека для масштабирования видео.
libavfilter — замена vhook, которая позволяет изменять видеопоток между декодером и кодером «на лету».
Поддерживаемые кодеки и форматы
Участниками проекта FFmpeg были подвергнуты обратной разработке и/или реализованы следующие кодеки и форматы:
Некоторые кодеки, связанные с Windows Media Player (Microsoft RLE, Microsoft Video 1, Cinepak, Indeo 2, 3 и 5, Motion JPEG, Microsoft MPEG-4 v1, v2 и v3, WMV1, WMV2 и WMV3 (он же VC-1))
FFMpeg-php — устаревшее расширение (модуль) для PHP, который добавляет удобный объектно-ориентированныйAPI для доступа и поиска информации из видео- и аудиофайлов через FFmpeg.[19]