Was sind die Unterschiede und Ähnlichkeiten zwischen ffmpeg, libav und avconv?

246

Wenn ich ffmpegunter Ubuntu laufe , zeigt es:

$ 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).

Oder es zeigt (abhängig von der Ubuntu-Version):

$ 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.

Ich habe avconv auf http://libav.org gefunden . Ich bin nur ratlos von ihnen.

Warum
quelle
1
Dies bedeutet, dass Sie falsche Befehlszeilenargumente angeben.
Dipan Mehta
18
This program is not developed anymore and is only provided for compatibility. Use avconv instead
Warum
1
Was versuchst du zu machen? Diese ffmpegBibliothek ist meistens und die Hauptbefehlszeile ffmpegdient eher der Demonstration ihrer Funktionen (obwohl es keine Rolle spielt, dass Sie sie verwenden, wenn sie hilft). Wenn Sie nur als Befehl verwenden möchten, gibt es viele Anwendungen, die ffmpeg verwenden, um das zu tun, was Sie tun möchten.
Dipan Mehta
19
Es gibt eine hilfreiche Erklärung des gesamten Geschäfts unter blog.pkh.me/p/13-the-ffmpeg-libav-situation.html
Tronic
4
Ich kann Ihnen nicht alle Unterschiede erklären, aber: avconv -ss 00:01:42 -t 00:00:32 -i Quelldateiname -acodec Kopie Zieldateiname funktioniert nicht und ffmpeg -ss 00:01:42 -t 00:00 : 32 -i Quelldateiname -acodec Kopie Zieldateiname funktioniert wie erwartet, obwohl die Dokumentationen übereinstimmen

Antworten:

472

Verwirrende Nachrichten

Diese Botschaften sind eher irreführend und verständlicherweise verwirrend. Ältere Ubuntu-Versionen verwendeten Libav, eine Abzweigung des FFmpeg-Projekts. FFmpeg kehrte in Ubuntu 15.04 "Vivid Vervet" zurück.

Die Gabelung war im Grunde ein nicht gütliches Ergebnis widersprüchlicher Persönlichkeiten und Entwicklungsstile innerhalb der FFmpeg-Community. Es ist erwähnenswert, dass der Betreuer von Debian / Ubuntu aufgrund seiner Beteiligung an der Libav-Gabel von FFmpeg zu Libav gewechselt ist.

Das echte ffmpeggegen das falsche

Für eine Weile entwickelten sowohl Libav als auch FFmpeg separat ihre eigene Version von ffmpeg.

Libav benannte dann sein bizarres ffmpegum avconv, um sich vom FFmpeg-Projekt zu distanzieren. Während der Übergangszeit wurde die Meldung "Nicht mehr entwickelt" angezeigt, um die Benutzer anzuweisen, avconvanstelle ihrer gefälschten Version von zu verwenden ffmpeg. Dies verwirrte die Benutzer zu dem Gedanken, dass FFmpeg (das Projekt) tot ist, was nicht wahr ist. Eine schlechte Wortwahl, aber ich kann mir nicht vorstellen, dass Libav eine solche Antwort von allgemeinen Benutzern nicht erwartet.

Diese Nachricht wurde stromaufwärts entfernt, als das gefälschte " ffmpeg" endgültig aus der Libav-Quelle entfernt wurde. Abhängig von Ihrer Version kann sie jedoch weiterhin in Ubuntu angezeigt werden, da die von Ubuntu verwendete Libav-Quelle aus der Übergangszeit von ffmpeg zu avconv stammt.

Im Juni 2012 wurde die Nachricht für das Paket umformuliertlibav - 4:0.8.3-0ubuntu0.12.04.1 . Leider hat die neue "veraltete" Nachricht zusätzliche Verwirrung bei den Benutzern verursacht.

Beginnend mit Ubuntu 15.04 „Vivid Vervet“, FFmpegs ffmpegist zurück in den Repositories wieder.

libav vs Libav

Um die Sache noch weiter zu verkomplizieren, wählte Libav einen Namen, der von FFmpeg historisch verwendet wurde, um auf seine Bibliotheken zu verweisen (libavcodec, libavformat usw.). Beispielsweise ist die Mailingliste für libav-Benutzer für Fragen und Diskussionen zur Verwendung der FFmpeg-Bibliotheken nicht mit dem Libav-Projekt verbunden.

Wie man den Unterschied erkennt

Wenn Sie verwenden, verwenden avconvSie Libav. Wenn Sie verwenden, können ffmpegSie FFmpeg oder Libav verwenden. In der ersten Zeile der Konsolenausgabe finden Sie den Unterschied: In der Copyright-Mitteilung wird entweder FFmpeg oder Libav erwähnt.

Zweitens unterscheiden sich die Versionsnummerierungsschemata. Jede der FFmpeg- oder Libav-Bibliotheken enthält einen version.hHeader mit einer Versionsnummer. FFmpeg endet dreistellig, z. B. 57,67. 100 , und Libav endet mit einer Ziffer wie 57,67. 0 . Sie können die Versionsnummern der Bibliothek auch anzeigen, indem Sie ffmpegoder avconvausführen und die Konsolenausgabe anzeigen.

Wenn Sie das echte verwenden möchten ffmpeg

Ubuntu 15.04 "Vivid Vervet" oder neuer

Der Real ffmpegbefindet sich im Repository, sodass Sie ihn installieren können mit:

apt-get install ffmpeg

Für ältere Ubuntu-Versionen

Ihre Optionen sind:

Diese Methoden sind nicht aufdringlich, reversibel und beeinträchtigen weder das System noch Repository-Pakete.

Eine andere mögliche Option ist ein Upgrade auf Ubuntu 15.04 "Vivid Vervet" oder neuer und nur die Verwendung ffmpegaus dem Repository.

Siehe auch

Einen interessanten Blog-Artikel über die Situation sowie eine Diskussion über die wichtigsten technischen Unterschiede zwischen den Projekten finden Sie unter Die FFmpeg / Libav-Situation .

llogan
quelle
89
sieht aus wie es ein persönliches Problem ist
Mirza
1
Wenn Sie das echte ffmpeg auch nach der Installation nicht zum Laufen bringen können. Sie sollten das mit ubuntu als libav-tools gelieferte Standard-ffmpeg entfernen, siehe: askubuntu.com/questions/162740/how-do-i-uninstall-ffmpeg .
user568109
@ user568109 Es hängt davon ab, wie Sie ffmpeg installiert haben. Siehe Kompilieren von FFmpeg unter Ubuntu, Debian oder Mint oder verwenden Sie einfach einen Linux-Build vonffmpeg . Jede dieser Methoden sollte funktionieren, wenn das Repository-Paket ebenfalls installiert ist.
Llogan
1
Ich habe ffmpeg erstellt, aber beim Ausführen von ffmpeg vom Terminal aus wurde der mitgelieferte Standard ausgeführt, und apt-get remove ffmpeg hat ihn nicht entfernt. Also habe ich eine Nachricht für diejenigen hinterlassen, die mit diesem Problem beschäftigt sind, nur um die Verwirrung zu beseitigen. Es wird als libav-tools geliefert.
user568109
Es scheint, dass in der Open-Source-Community ein "Marken" -System benötigt wird, um diese Situationen zu vermeiden !!!
Rkachach