Почему я бы выбрал Libav вместо FFmpeg, или есть даже разница?
Из того, что я видел, это выглядит как Либав avconv
Считается, что стать преемником ffmpeg
- это верно?
Если это правда, то почему это так? Что именно делает libav лучше и почему я хотел бы выбрать его вместо ffmpeg?
Я столкнулся с этой "проблемой" при установке Ubuntu 12.04.1 LTS в виртуальной машине, и когда я установил ffmpeg, он получил сообщение о том, что mit ffmpeg устарел, и я сначала подумал "wtf?".
Если я использую avconv
Смогу ли я перенести свои скрипты в зависимости от ffmpeg, более или менее легко libav? В основном я использую его для записи метаданных и преобразования звука (wav, flac, vorbis, mp3, aac).
3 ответа
Прежде всего, посмотрите, кто может сказать мне разницу и отношения между ffmpeg, libav и avconv. Большая часть путаницы является результатом:
- Пользователи, не различающие проекты, FFmpeg и libav, и их соответствующие инструменты командной строки,
ffmpeg
а такжеavconv
, - Пользователи с плохо сформулированными сообщениями получают, когда пытаются использовать 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's 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, использовать FFmpeg PPA Джона Северинссона или получить простой статический двоичный файл, связанный со страницей загрузки FFmpeg.
Для получения дополнительной информации см . Ситуация FFmpeg/Libav.
Обновление (начало 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.
Когда вы перейдете сюда, вы увидите, что самое последнее обновление - сентябрь 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, может делать это автоматически. Тестовое задание! Если проблемы замечены, отлаживайте!