it-swarm.com.de

Warum sollte ich Libav gegenüber FFmpeg wählen, oder gibt es überhaupt einen Unterschied?

Nach dem, was ich gesehen habe, scheint mir Libavs avconv ein Nachfolger von ffmpeg zu werden - stimmt das?

Wenn das stimmt, warum ist das so? Was genau macht libav besser und warum sollte ich es über ffmpeg wählen?

Ich bin auf dieses "Problem" gestoßen, als ich Ubuntu 12.04.1 LTS in einem VM installiert habe, und als ich ffmpeg installiert habe, kam die Meldung, dass mit ffmpeg veraltet ist und ich dachte zuerst "wtf?".

Wenn ich avconv benutze, kann ich meine Skripte je nach ffmpeg mehr oder weniger leicht nach libav migrieren? Ich verwende es hauptsächlich zum Schreiben von Metadaten und zur Audiokonvertierung (wav, flac, vorbis, mp3, aac).

68
burzum

Zuallererst siehe Wer kann mir den Unterschied und die Beziehung zwischen ffmpeg, libav und avconv erklären . Ein Großteil der Verwirrung ist das Ergebnis von:

  1. Benutzer, die nicht zwischen den Projekten FFmpeg und libav und ihren jeweiligen Befehlszeilentools ffmpeg und avconv unterscheiden.
  2. Die schlecht formulierten Nachrichten, die Benutzer erhalten, wenn sie versuchen, die ffmpeg von libav zu verwenden.

FFmpeg vs ffmpeg und libav vs avconv

  • FFmpeg ist der Projektname. ffmpeg ist der Name des Befehlszeilentools.
  • libav ist der Projektname. avconv ist der Name des Befehlszeilentools. Für kurze Zeit hatte libav auch eine ffmpeg.

Benutzer denken oft "Projekt", wenn "Werkzeug" diskutiert wird, was zu ...

Eine schlecht formulierte Nachricht

Also, wie wir aus dem Who can tell me ... link erfahren haben, haben sie, als libav von FFmpeg gabelte, auch vorübergehend ihre Version von ffmpeg geliefert. Als Mitglied von libav entschied sich der ffmpeg-Betreuer in Debian und Ubuntu, die Distribution auf libav umzustellen. Aus der Sicht von libav war dies der beste Schritt: eine große Benutzergemeinschaft zu zwingen, die Gabel zu benutzen.

Ubuntu wechselte während der Übergangszeit, als libav sowohl die Version von ffmpeg als auch das umbenannte Tool avconv zur Verfügung stellte. Wenn Benutzer versuchten, libavs ffmpeg zu verwenden, wurde die folgende Meldung angezeigt:

This program is not developed anymore and is only provided for compatibility.  
Use avconv instead (see Changelog for the list of incompatible changes).

In diesem Fall war das in der Nachricht erwähnte "ffmpeg" die temporäre Version von libav, die später entfernt wurde (genau wie die Nachricht). Erinnern Sie sich an den Unterschied zwischen FFmpeg und ffmpeg? Natürlich hat diese Nachricht viele Benutzer zutiefst verwirrt, die verständlicherweise nicht zwischen Projekt und Tool unterschieden haben. Besonders Ubuntu-Benutzer, denen nicht bewusst war, dass ihre Distribution ein Switcharoo durchführte, oder Benutzer, die noch nie von libav gehört haben. Ich weiß nicht, ob libav beabsichtigte, dies zu überlegen, aber sie haben diesen Nebeneffekt wahrscheinlich genossen.

Einige Ubuntu-Benutzer dachten, die Nachricht sei zu irreführend und wurde später geändert in:

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

Eine kleine Verbesserung meiner Meinung nach, aber ich habe das Gefühl, dass es nicht klar genug ist.

Welches verwende ich?

Niemand kann Ihnen sagen, welchen Sie verwenden sollen. Der Hauptunterschied für Benutzer ist, dass FFmpeg viele Commits von libav zusammenführt, aber es ist nicht so gegenseitig, da libav so zu tun scheint, als ob FFmpeg nicht existiert, und nur gelegentlich Cherry-Picks von FFmpeg.

Für den Gelegenheitsnutzer sollte es keine großen Unterschiede geben. Für Ubuntu-Benutzer, die FFmpeg verwenden möchten, können Sie es kompilieren, indem Sie How To FFmpeg und x264 , Jon Severinssons FFmpeg PPA verwenden oder eine einfache statische Binärdatei aus dem FFmpeg-Download Seite.

Für weitere Informationen siehe Die FFmpeg/Libav Situation .

93
llogan

