Wie kann man avconv durch (das echte) ffmpeg ersetzen und es richtig funktionieren lassen?

27

UPDATE (Originaltext unten erhalten)

Als das echte ffmpeg kurz vor der Rückkehr stand (in 15.04), funktionierte Jon Severinssons PPA nicht mehr (für ffmpeg), und sowohl avconv-ffmpeg (jetzt " libav " genannt) als auch das echte ffmpeg (jetzt nur noch " ffmpeg ") fielen aus Zwischenveröffentlichungen stellt sich die Frage: Wie lässt sich ffmpeg am einfachsten in Distributionen vor 2015 installieren?

/AKTUALISIEREN

Weiß jemand, wie man das echte, aktuelle ffmpeg installiert (nicht die ältere Version von avconv, die mit Ubuntu geliefert wird), ohne die hier genannten Probleme zu haben ?

Gründe dafür:

  • Alles funktioniert (oder so viele haben geschrieben),
  • Verwenden Sie die neue Syntax und
  • Nach einigem Nachforschen - und ohne in die Kontroverse zu geraten - glaube ich einfach, dass die Paketierer einen Fehler bei avconv gemacht haben. Dies ist eine Lösung.

Anscheinend ist es aufgrund von Versionskonflikten nicht so einfach, wie es sein sollte, und dass avconv und ffmpeg nicht auf demselben Computer koexistieren können (vermerkt in der akzeptierten Antwort des oben verlinkten Posts). Mindestens eine Anleitung erwähnt jedoch die lokale Installation von ffmpeg (~), um eine Koexistenz zu erreichen.

Meine Version ist Precise 12.04.3 LTS, aber es scheint, dass dies auch für neuere Versionen gilt.

u2n
quelle
3
Hast du gesehen, wie FFmpeg unter Ubuntu kompiliert wird ? Es widerspricht keinem libav-Junk aus den Repos.
Logan
1
Ich schlage vor, Sie formulieren den Teil "Gründe" ein wenig um. Es scheint so, als ob Sie implizieren, dass die angenommene Überlegenheit von ffmpeg gegenüber avconv eine Tatsache ist und dass Ubuntu-Benutzer in Schwierigkeiten sind, weil das Repository Software-Defekte aufweist. Dies könnte einige unerfahrene Benutzer verwirren und erschrecken. Ich hoffe, Sie werden meinen Standpunkt verstehen, da Sie anscheinend zustimmen, dass es besser ist, nicht «in die Kontroverse» zu geraten.
Andrea Lazzarotto
1
@Brad Ich glaube immer wieder, dass es falsch ist, neue Benutzer zu erschrecken, indem man sie glauben lässt, dass sie kaputte Software haben und dass sie diese "reparieren" müssen.
Andrea Lazzarotto
1
@AndreaLazzarotto Niemand versucht, jemanden zu erschrecken. Bei der Frage handelt es sich um eine Meinung, und sie wird ausdrücklich als eine bezeichnet. Diese Meinung ist ein wichtiger Teil der Frage.
Brad
1
Hey Leute, danke für die Kommentare. Da die gefälschte avconv-Version von ffmpeg aus allen aktuellen Releases entfernt wurde, gibt es nichts mehr zu deinstallieren (und auch keine Kontroversen mehr: ^). Jon Severinsson aktualisiert sein ppa regelmäßig, so dass das echte ffmpeg einfach zu installieren und zu aktualisieren ist. Dieser Beitrag wird hier vorerst als Update dienen. (Eine vollständige Bereinigung wird später durchgeführt.)
u2n

Antworten:

25

Aktualisierte Antwort für Releases vor 2015

Da niemand ein All-Inclusive-Paket wie Jon Severinsson unterhält, ist Rmanos Methode zur Verwendung eines statischen Builds jetzt am einfachsten. Hinweis Updates müssen manuell überprüft und durchgeführt werden.

  1. Klicken Sie nach dem Aufrufen der offiziellen ffmpeg-Downloadseite auf den Link unter Linux Static Builds . (Das Ziel kann sich ändern, sodass es hier nicht direkt verlinkt ist.)
  2. Klicken Sie auf die entsprechende (32- oder 64-Bit) und gewünschte (Schnappschuss oder nummerierte) Version, um sie herunterzuladen. (Schnappschuss wird empfohlen.)
  3. Wenn die libav-Version von ffmpeg installiert wurde, entfernen Sie sie. Die beiden können sich nicht auf derselben Maschine befinden. Wenn libav noch nicht installiert war, fahren Sie mit Schritt 4 fort.

    sudo apt-get remove ffmpeg  
    sudo apt-get purge libav-tools  
    # *Ignore any autoremove message that may appear.*
    
  4. Extrahieren Sie die Dateien (und zwei Verzeichnisse) wie folgt:

    • Für Einbenutzersysteme: zu $ ​​HOME / bin
    • Für Mehrbenutzer-Setups: nach / usr / local / bin

Die statische Build-Installation ist abgeschlossen und ffmpeg ist einsatzbereit.

