FFmpeg — набор свободных библиотек с открытым исходным кодом, которые позволяют записывать, конвертировать и передавать цифровые аудио- и видеозаписи в различных форматах. Он включает libavcodec — библиотеку кодирования и декодирования аудио и видео, и libavformat — библиотеку мультиплексирования и демультиплексирования в медиаконтейнер. Название происходит от названия экспертной группы MPEG и FF, означающего «fast forward».
Проект основал Фабрис Беллар (под псевдонимом Жерар Ланто ()) и до января 2011 года руководство им осуществлял Михаэль Нидермайер (). FFmpeg располагался на сервере проекта MPlayer, в котором принимали участие многие разработчики FFmpeg. 18 января группа разработчиков внезапно отстранила Нидермайера от руководства и, объясняя захват необходимостью борьбы со стагнацией и разногласиями, попыталась взять управление проектом в свои руки. Но в итоге власть всё равно осталась в руках Нидермайера, а после бурных споров недовольные положением вещей создали форк проекта под названием «Libav». Впоследствии две группы разработчиков достигли компромисса, и форк был заброшен.
FFmpeg разработан под ОС на основе GNU/Linux, однако, может быть скомпилирован под многие другие операционные системы. Распространяется по лицензиям GNU LGPL или GNU GPL.
Компоненты ffmpeg состоит из следующих компонентов:
ffmpeg — утилита командной строки для конвертирования видеофайла из одного формата в другой. С её помощью можно также захватывать видео в реальном времени с TV-карты. ffplay — простой медиаплеер, основанный на SDL и библиотеках FFmpeg. ffprobe — консольная утилита, позволяющая собирать и отображать информацию о медиафайлах (как MediaInfo) и мультимедиапотоках, доступных устройствах, кодеках, форматах, протоколах и др. ffserver — HTTP- (RTSP в настоящее время разрабатывается) потоковый сервер для видео- или радиовещания. libavcodec — библиотека со всеми аудио/видеокодеками. Большинство кодеков было разработано «с нуля» для обеспечения наилучшей производительности. libavformat — библиотека с мультиплексорами и демультиплексорами для различных аудио- и видеоформатов. libavutil — вспомогательная библиотека со стандартными общими подпрограммами для различных компонентов ffmpeg. Включает Adler-32, CRC, MD5, SHA1, LZO-декомпрессор, Base64-кодер/декодер, DES-шифровальщик/расшифровщик, RC4-шифровальщик/расшифровщик и AES-шифровальщик/расшифровщик. libpostproc — библиотека стандартных подпрограмм обработки видео. libswscale — библиотека для масштабирования видео. libavfilter — замена vhook, которая позволяет изменять видеопоток между декодером и кодером «на лету».
Поддерживаемые кодеки и форматы Участниками проекта FFmpeg были подвергнуты обратной разработке и/или реализованы следующие кодеки и форматы:
Кодеки AV1 ATRAC1, ATRAC3, ATRAC3plus (только декодирование) H.261, H.263, H.264/AVC и H.265/HEVC Intel Indeo 2, 3, 4 и 5 QDesign Music Codec 1/2, используемый в QuickTime до QuickTime 7 Sorenson Video 1/3, используемый в QuickTime Theora (вместе с Vorbis используется в контейнере Ogg) Truespeech MP3 AAC (LC/HE/HEv2) TXD VP5, VP6 VP8 Vorbis Windows Media Audio (WMA1, WMA2, WMA Pro, WMA Lossless и WMA Speech) Некоторые кодеки, связанные с 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)) MxPEG от Mobotix
Контейнеры ASF, и через его оригинальную версию DivX AVI FLV Matroska (включая WebM) MPEG transport stream TXD
Расширения для работы с FFmpeg FFMpeg-php — устаревшее расширение (модуль) для PHP, который добавляет удобный объектно-ориентированный API для доступа и поиска информации из видео- и аудиофайлов через FFmpeg.
Fluent-ffmpeg — Модуль для Node.js.
См. также
Avidemux HandBrake VirtualDub
Примечания
Ссылки Официальный сайт man-страница FFmpeg Русскоязычное сообщество в Telegram
Категория:Свободное программное обеспечение для редактирования видео Категория:Свободное программное обеспечение, написанное на Си Категория:Кроссплатформенное программное обеспечение Категория:Программное обеспечение для macOS Категория:Программное обеспечение для Linux Категория:Программное обеспечение для Windows Категория:Свободные библиотеки программ Категория:Мультимедийные фреймворки Категория:Библиотеки Си Категория:Кодеки Категория:Программное обеспечение с лицензией GNU LGPL