Update (Anfang 2016)

  • Die Gewinnchancen bleiben zugunsten von ffmpeg. Die meisten Distributionen haben zurückgeschaltet/wechseln zurück zu ffmpeg ( Gentoo , Debian )
  • Ein praktischer Vorteil von ffmpeg ist die breite Verfügbarkeit von Binärdateien für viele Plattformen. Das googeln nach statischen libs/dynamischen libs/binaries liefert gute Ergebnisse für Linux, Mac, Windows, iOS und Android für ffmpeg, während ich nur Linux- und Windows-Builds für libav finden konnte. Dies kann ein wichtiger Punkt sein, wenn Sie wenig Erfahrung mit C/makefiles haben.

Die aktuelle Situation (Mitte 2015)

Es scheint besser zu sein, sich an FFmpeg zu halten. Die ganze Situation ist ziemlich chaotisch und hässlich. Ich habe vor ein paar Tagen angefangen, auf der Gabel nachzulesen. Das ganze Drama ignorierend, sind hier, was scheint, Tatsachen zu sein:

  • FFmpeg enthält Änderungssätze von libav, während libav dies nur ungern tut (siehe Debian-Debatte ).
  • Chrome verwendet ffmpeg und Google hat große Anstrengungen unternommen, um es sicher zu machen. libav nimmt diese Änderungen ebenfalls auf, allerdings langsamer ( google blog post )
  • FFmpeg versucht so viele Codecs wie möglich zu behalten, während libav einige verwarf ( libav mailing list , post von einem libav dev )
  • Die FFmpeg-Community ist größer als libav, und der engagierteste Entwickler (michael niedermayer) hat sich an FFmpeg gehalten ( commit stats )
  • Die Ubuntu/Debian-Betreuer für FFmpeg waren Teil der libav-Fork. Einige Befehlszeilentools erhielten Verfallsmeldungen, die darauf hindeuten, dass ffmpeg veraltet ist. dies sorgte für viel Verwirrung. beide debian und ubuntu wechseln zurück zu ffmpeg.
30
kritzikratzi

Wenn Sie hier gehen, werden Sie feststellen, dass das letzte Update September 2012 ist (vor ein paar Monaten).

Es sieht so aus, als ob dies nur Ubuntu und Debian betrifft.

Vor einiger Zeit spaltete sich ffmpeg in zwei Gabeln unter dem Namen ffmpeg und libav auf.

Debian folgt der libav-Verzweigung in seiner Distribution und in einem bevorstehenden Upload wird die Binärdatei/usr/bin/ffmpeg durch/usr/bin/avconv ersetzt.

Soweit ich weiß, ist es nicht notwendig, sofort zu wechseln, aber Winff sollte aktualisiert werden, um beide Binärdateien zuzulassen (aus der Debian-Perspektive mit einer Vorliebe für avconv). Ich weiß, dass Sie den Speicherort der Binärdatei in den Einstellungen festlegen können, aber ich denke, dass Winff mit dem festgelegten Speicherort die richtige Binärdatei finden sollte.

Ich denke in Zukunft könnten auch Windows und andere Distributionen von diesem Problem betroffen sein.

Um Ihre Frage zu beantworten, ob es genau dasselbe ist oder nicht:

Ich habe die Überprüfungen für die richtige Binärdatei in meinem lokalen Checkout implementiert, aber beim Lesen von 1 sehe ich, dass es einige Inkonsistenzen zwischen avconv und ffmpeg gibt. Dieses Problem ist größer, da die voreingestellte Datei angepasst werden muss und insbesondere die Art und Weise, wie die Befehlszeile erstellt wird, geändert werden muss. Die Optionen, die für die Eingabedatei gelten, müssen VOR der Eingabedatei "-i" angegeben werden.

Bitte beachten Sie, dass dies spezifisch für die Windows-Version sein kann. Dies wurde in Bezug auf die Linux-Version gepostet:

Das Audio/Video-Konvertierungstool FFmpeg heißt jetzt AVConv (meiner Meinung nach ein besserer Name). Das Kommandozeilen-Tool "ffmpeg" ist veraltet und "avconv" sollte verwendet werden. Soweit mir aufgefallen ist, sind alle Parameter gleich geblieben, aber es sollten weitere Untersuchungen durchgeführt werden. Einige Änderungen müssen in CIS vorgenommen werden.

Aufgaben:

Installieren Sie AVConv auf den Computern, auf denen CIS ausgeführt wird. Normalerweise sollte avconv das Update von ffmpeg sein (das unter Ubuntu funktionierte; nicht für Debian getestet). Ersetzen Sie "ffmpeg" durch "avconv" in cis/api/ffmpeg.py, Klasse FFmpegTranscoder, Feld prog_bin, das die ausführbare Datei des Konvertierungstools darstellt. Refactor-Dateinamen, Klassennamen, Methodennamen, Variablennamen usw., die "FFmpeg" oder "ffmpeg" enthalten, so dass sie AVConv enthalten. Ein IDE wie Eclipse könnte dies automatisch tun. Prüfung! Wenn Probleme festgestellt werden, debuggen Sie!

9
Everett