Wie installiere ich die neuesten Entwicklungsbibliotheken von FFmpeg in meinem Ubuntu?

7

Ich bin dabei, FFmpeg 2.0.1 (die neueste Version) in meinem Ubuntu zu installieren. Ich habe bereits die älteren Entwicklungsbibliotheken in meinem System installiert. In der vorherigen Installation habe ich sie nicht aus dem Quellcode erstellt. Ich habe "Synaptic Package Manager" verwendet.
Kann mir jemand bei folgenden Problemen helfen:

  1. Warum zeigt der Synaptic Package Manager nicht die neuesten Versionen an, damit ich sie problemlos aktualisieren kann? Kann ich etwas tun, um das Problem zu beheben?
  2. Wie finde ich die Version der Bibliotheken, die bereits auf meinem System installiert sind? (Ich weiß sicher, dass es eine ältere Version ist, aber ich möchte die Versionsnummer wissen).
  3. Ich versuche, die ältere Version VOLLSTÄNDIG zu löschen und die neuen Bibliotheken erneut aus dem Quellcode zu installieren. Kann mir jemand dabei helfen?
jsp99
quelle

Antworten:

5

Warum zeigt der Synaptic Package Manager nicht die neuesten Versionen an?

Aus Ubuntu Wiki - Stabile Release-Updates :

Sobald eine Ubuntu-Version fertiggestellt und veröffentlicht wurde, werden Updates für sie nur unter bestimmten Umständen veröffentlicht und müssen einem speziellen Verfahren folgen, das als "Stable Release Update" oder SRU bezeichnet wird.

Dies bedeutet, dass Pakete mit aktiven Upstream-Quellen häufig nicht auf dem neuesten Stand gehalten werden.

Kann ich etwas tun, um das Problem zu beheben?

Sie können Ihre eigene aktuelle Version von ffmpeg und seinen Bibliotheken kompilieren und installieren, indem Sie einer schrittweisen Anleitung folgen: Kompilieren Sie FFmpeg unter Ubuntu, Debian oder Mint . Dieses Handbuch führt eine lokale Installation durch, sodass Repository-Pakete oder Systemdateien nicht beeinträchtigt werden. Wenn Sie jedoch etwas kompilieren, das von den neuen Bibliotheken abhängt, müssen Sie möglicherweise angeben, wo sich Ihre neuen ffmpeg-Bibliotheken befinden.

Wenn Sie viele Programme kompilieren oder mehrere neuere Pakete als die bereitgestellten benötigen, ist Ubuntu auf lange Sicht möglicherweise nicht die effizienteste Distribution für Sie.

Wie finde ich die Version der Bibliotheken, die bereits auf meinem System installiert sind?

Die Hauptversion ist im Paketnamen enthalten, z libavcodec53.

Ich versuche, die ältere Version VOLLSTÄNDIG zu löschen und die neuen Bibliotheken erneut aus dem Quellcode zu installieren.

Wenn Sie eine Systeminstallation durchführen möchten, die das Paket ffmpeg oder libav-tools und / oder die Bibliotheken ersetzt, können Sie einfach die vorhandenen Pakete entfernen, ffmpeg kompilieren und dann mit checkinstalleiner anderen Methode auf dem System installieren . Sehen Sie sich diese alte Version des zuvor erwähnten Handbuchs an, in dem all dies ausgeführt wird. Beachten Sie jedoch, dass es veraltet ist und Sie möglicherweise zumindest --extra-libs=-ldlIhre ffmpeg-Konfigurationszeile ergänzen müssen .

Wenn Sie eine lokale Installation durchführen möchten, befolgen Sie die aktuelle Version des Kompilierungshandbuchs.


Irreführende Paketnamen

Sie sollten sich bewusst sein, dass das sogenannte "ffmpeg" aus dem Repository nicht von FFmpeg stammt, sondern von einer Abzweigung namens libav. Siehe Wer kann mir den Unterschied und die Beziehung zwischen ffmpeg, libav und avconv erklären?

llogan
quelle
Der Installationsprozess führt eine lokale Installation einer statischen ffmpeg-Bibliothek durch. Können Sie eine Möglichkeit nennen, es dynamisch zu gestalten und den Pfad der .so-Datei zu LD_LIBRARY_PATH hinzuzufügen? Ich bin mit den Terminalbefehlen nicht vertraut.
Jsp99
@ jsp99 Sorry, aber ich baue nie als geteilt. Siehe ./configure --helpfür jedes Programm.
Llogan
Ich habe gerade Geany installiert und versuche herauszufinden, wie die "Build-Befehle" so eingestellt werden, dass sie die FFmpeg-Bibliothek erkennen und mir "a.out" geben. Kannst du irgendwie helfen? Danke :)
jsp99
Aber woher weiß ich, wo sich meine neuen ffmpeg-Bibliotheken befinden, und sage der anderen Software, die ich kompiliere? Ich würde sogar so weit gehen, die neueste Quelle herunterzuladen und wie in der Anleitung gezeigt zu kompilieren , aber mein Problem ist, dass der Befehl 'ffmpeg' selbst über die Befehlszeile und die andere nicht zugänglich ist, selbst wenn das Debian-Paket erstellt und installiert wird Software, die ich kompiliere, sieht die neuen Bibliotheken nicht.
Nickolai Leschov
@NickolaiLeschov Das Handbuch installiert kein Debian-Paket und installiert nichts auf dem System. Wenn auf das neue, kompilierte ffmpeg nicht über die Befehlszeile zugegriffen werden kann, müssen Sie es wahrscheinlich ausführen . ~/.profile.
Llogan
1

Diese Antwort ist zu helfen Neulinge die neuesten Entwicklungsbibliotheken von FFmpeg und installieren WORK mit ihnen. Ich habe es auf die harte Tour gelernt, dass die Installation einer Entwicklungsbibliothek nur der Anfang ist. Der wirklich schwierige Teil besteht darin, (mit entsprechenden Flags) eine ausführbare Datei (erfolgreich!) Aus der Quelldatei zu kompilieren und zu erstellen.

Das Verfahren im obigen Link ist ziemlich einfach (obwohl es langwierig und etwas zeitaufwändig ist). Sie müssen die Befehle kopieren und in Ihr Terminal einfügen.

  • Das obige Verfahren erstellt eine lokale Installation der FFmpeg-Bibliothek. Es ist eine statische Bibliothek. Mit lokaler Installation meine ich, dass das System nichts über die Bibliothek weiß.

Informationen zu Bibliotheksarten und deren Verwendung finden Sie mit Hilfe von Google. Dies reicht aus, um Ihnen den Einstieg zu erleichtern: Arten von Bibliotheken . Sie können das Lesen überspringen, wenn Sie nur die Kompilierung des Quellcodes mithilfe der Bibliotheken durchführen möchten.

  • Das ist der schwierige Teil. Ich musste stundenlang versuchen, diesen Teil richtig zu machen. Sie müssen den Compiler über Ihre FFmpeg-Bibliothek informieren . Sie tun dies tatsächlich im nächsten Schritt, während Sie ihm die entsprechenden Flags geben. Vor dem nächsten Schritt müssen Sie jedoch einige Vorbereitungen treffen.

Kopieren Sie alle .pc- Dateien aus / home / jsp99 / ffmpeg_build / lib / pkgconfig und fügen Sie sie in / usr / local / lib / pkgconfig ein

Da das Kopieren und Einfügen in Ubuntu nicht so einfach ist, folgen Sie diesem Link, um Anweisungen zu erhalten.

  • Geben Sie diesen Befehl in das Terminal ein, um den Quellcode tatsächlich zu kompilieren und eine ausführbare Datei zu erstellen:

gcc -Wall -o module1.out -I / home / jsp99 / ffmpeg_build / include -L / home / jsp99 / ffmpeg_build / lib module1.c $ (pkg-config --cflags --libs libavformat libavcodec libswscale)


/ home / jsp99 ist der Home-Ordner des aktuellen Benutzers.
module1.c ist der Name meiner Quelldatei.
module1.out ist der Name der ausführbaren Datei (Ausgabe).

jsp99
quelle