65

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

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

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

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

3 ответа3

93

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

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

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

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

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

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

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

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

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.

30

Обновление (начало 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.
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, могла бы делать это автоматически. Тестовое задание! Если проблемы замечены, отлаживайте!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .