Почему я бы выбрал Libav вместо FFmpeg, или есть даже разница?

72

Из того, что я видел, мне кажется, что Либав avconvсчитается преемником ffmpeg- это правильно?

Если это правда, то почему это так? Что именно делает libav лучше и почему я хотел бы выбрать его вместо ffmpeg?

Я столкнулся с этой «проблемой» при установке Ubuntu 12.04.1 LTS на виртуальной машине, и когда я установил ffmpeg, он получил сообщение о том, что mit ffmpeg устарел, и я сначала подумал «wtf?».

Если я воспользуюсь, смогу avconvли я перенести свои скрипты в зависимости от ffmpeg, более или менее легкую для libav? В основном я использую его для записи метаданных и преобразования звука (wav, flac, vorbis, mp3, aac).

Burzum
источник
1
ffmpeg, конечно, не устарел, он является лучшим в своей породе.
Джеймс Кэмпбелл

Ответы:

94

Прежде всего, посмотрите, кто может сказать мне разницу и отношения между ffmpeg, libav и avconv . Большая часть путаницы является результатом:

  1. Пользователи, не различающие проекты, FFmpeg и libav, и их соответствующие инструменты командной строки, ffmpegи avconv.
  2. Плохо сформулированные сообщения получают пользователи, когда пытаются использовать libav ffmpeg.

FFmpeg против ffmpegи libav противavconv

  • FFmpeg - это имя проекта. ffmpegэто имя их инструмента командной строки.
  • libav - это имя проекта. avconvэто имя их инструмента командной строки. В течение короткого времени у libav также был ffmpeg.

Пользователи часто думают «проект», когда «инструмент» обсуждается, что приводит к ...

Плохо сформулированное сообщение

Итак, как мы узнали из ссылки « Кто может сказать мне ...» , когда libav разветвился от FFmpeg, они также временно предоставили свою версию ffmpeg. Как участник libav, сопровождающий ffmpeg в Debian и Ubuntu решил переключить дистрибутив на использование libav. С точки зрения libav это был их лучший шаг: заставить большое сообщество пользователей использовать форк.

Ubuntu переключился в переходный период, когда libav предоставил и свою версию, ffmpegи переименованный инструмент avconv. Когда пользователи пытались использовать libav, ffmpegони получали следующее сообщение:

This program is not developed anymore and is only provided for compatibility.  
Use avconv instead (see Changelog for the list of incompatible changes).

В этом случае "ffmpeg", упомянутый в сообщении, был временной версией libav, которая позже была удалена (как и сообщение). Помните разницу между FFmpeg и ffmpeg? Конечно, это сообщение полностью сбило с толку многих пользователей, которые по понятным причинам не делали различий между проектом и инструментом; особенно пользователи Ubuntu, которые не знали, что их дистрибутив делал switcharoo, или пользователи, которые никогда не слышали о libav. Я не знаю, хотел ли пользователь libav думать об этом, но им, вероятно, понравился этот побочный эффект.

Некоторые пользователи Ubuntu считали, что сообщение слишком обманчиво, и позже оно было изменено на:

***THIS PROGRAM IS DEPRECATED***
This program is not developed anymore and is only provided for compatibility.  
Use avconv instead (see Changelog for the list of incompatible changes).

Небольшое улучшение по моему мнению, но я чувствую, что это не достаточно ясно.

Какой я использую?

Никто не может сказать вам, какой использовать. Основное различие для пользователей заключается в том, что FFmpeg объединяет множество коммитов из libav, но это не так взаимно, поскольку libav, кажется, притворяется, что FFmpeg не существует и лишь изредка выбирает вишню из FFmpeg.

Для обычного пользователя не должно быть огромных различий. Для пользователей Ubuntu, которые хотят использовать FFmpeg, вы можете скомпилировать его, следуя инструкциям Как скомпилировать FFmpeg и x264 , использовать PPA Джона Северинссона FFmpeg или получить простой статический двоичный файл, связанный со страницей загрузки FFmpeg .

Для получения дополнительной информации см . Ситуация FFmpeg / Libav .

llogan
источник
27
Это за пределами плохо сформулированного сообщения, это совершенно неправильно. FFmpeg совсем не остановил разработку, на самом деле FFmpeg имеет гораздо большее сообщество, чем LibAV ... Сопровождающие Ubuntu сделали это сообщение, чтобы обманом заставить пользователей использовать LibAV из-за ошибочного убеждения, что FFmpeg мертв. это 100% чистая злоба.
MarcusJ
1
avconv даже не поддерживает LADSPA
Vassilis
5
@MarcusJ ... технически это были сопровождающие Debian. Но да, я согласен; это обманчиво
Wyatt8740
Понизил фразу "Плохо сформулированное сообщение", где это не было. Это было преднамеренное нарушение.
Анвар
1
@ Анвар Да, похоже. Вот почему я сказал, что это было «плохо сформулировано», но я думаю, что это было плохо сформулировано.
Llogan
32

