Каковы различия и сходства между 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
Ваши варианты:
- Загрузите последнюю сборку Linux
ffmpeg
, - следуйте пошаговой инструкции по компиляции
ffmpeg
, - или используйте PPA Дуга МакМахона (для Ubuntu 14.04 LTS "Trusty Tahr")
Эти методы не являются навязчивыми, обратимыми и не будут мешать системе или любым пакетам репозитория.
Другим возможным вариантом является обновление до Ubuntu 15.04 "Vivid Vervet" или новее и просто использовать ffmpeg
из хранилища.
Также см
Интересную статью в блоге о ситуации, а также обсуждение основных технических различий между проектами см. В ситуации FFmpeg/Libav.