Каковы различия и сходства между ffmpeg, libav и avconv?

Когда я бегу 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 ответ

Решение

Запутанные сообщения

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

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

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

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

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

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

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

Начиная с Ubuntu 15.04 "Vivid Vervet", FFmpeg's ffmpeg снова в хранилищах.

Либав против Либав

Чтобы еще больше усложнить ситуацию, 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.

Другие вопросы по тегам