Обновление (начало 2016 года)

  • Коэффициенты остаются в пользу ffmpeg. Большинство дистрибутивов переключились обратно / переключаются обратно на ffmpeg ( Gentoo , Debian )
  • Одним из практических преимуществ ffmpeg является широкая доступность двоичных файлов для многих платформ. Поиск в Google для статических библиотек libs / dynamic libs / binaries дает хорошие результаты для linux, mac, windows, ios и android для ffmpeg, в то время как я мог только найти сборки linux и windows для libav. Это может быть важным моментом, если у вас мало опыта работы с C / make-файлами.

Текущая ситуация (середина 2015 года)

Кажется, лучше придерживаться FFmpeg. Вся ситуация довольно грязная и безобразная. Я только начал читать на развилке несколько дней назад. Игнорируя всю драму, вот что представляется фактами:

  • FFmpeg включает в себя наборы изменений из libav, в то время как libav не хочет этого делать (см. Дискуссию по Debian )
  • Chrome использует ffmpeg, и Google приложил серьезные усилия для обеспечения его безопасности. libav также включает эти изменения, но более медленными темпами ( сообщение в блоге Google )
  • FFmpeg пытается сохранить как можно больше кодеков, в то время как libav отбросил некоторые ( список рассылки libav , сообщение от разработчика libav )
  • Сообщество FFmpeg больше, чем libav, и самый преданный разработчик (Майкл Нидермайер) придерживается FFmpeg ( коммит статистики )
  • Сопровождающие ubuntu / debian для FFmpeg входили в состав libav. они добавили сообщения об устаревании в некоторые инструменты командной строки, намекая на то, что ffmpeg устарела. это вызвало много путаницы. и Debian, и Ubuntu переключаются обратно на ffmpeg.
kritzikratzi
источник
Я случайно попал в Google Майкла Нидермайера и в итоге получил этот пост , в котором он уходит в отставку.
bzeaman
1
@bzeaman да, я помню, что сталкивался с этим. но он все еще, кажется, в среднем составляет 2 слияния / коммитов
kritzikratzi
хм нет установки кандидата в деб. Что заменило это сейчас?
Stígandr
nvm mind получил это libav-tools
Stígandr
1
Niedermayer был причиной вилки. Тем не менее, он сильно изменился.
Исмаэль Лучено
9

Зайдя сюда, вы увидите, что самое последнее обновление - сентябрь 2012 года (несколько месяцев назад).

Похоже, это говорит о том, что на данный момент это относится только к Ubuntu и Debian.

Некоторое время назад ffmpeg разделился на две вилки под именами ffmpeg и libav.

Debian следит за форком libav в своем дистрибутиве, и в следующей загрузке двоичный файл / usr / bin / ffmpeg будет заменен на / usr / bin / avconv.

Насколько я знаю, нет необходимости немедленно переключаться, но Winff должен быть обновлен, чтобы можно было использовать любой двоичный файл (с точки зрения Debian, с предпочтением avconv). Я знаю, что вы можете установить местоположение двоичного файла в настройках, но я думаю, что при установленном расположении Winff сможет найти правильный двоичный файл.

Я думаю, что в будущем эта проблема может также затронуть Windows и другие дистрибутивы.

Чтобы ответить на ваш вопрос о том, является ли он точно таким же:

Я реализовал проверки для правильного двоичного файла в моей локальной проверке, но читая 1 , я вижу, что есть некоторые несоответствия между avconv и ffmpeg. Эта проблема больше, потому что предустановленный файл будет нуждаться в корректировке, и, особенно, способ, которым мы создаем командную строку, должен будет измениться. Опции, которые работают с входным файлом, должны идти перед входным файлом "-i".

Обратите внимание, что это может быть связано с версией Windows. Это было опубликовано относительно версии для Linux:

FFmpeg инструмент для конвертации аудио / видео теперь известен как AVConv (на мой взгляд, более подходящее название). Так что инструмент командной строки "ffmpeg" устарел, и следует использовать "avconv". Насколько я заметил, все параметры остались прежними, но дальнейшие исследования должны быть проведены. Некоторые модификации должны быть сделаны в СНГ.

Задачи:

Установите AVConv на машины, на которых работает CIS. Обычно avconv должен обновлять ffmpeg (который работал в Ubuntu; не тестировался для Debian). Замените «ffmpeg» на «avconv» в cis / api / ffmpeg.py, класс FFmpegTranscoder, поле prog_bin, которое представляет исполняемый файл инструмента преобразования. Преобразуйте имена файлов, имена классов, имена методов, имена переменных и т. Д., Которые содержат «FFmpeg» или «ffmpeg», так что они содержат AVConv. Такая среда, как Eclipse, может делать это автоматически. Контрольная работа! Если проблемы замечены, отлаживайте!

Эверетт
источник
9
Я категорически не согласен с постом, в котором говорится: «ffmpeg устарел, и следует использовать avconv».
Slhck
@slhck Это похоже на стандартную практику, когда вы разрабатываете проект. Чем больше пользователей вы можете обмануть, думая, что основная ветвь устарела, тем лучше для вашего форка.
user253751