Каковы различия и сходства между ffmpeg, libav и avconv? - PullRequest
231 голосов
/ 28 февраля 2012

Когда я запускаю ffmpeg в Ubuntu, он показывает:

$ ffmpeg 
ffmpeg version v0.8, Copyright (c) 2000-2011 the Libav developers
  built on Feb 28 2012 13:27:36 with gcc 4.6.1
This program is not developed anymore and is only provided for compatibility. Use avconv instead (see Changelog for the list of incompatible changes).

Или показывает (в зависимости от версии Ubuntu):

$ ffmpeg
ffmpeg version 0.8.5-6:0.8.5-0ubuntu0.12.10.1, Copyright (c) 2000-2012 the Libav developers
  built on Jan 24 2013 14:49:20 with gcc 4.7.2
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.

Я нашел avconv на http://libav.org. Я просто озадачен ими.

1 Ответ

437 голосов
/ 28 февраля 2012

сбивающие с толку сообщения

Эти сообщения вводят в заблуждение и, по понятным причинам, являются источником путаницы. В более старых версиях Ubuntu использовался Libav, являющийся форком проекта FFmpeg. FFmpeg возвращается в Ubuntu 15.04 "Vivid Vervet".

Форк был в основном не дружественным результатом противоречивых личностей и стилей развития в сообществе FFmpeg. Стоит отметить, что сопровождающий Debian / Ubuntu по собственному желанию переключился с FFmpeg на Libav из-за участия в форке Libav.

Реальное ffmpeg против поддельного

Некоторое время и Libav, и FFmpeg по отдельности разрабатывали свою собственную версию ffmpeg.

Libav затем переименовал их bizarro ffmpeg в avconv, чтобы дистанцироваться от проекта FFmpeg. В течение переходного периода отображалось сообщение «больше не разрабатывается», в котором пользователям предлагалось начать использовать avconv вместо своей поддельной версии ffmpeg. Это вводило пользователей в заблуждение, что FFmpeg (проект) мертв, что не соответствует действительности. Плохой выбор слов, но я не могу представить, чтобы Libav не ожидал такого ответа от обычных пользователей.

Это сообщение было удалено вверх по течению, когда фальшивый "ffmpeg" был окончательно удален из источника Libav, но, в зависимости от вашей версии, он все еще может отображаться в Ubuntu, поскольку исходный код Libav, который использует Ubuntu, взят из ffmpeg-to переходный период.

В июне 2012 года сообщение было перефразировано для пакета libav - 4:0.8.3-0ubuntu0.12.04.1. К сожалению, новое «устаревшее» сообщение вызвало дополнительную путаницу среди пользователей.

Начиная с Ubuntu 15.04 "Vivid Vervet", ffmpeg у FFmpeg снова возвращается в репозитории .

libav против Libav

Чтобы еще больше усложнить ситуацию, Libav выбрал имя, которое исторически использовалось FFmpeg для ссылки на его библиотеки (libavcodec, libavformat и т. Д.). Например, список рассылки libav-user для вопросов и обсуждений использования библиотек FFmpeg не связан с проектом Libav.

Как отличить

Если вы используете avconv, то вы используете Libav. Если вы используете ffmpeg, вы можете использовать FFmpeg или Libav. Обратитесь к первой строке в выводе консоли, чтобы увидеть разницу: в уведомлении об авторских правах будет упоминаться FFmpeg или Libav.

Во-вторых, схемы нумерации версий отличаются. Каждая из библиотек FFmpeg или Libav содержит заголовок version.h, который показывает номер версии. FFmpeg оканчивается тремя цифрами, такими как 57.67. 100 , а Libav оканчивается одной цифрой, такой как 57.67. 0 . Вы также можете просмотреть номера версий библиотеки, запустив ffmpeg или avconv и просмотрев вывод консоли.

Если вы хотите использовать реальный ffmpeg

Ubuntu 15.04 "Vivid Vervet" или новее

Настоящий ffmpeg находится в хранилище, поэтому вы можете установить его с помощью:

apt-get install ffmpeg

Для более старых версий Ubuntu

Ваши варианты:

Эти методы не являются навязчивыми, обратимыми и не влияют на систему или любые пакеты репозитория.

Другим возможным вариантом является обновление до Ubuntu 15.04 "Vivid Vervet" или новее и просто используйте ffmpeg из репозитория.

Также см.

Интересную статью в блоге о ситуации, а также обсуждение основных технических различий между проектами см. Ситуация с FFmpeg / Libav .

...