Які відмінності та схожість між ffmpeg, libav та avconv?


246

Коли я запускаю ffmpegUbuntu, він показує:

$ 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
Це означає, що ви даєте неправильні аргументи командного рядка.
Діпан Мехта

18
This program is not developed anymore and is only provided for compatibility. Use avconv instead
чому

1
Що ти намагаєшся зробити? Більшість - ffmpegце бібліотека, і головний ffmpegкомандний рядок - це більше для демонстрації її особливостей (хоча це неважливо, що ви використовуєте, якщо це допомагає). Якщо ви хочете використовувати лише як команду, існує багато програм, які використовують ffmpeg, щоб робити те, що ви хочете зробити.
Діпан Мехта

19
Є корисне пояснення всієї угоди на blog.pkh.me/p/13-the-ffmpeg-libav-situation.html
Tronic

4
Я не можу сказати тобі всі відмінності, але: avconv -ss 00:01:42 -t 00:00:32 -i джерело-ім'я файла -acodec копія цільового імені файлу не працює, і ffmpeg -ss 00:01:42 -t 00:00 : 32 -i sourcefilename -acodec копія targetfilename працює так, як очікувалося, навіть якщо документація збігається

Відповіді:


473

Заплутані повідомлення

Ці повідомлення є досить оманливими і, зрозуміло, є джерелом плутанини. Старіші версії Ubuntu використовували Libav, що є вилкою проекту FFmpeg. FFmpeg повернувся в Ubuntu 15.04 "Vivid Vervet".

Вилка в основному була недоброзичливим результатом конфліктних особистостей та стилів розвитку в межах спільноти FFmpeg. Варто зауважити, що сервіс для Debian / Ubuntu перейшов з FFmpeg на Libav за власним бажанням через причетність до вилки Libav.

Справжній ffmpegпроти підробленого

Певний час і Libav, і FFmpeg окремо розробляли власну версію ffmpeg.

Libav потім перейменував їх Bizarro ffmpegдо avconvдистанціюватися від проекту FFmpeg. Під час перехідного періоду з'явилося повідомлення "не розвинене більше", щоб вказати користувачам почати використовувати avconvзамість їх підробленої версії ffmpeg. Це заплутало користувачів у думці, що FFmpeg (проект) мертвий, що не відповідає дійсності. Поганий вибір слів, але я не можу уявити, що Libav не очікувала такої реакції від загальних користувачів.

Це повідомлення було видалено вище, коли підроблений " ffmpeg" нарешті був видалений з джерела Libav, але, залежно від вашої версії, він все ще може з'являтися в Ubuntu, оскільки джерело Libav, яке Ubuntu використовує, перебуває з перехідного періоду ffmpeg-av-avv.

У червні 2012 року повідомлення було перероблено для пакета libav - 4:0.8.3-0ubuntu0.12.04.1. На жаль, нове "застаріле" повідомлення викликало додаткову плутанину користувачів.

Починаючи з Ubuntu 15.04 «Vivid піддослідних», FFmpeg, ffmpegце ще в сховищах знову.

libav vs Libav

Щоб ще більше ускладнити справи, Libav обрав ім’я, яке історично використовувалося FFmpeg для позначення своїх бібліотек (libavcodec, libavformat тощо). Наприклад, список розсилки libav-користувачів для запитань та обговорень щодо використання бібліотек FFmpeg не пов'язаний з проектом Libav.

Як сказати різницю

Якщо ви використовуєте, avconvто ви використовуєте Libav. Якщо ви використовуєте, ffmpegви можете використовувати FFmpeg або Libav. Щоб дізнатись про різницю, зверніться до першого рядка на консольному виході: повідомлення про авторські права буде згадувати FFmpeg або Libav.

По-друге, схеми нумерації версій відрізняються. Кожна з бібліотек FFmpeg або Libav містить version.hзаголовок, який показує номер версії. FFmpeg закінчується трьома цифрами, наприклад 57,67. 100 , а Лібава закінчиться однією цифрою, наприклад 57,67. 0 . Ви також можете переглянути номери версій бібліотеки, запустивши ffmpegабо avconvпереглянувши вихід консолі.

Якщо ви хочете використовувати справжнє ffmpeg

Ubuntu 15.04 "Vivid Vervet" або новішої версії

Справжній ffmpegзнаходиться у сховищі, тому його можна встановити за допомогою:

apt-get install ffmpeg

Для старих версій Ubuntu

Ваші варіанти:

Ці методи не нав'язливі, оборотні та не заважатимуть системі чи будь-яким пакетам репозиторію.

Інший можливий варіант - оновити до Ubuntu 15.04 "Vivid Vervet" або новіший і просто використовувати ffmpegзі сховища.

Також див

Про цікаву статтю в блозі про ситуацію, а також обговорення основних технічних відмінностей між проектами дивіться у ситуації FFmpeg / Libav .


89
схоже, це особисте питання
mirza

1
Якщо навіть після встановлення справжнього ffmpeg ви не зможете змусити його працювати. Ви повинні видалити ffmpeg за замовчуванням, що постачається з ubuntu як libav-tools, див.: Askubuntu.com/questions/162740/how-do-i-uninstall-ffmpeg .
user568109

@ user568109 Це залежить від того, як ви встановили ffmpeg. Див. Як Скомпілювати FFmpeg на Ubuntu, Debian або Mint або просто використовувати збірку Linuxffmpeg . Будь-який із цих методів повинен працювати, якщо також встановлено пакет репозиторію.
llogan

1
Я створив ffmpeg, але під час запуску ffmpeg з терміналу працював один відправлений за замовчуванням і робив apt-get delete ffmpeg не видаляв його. Тож я залишив повідомлення для тих, хто зациклювався на цьому питанні, просто для усунення плутанини. Він поставляється як libav-інструменти.
користувач568109

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