FFmpeg

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
FFmpeg
Логотип программы FFmpeg
FFmpeg 4.4 screenshot.png
Тип мультимедийный фреймворк
Автор Фабрис Беллар[1]
Разработчик Фабрис Беллар
Написана на Си[3], ассемблер[4] и C++[4]
Операционная система GNU/Linux[d], macOS, Microsoft Windows[5] и Android[6][7]
Первый выпуск 20 декабря 2000[2]
Аппаратная платформа x86, ARM, PowerPC, MIPS, DEC Alpha, Blackfin[d], AVR32 и SPARC
Последняя версия 4.4 (8 апреля 2021)
Читаемые форматы файлов Audible Audiobook[d][8], APNG[8], Advanced Systems Format[8], FLV[d][8], GIF[8], QuickTime формат[d][8], MPEG-TS[8], 4X IMA ADPCM[d][9], Free Lossless Audio Codec[d][10], NUT Open Container Format[d], Bink Video, version 1[d], Bink Video, version 2[d], Indeo, Digital Picture Exchange[d][11], AMR[12] и Audio Interchange File Format[12]
Создаваемые форматы файлов Audio Interchange File Format[8], Advanced Systems Format[8], FLV[d][8], GIF[8], ICO[8], Matroska[8], WebM[8], QuickTime формат[d][8], Audible Audiobook[d][8], MP3[8], MPEG-TS[8], MXF[8], Ogg[8], Free Lossless Audio Codec[d] и MPEG-4 Part 14
Лицензия LGPLv2.1+[d][13][14]
Сайт ffmpeg.org
Логотип Викисклада Медиафайлы на Викискладе

FFmpeg — набор свободных библиотек с открытым исходным кодом, которые позволяют записывать, конвертировать и передавать цифровые аудио- и видеозаписи в различных форматах. Он включает libavcodec — библиотеку кодирования и декодирования аудио и видео и libavformat — библиотеку мультиплексирования и демультиплексирования в медиаконтейнер. Название происходит от названия экспертной группы MPEG и FF, означающего «fast forward»[15].

Проект основал Фабрис Беллар (под псевдонимом Жерар Ланто (фр. Gerard Lantau)) и до января 2011 года руководство им осуществлял Михаэль Нидермайер (нем. Michael Niedermayer). Многие разработчики FFmpeg принимали участие в проекте MPlayer, и FFmpeg располагался на сервере MPlayer. 18 января группа разработчиков внезапно отстранила Нидермайера от руководства и, объясняя захват необходимостью борьбы со стагнацией и разногласиями, попыталась взять управление проектом в свои руки. Но в итоге власть всё равно осталась в руках Нидермайера, а результатом бурных споров явилось создание отдельной ветви проекта, в которой участвовали недовольные положением вещей разработчики. Позже, из-за продолжающихся разногласий с основной группой, они основали новый проект под названием Libav (англ.).

FFmpeg разработан под ОС на основе Linux, однако может быть скомпилирован под многие другие операционные системы. Распространяется под лицензиями GNU LGPL или GNU GPL.

Компоненты[править | править код]

ffmpeg состоит из следующих компонентов:

  • ffmpeg — утилита командной строки для конвертирования видеофайла из одного формата в другой. С её помощью можно также захватывать видео в реальном времени с TV-карты.
  • ffplay — простой медиаплеер, основанный на SDL и библиотеках FFmpeg.
  • ffprobe — консольная утилита, позволяющая собирать и отображать информацию о медиафайлах (как MediaInfo) и мультимедиапотоках, доступных устройствах, кодеках, форматах, протоколах и др.[16]
  • ffserver — HTTP- (RTSP в настоящее время разрабатывается) потоковый сервер для видео- или радиовещания.
  • libavcodec — библиотека со всеми аудио/видеокодеками. Большинство кодеков было разработано «с нуля» для обеспечения наилучшей производительности.
  • libavformat — библиотека с мультиплексорами и демультиплексорами для различных аудио- и видеоформатов.
  • libavutil — вспомогательная библиотека со стандартными общими подпрограммами для различных компонентов ffmpeg. Включает Adler-32, CRC, MD5, SHA1, LZO-декомпрессор, Base64-кодер/декодер, DES-шифровальщик/расшифровщик, RC4-шифровальщик/расшифровщик и AES-шифровальщик/расшифровщик.
  • libpostproc — библиотека стандартных подпрограмм обработки видео.
  • libswscale — библиотека для масштабирования видео.
  • libavfilter — замена vhook, которая позволяет изменять видеопоток между декодером и кодером «на лету».

Поддерживаемые кодеки и форматы[править | править код]

Участниками проекта FFmpeg были подвергнуты обратной разработке и/или реализованы следующие кодеки и форматы:

Кодеки[править | править код]

Контейнеры[править | править код]

Расширения для работы с FFmpeg[править | править код]

FFMpeg-php — устаревшее расширение (модуль) для PHP, который добавляет удобный объектно-ориентированный API для доступа и поиска информации из видео и аудиофайлов через FFmpeg.[19]

Fluent-ffmpeg — Модуль для Node.js.

См. также[править | править код]

Примечания[править | править код]

  1. FFmpeg License and Legal Considerations
  2. http://git.videolan.org/?p=ffmpeg.git;a=commit;h=9aeeeb63f7e1ab7b0b7bb839a5f258667a2d2d78
  3. The ffmpeg Open Source Project on Open Hub: Languages Page — 2006.
  4. 1 2 The ffmpeg Open Source Project on Open Hub: Languages Page
  5. https://ffmpeg.zeranoe.com/
  6. https://play.google.com/store/apps/details?id=com.silentlexx.ffmpeggui
  7. https://play.google.com/store/apps/details?id=org.magiclen.ffmpeg.cli
  8. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 FFmpeg Formats Documentation
  9. Just Solve the File Format Problem — 2012.
  10. https://directory.fsf.org/wiki/Category/Works-with-format/FLAC
  11. https://github.com/usnationalarchives/digital-preservation/blob/master/Moving%20Image%20Formats/NARA_PreservationActionPlan_DigitalCinema_20190801.pdf
  12. 1 2 https://github.com/usnationalarchives/digital-preservation/blob/master/Digital%20Audio%20Formats/NARA_PreservationActionPlan_DigitalAudio_20190801.pdf
  13. https://ffmpeg.org/legal.html
  14. The ffmpeg Open Source Project on Open Hub: Licenses Page — 2006.
  15. FFmpeg naming and logo (недоступная ссылка). Дата обращения: 15 марта 2019. Архивировано 30 сентября 2007 года.
  16. ffprobe Documentation (англ.). FFmpeg. Дата обращения: 15 марта 2019.
  17. 1 2 3 4 5 6 7 8 Changelog. Дата обращения: 16 августа 2010. Архивировано 3 марта 2012 года.
  18. 1 2 FFmpeg development mailing list (недоступная ссылка) (7 мая 2007). Дата обращения: 20 января 2008. Архивировано 30 сентября 2007 года.
  19. ffmpeg-php

Ссылки[править | править код]