So aktualisieren Sie: Wenn Sie eine neuere Version überprüft und gefunden haben, kann der Installationsordner nach Datum sortiert und die vorhandenen Versionsdateien schnell identifiziert und gelöscht werden. (Die Zeitstempel stimmen alle mit der Binärdatei ffmpeg überein.) Das Update kann dann wie in der früheren Version heruntergeladen und extrahiert werden.

Sollte ein umfassendes ffmpeg-Repo erneut auftauchen, wird es wie zuvor installiert:

# Replace avconv with the real ffmpeg
#   www.askubuntu.com/a/373509/165265
#
sudo add-apt-repository ppa:<name of ppa here>
sudo apt-get update
sudo apt-get install ffmpeg

Mit der Rückkehr des echten ffmpeg zu den Releases von 2015 und darüber hinaus wird die Notwendigkeit dieser Umgehung irgendwann nachlassen.

Vielen Dank an die Community für die Hilfe.

u2n
quelle
4
Puh. Vielen Dank. avconv scheint so nah an ffmpeg zu sein, aber es scheint einige unterschiedliche Flags zu haben. Nein Danke. FFMPEG funktioniert super. Der einzige Grund, warum Ubuntu wechseln sollte, ist ein politischer Grund. Vergiss das Geräusch. ffmpeg ftw!
James T Snell
1
Die sudo apt-get dist-upgradeZeile erscheint mir für den Zweck dieses Beitrags unnötig. Die meisten Leute, die versuchen, ffmpeg zu installieren, möchten wahrscheinlich kein Distributions-Upgrade als Nebeneffekt auslösen.
Cxrodgers
@cxrodgers, absolut richtig. Ich repariere jetzt, danke.
U2N
1
Möglicherweise möchten Sie diese Antwort jetzt aktualisieren, da jon-severinsson PPA nicht mehr verfügbar ist: stackoverflow.com/questions/29585700/…
cxrodgers
1
Symlinking sollte darauf hinweisen, /usr/local/binpotenzielle Konflikte von Repo-Paketen zu verhindern, die die genannten Dateien bereitstellen. vor allem aus dem libav-tools-paket qt-faststartund dem faux " ffmpeg" für 12.04 und älter. Auch andere Benutzer haben möglicherweise nicht die richtigen Berechtigungen, um irgendetwas in einem anderen Benutzer auszuführen ~/bin(aber ich habe dies nicht untersucht). Schließlich denke ich, dass der gesamte Abschnitt "/ UPDATE" aus dieser Antwort entfernt werden kann: Es ist veraltet (das PPA ist weg) und trägt nicht mehr viel dazu bei.
Logan
7

Ich hatte kein Problem mit dem statischen Build des FFmpeg-Projekts. Es gibt Links in http://ffmpeg.org/download.html

Laden Sie die gewünschte Version / den Build herunter (entweder 32- oder 64-Bit-Version) und speichern Sie die ausführbare Datei in Ihrer $PATH(z. B. ~/bin). Wenn es abgelegt ist ~/bin, können Sie sich abmelden und dann wieder anmelden oder einfach ausführen . ~/.profile, damit Ihre Shell erkennt, dass es sich im befindet $PATH. Jetzt können Sie einfach eingeben ffmpegund der neue statische Build wird verwendet.

Beispielsweise:

% wget http://johnvansickle.com/ffmpeg/builds/ffmpeg-git-64bit-static.tar.xz
% tar xJvf ffmpeg-git-64bit-static.tar.xz
% cd ffmpeg-git-20150427-32bit-static
% ./ffmpeg
ffmpeg version N-45164-g46778ab- http://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 4.9.2 (Debian 4.9.2-10)
[...]

Vollständig statisch zu sein sollte kein Problem mit verschiedenen Linux-Versionen darstellen (bis zu einem gewissen Grad sollte der Kernel nicht zu alt sein).

Rmano
quelle
1
Danke, Rmano. Werde deine Antwort als Alternative positiv bewerten, sobald ich die magische Zahl erreiche. "Alternative", weil, wie ich gelesen habe, das, was statische Builds zuverlässig macht - mit allen eingebauten Abhängigkeiten - sie auch "schwer" macht (groß und speicherhungrig). Aus diesem Grund scheute ich mich davor zurück, diese Route zugunsten der normalgewichtigen, automatisch aktualisierten Version des Programms zu beschreiten. ... Ich glaube, ich habe es vielleicht, poste es in Kürze ...
u2n
Nun, obwohl dies im Allgemeinen für statische ausführbare Dateien zutrifft, verwenden Sie in diesem Fall keine grafischen oder umfangreichen allgemeinen Bibliotheken. Offensichtlich haben Sie Recht, wenn Sie am Ende verschiedene Kopien von ffmpeg parallel ausführen.
Rmano
2
Die akzeptierte Antwort PPA Route enthält die Version 0.1, die Wayyyyyy alt ist. Sie sollten die Methode dieser Antwort verwenden, um viele Befehle zum Laufen zu bringen.
Deadghost