Чому я б обрав Libav через FFmpeg, чи є навіть різниця?


72

З того, що я бачив, мені здається, що Лібава avconvвважається наступником ffmpeg- це правильно?

Якщо це правда, чому це так? Що саме libav робить краще, і чому я хотів би вибрати його через ffmpeg?

Я прийшов до цієї "проблеми" під час встановлення Ubuntu 12.04.1 LTS у віртуальній машині, і коли я встановив ffmpeg, з'явилося повідомлення про те, що mit ffmpeg застарілий, і я спершу подумав "wtf?".

Якщо я використовую avconvЧи зможу перенести свої сценарії залежно від ffmpeg більш-менш легко для libav? Я здебільшого використовую його для запису метаданих та перетворення аудіо (wav, flac, vorbis, mp3, aac).


1
ffmpeg, звичайно, не застарілий, він майже найкращий у породі за те, що робить.
Джеймс Кемпбелл

Відповіді:


94

Перш за все, подивіться, хто може мені сказати різницю та відношення між ffmpeg, libav та avconv . Значна частина плутанини є результатом:

  1. Користувачі, які не розрізняють проекти, FFmpeg та libav, та їхніми інструментами командного рядка, ffmpegта avconv.
  2. Користувачі, які погано сформулювали повідомлення, отримують, коли вони намагаються вживати libav's ffmpeg.

FFmpeg vs ffmpegі libav vsavconv

  • 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, які не знали, що їхній дистрибутив робив комутатор або користувачів, які ніколи не чули про 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 PPA або отримати просту статичну двійкову мережу зі сторінки завантаження FFmpeg .

Для отримання додаткової інформації дивіться ситуацію FFmpeg / Libav .


27
Це поза погано сформульованим повідомленням, це невірно. FFmpeg взагалі не зупинив розвиток, адже FFmpeg має набагато більшу спільноту, ніж LibAV ... Підтримувачі Ubuntu зробили це повідомлення, щоб виманити користувачів у використанні LibAV з помилкової думки, що FFmpeg помер. це 100% чиста злоба.
MarcusJ

1
avconv навіть не підтримує LADSPA
Vassilis

5
@MarcusJ ... технічно це були сервіси debian. Але так, я згоден; це обманливо.
Wyatt8740

Запропоновано фразу "Погано написане повідомлення" там, де її не було. Це була навмисна кривда.
Анвар

1
@Anwar Так, це виглядало саме так. Тому я сказав, що це "погано сформульовано", але я думаю, що це було погано.
логіан

32

Оновлення (початок 2016 року)

  • Шанси залишаються на користь ffmpeg. Більшість дистрибутивів перемкнулися назад / перемикаються назад на ffmpeg ( Gentoo , Debian )
  • Однією з практичних переваг ffmpeg є широка доступність бінарних файлів для багатьох платформ. Гуглінг для статичних libs / динамичних libs / binaries дає хороші результати для linux, mac, windows, ios та android для ffmpeg, тоді як я міг знайти лише Linux та Windows build для libav. Це може бути важливим моментом, якщо у вас мало досвіду роботи з C / makefiles.

Поточна ситуація (середина 2015 року)

Здається, краще дотримуватися FFmpeg. Вся ситуація досить безладна і потворна. Я щойно почав читати на вилці кілька днів тому. Ігноруючи всю драму, ось які, здається, факти:

  • FFmpeg включає в себе набори змін від libav, в той час як libav неохоче це робить (див. Дебати в Debian )
  • Chrome використовує ffmpeg, і Google доклав серйозних зусиль, щоб зробити його безпечним. libav також включає ці зміни, але повільнішими темпами ( публікація в блозі Google )
  • FFmpeg намагається зберегти якомога більше кодеків, в той час як libav відкинув деякі ( список розсилки libav , повідомлення з libav dev )
  • Спільнота FFmpeg більша, ніж libav, і найбільш відданий розробник (michael niedermayer) застряг із FFmpeg ( статистика фіксування )
  • Підтримувачі ubuntu / debian для FFmpeg були частиною fork for libav. вони додали повідомлення про заставлення до деяких інструментів командного рядка, натякаючи, що ffmpeg застарілий. це викликало багато плутанини. і debian, і ubuntu повертаються до ffmpeg.

Я трапився з Google Майклом Нідермайєром і закінчив цю посаду , в якій він пішов у відставку.
бзеаман

1
@bzeaman так, я пам'ятаю, натрапив на це. але він все ще здається в середньому на 2 злиття / вчинення
kritzikratzi

хм, не встановити кандидата в деб. Що замінило його зараз?
Stígandr

nvm mind дістав це libav-tools
Stígandr

1
Нідермайєр був причиною вилки. Це сказав, що він дуже змінився.
Ісмаїл Лучено

9

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

Схоже, це говорить про те, що це просто специфічно для Ubuntu та Debian на даний момент.

Деякий час тому ffmpeg розділився на два виделки під назвою ffmpeg і libav.

Debian слідкує за форкою libav у своєму розповсюдженні, і в майбутньому завантаженні binar / usr / bin / ffmpeg буде замінено на / usr / bin / avconv.

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

Я думаю, що в майбутньому це питання може потрапити також у Windows та інші дистрибутиви.

Щоб відповісти на ваше запитання про те, чи це саме так:

Я виконав перевірку для правильних довічного в моїй локальній касі, але читання до 1 , я бачу , що є деякі невідповідності між avconv і FFmpeg. Ця проблема є більшою, тому що попередньо встановлений файл потребує коригування, і особливо спосіб створення командного рядка повинен змінитись. Параметри, які працюють на вхідному файлі, повинні перейти до вхідного файлу "-i".

Зверніть увагу, це може бути специфічно для версії Windows. Це було розміщено стосовно версії Linux:

Інструмент для перетворення аудіо / відео FFmpeg тепер відомий як AVConv (на мою думку краще ім'я). Тож інструмент командного рядка "ffmpeg" застарілий, і слід використовувати "avconv". Наскільки я помітив, всі параметри залишилися однаковими, але слід подальше дослідження. Деякі зміни потрібно внести в СНД.

Завдання:

Встановіть AVConv на машинах (машинах), на яких працює СНД. Зазвичай avconv повинен з'являтися оновленням ffmpeg (який працював на Ubuntu; не перевірявся на Debian). Замініть "ffmpeg" на "avconv" в cis / api / ffmpeg.py, клас FFmpegTranscoder, поле prog_bin, що представляє виконуваний інструмент перетворення. Імена файлів Refactor, назви класів, назви методів, назви змінних тощо, які містять "FFmpeg" або "ffmpeg", таким чином, що вони містять AVConv. IDE, як Eclipse, може зробити це автоматично. Тест! Якщо проблеми помічені, налагоджуйте!


9
Я категорично не погоджуюся з публікацією, яка говорить про те, що "ffmpeg є застарілим і слід використовувати avconv".
slhck

@slhck Це, здається, є звичайною практикою, коли ти розкладаєш проект. Чим більше користувачів ви можете підманути, думаючи, що основна галузь застаріла, тим краще для вашого вила.
користувач253751
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.