FFmpeg und x264 unter Ubuntu kompilieren

Um FFmpeg in vollem Umfang nutzen zu können, muss man es selber aus dem Quellcode kompilieren. Natürlich reichen die normalen Ubuntu-Pakete für den standard User, allerdings benötigt man z.B. für .flv-Videos die selbst kompilierte Version. Dies kann ganz einfach realisiert werden. Weiter unten findet sich auch ein guide um die Pakete zu aktualisieren

FFmpeg und x264 kompilieren und installieren

  1. Zuerst einmal müssen eventuell bereits installierte deinstalliert werden:

    sudo apt-get remove ffmpeg x264 libx264-dev
  2. Benötigte Pakete zum Kompilieren installieren:

    sudo apt-get update
    sudo apt-get install build-essential git-core checkinstall yasm texi2html \
    libfaac-dev libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev \
    libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libva-dev libvdpau-dev \
    libvorbis-dev libvpx-dev libx11-dev libxfixes-dev libxvidcore-dev zlib1g-dev
  3. Aktuelle Quelldateien von x264 hohlen, kompilieren und installieren:

    cd
    git clone git://git.videolan.org/x264.git
    cd x264
    ./configure
    make
    sudo checkinstall --pkgname=x264 --pkgversion="3:$(./version.sh | \
    awk -F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes \
    --fstrans=no --default
  4. Aktuelle Quelldateien von FFmpeg hohlen, kompilieren und installieren:

    cd
    git clone git://git.videolan.org/ffmpeg.git
    cd ffmpeg
    ./configure --enable-gpl --enable-version3 --enable-nonfree --enable-postproc \
    --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb \
    --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis \
    --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab
    make
    sudo checkinstall --pkgname=ffmpeg --pkgversion="5:$(./version.sh)" --backup=no \
    --deldoc=yes --fstrans=no --default
    hash x264 ffmpeg ffplay ffprobe

Damit ist man auch schon fertig! Wie man x264 in Verbindung mit FFmpeg benutzt, findet sich hier: http://rob.opendot.cl/index.php/useful-stuff/ffmpeg-x264-encoding-guide/

FFmpeg und x264 updaten

Da man die Pakete selber kompiliert hat, muss man auch manuell die Updates einspielen , falls es welche gibt. Dies bringt teilweise neue Features bzw. Bugfixes

  1. Zuerst werden x264 unf FFmpeg deinstalliert und die Abhängigkeiten aktualisiert.

    sudo apt-get remove ffmpeg x264 libx264-dev
    sudo apt-get update
    sudo apt-get install build-essential git-core checkinstall yasm texi2html \
    libfaac-dev libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev \
    libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libva-dev libvdpau-dev \
    libvorbis-dev libvpx-dev libx11-dev libxfixes-dev libxvidcore-dev zlib1g-dev
  2. x264 source code aktualisieren:

    cd ~/x264
    make distclean
    git pull
  3. danach x264 kompilieren und installieren:

    ./configure
    make
    sudo checkinstall --pkgname=x264 --pkgversion="3:$(./version.sh | \
    awk -F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes \
    --fstrans=no --default
  4. FFmpeg source code aktualisieren

    cd ~/ffmpeg
    make distclean
    git pull
  5. FFmpeg kompilieren und installieren

    ./configure --enable-gpl --enable-version3 --enable-nonfree --enable-postproc \
    --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb \
    --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis \
    --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab
    make
    sudo checkinstall --pkgname=ffmpeg --pkgversion="5:$(./version.sh)" --backup=no \
    --deldoc=yes --fstrans=no --default
    hash x264 ffmpeg ffplay ffprobe
  1. Das Bauen ist noch das einfachste bei diesem verrückten Programm🙂 Sourcen an denen ich nichts editiere lade ich immer nach /tmp und nicht nach ~.
    Was hast Du denn schönes mit ffmpeg vor?

    • Man kann sich auch z.b. ein Verzeichnis src in ~ anlegen und darin arbeiten. Grundsätzlich sollte man schon ein festes Verzeichnis dafür anlegen, da sonst schnell die Übersicht verloren geht da hast du recht!

    • Gans
    • 1. März 2011

    Die Anleitung ist komplett falsch! Erstens beschreibt sie kein Debian basierendes System, zweitens werden Libs und devs am Paketmanagement komplett vorbei installiert.
    Checkinstall ist was für privat, aber nicht für Anleitungen die veröffentlicht werden.

    • Wieder einer von diesen Wichtigtuern! Nicht ausprobieren aber bleich meckern…

      a. Die Anleitung beschreibt ein Debian-Basierendes System. Der beste Beweis ist, dass es einwandfrei funktioniert!

      b. Die Installation per checkinstall ist die empfohlene Methode für selber kompilierte Pakete. Ich glaube du verwechselst das mit make install!

      c. Die Anleitung ist auch für den Gebrauch auf einem System gedacht, nicht für den Bau von validen .deb-Paketen, die zum Download angeboten werden!

      Dazu ist nun alles gesagt!

    • Benjamin
    • 1. März 2011

    Was funktioniert denn mit den Ubuntu Paketen nicht?

    • PulseAudio/ALSA Integrierung habe ich mit der nativen Ubuntu-Version nicht hinbekommen😦 Auch kann man diese Version einfacher aktuell halten, was neue bugfixes mitbringt. Das die Pakte in den Ubuntu-Quellen nicht immer die aktuellsten sind ist ja bekannt.

    • logax
    • 1. März 2011

    Danke gleich mal testen. Ich hatte sowieso vor ffmpeg selber zu kompilieren. Aber die Anleitung im wiki von ubuntuusers ist für mich sehr unübersichtlich. Da kommt mir diese gerade recht.🙂

    15 min später. Und es läuft. :))

    • Aus diesem Grund habe ich nach einer anderen gesucht und bin auf diese Anleitung gestoßen und hab die dann auch gleich gepostet!🙂

    • Tomboy
    • 2. März 2011

    Gibt es für ffmpeg kein PPA?
    Ich scheue mich ein wenig davor dein Skript abzuarbeiten, vor allem, weil ich dann ja selber nach updates Ausschau halten muss.

    • Ich habe zwar ein x264-PPA für Maverick gefunden aber für ffmpeg gibt es nur einen Natty-Daily-PPA, allerdings kein Paket für Maverick😦

    • Robert
    • 2. März 2011

    Es sollte aber meiner Meinung nach schon darauf hinweisen das es eigentlich nicht nötig ist FFmpeg selber zu Kompilieren.
    Da unbedarfte User jetzt der Meinung sein könnten das x264(H264) nur so nutzbar ist. Was ja nicht der Fall ist.
    Die richtigen Pakete aus Multiverse installiert und schon geht alles.
    Natürlich sind die Pakete nicht so aktuell. Doch wer braucht das schon als normal User…
    Die Sicherheitupdates bekomme ich ja so oder so.

    • Robert
    • 2. März 2011

    Ups, lesen hilft. Irgendwie den zweiten Satz überlesen. Nichts für ungut. Nicht persönlich nehmen.

    • Gans
    • 3. März 2011

    „Die Anleitung beschreibt ein Debian-Basierendes System. Der beste Beweis ist, dass es einwandfrei funktioniert!“

    Nein, beschreibt die Anleitung nicht, da sie am Ubuntu Paketmanagement komplett vorbei geht.
    Dazu müsstest du wissen , wie man per dh_make Source bearbeitet, oder per dsc abgleicht.
    Scheinst du aber nicht zu wissen.
    Wenn du gerne kompilierst und Pakete erstellst, warum lernst du es denn nicht.
    ffmpeg besteht aus 15 – 17 Einzelpaketen.
    http://packages.ubuntu.com/de/maverick/ffmpeg
    Bei deiner Anleitung gehen davon 14-16 komplett am Paketmanagement vorbei. Dazu findet sich kein Hinweis in deiner Anleitung.

    • logax
    • 10. März 2011

    Welche Parameter muss ich bei checkinstall angeben um die Pakete:

    libxvidcore4, libmp3lame0, libfaac0

    als Abhängigkeit anzugeben. Die braucht es nämlich um zu starten.

    Grund: Ich hatte gestern mein OS neu aufgesetzt und hab die letztens erstellten Pakete installiert.

    • a@web.de
    • 8. Juni 2011

    –requires=libxvidcore4, libmp3lame0, libfaac0

    • schulzk
    • 9. Januar 2012

    Schöne Anleitung. Hat auch super funktioniert. Allerdings sind es immer noch viele Einzelschritte im update und das ich abschreckend . Fände es besser, wenn das per Script ginge

  1. No trackbacks yet.

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: