Mediadateien mit ffmpeg umwandeln (Teil I)

There was a time, when I shared a blog. This post was written by Stephan. See all blogpost from him or stalk him on github.


Das folgende Tutorial soll zeigen, wie man aus Flashvideos (Youtube) oder anderen Videodateien mit Hilfe von ffmpeg die Audiospur extrahieren und als mp3 & Co abspeicheren kann. Die Umwandlung erfolgt dabei über ein kleines Shellscript, dass individuell angepasst werden kann.

Allgemein:

Folgende Pakete müssen installiert werden:

sudo apt-get install build-essential yasm subversion git-core checkinstall

Erklärung:

  1. build-essential: stellt die grundlegenden Pakte fürs Kompilieren zur Verfügung
  2. yasm: beinhaltet einen Assembler, den wir ebenfalls zum Kompilieren der benötigten Encoder benötigen, bewirkt eine Optimierung des Quellcodes bei x264 (mehr)
  3. subversion und git: ermöglichen das Downloaden der aktuellsten Versionen von ffmpeg, xvid u.a. (aus den entsprechenden Repositories)
  4. checkinstall: erzeugt Debianpakete und installiert diese sofort (bei der Angabe von - -install=no wird nur ein Debianpaket erstellt)
Alle heruntergeladenen Archive werden wir im Ordner /tmp/capture abspeichern und auch kompilieren. Okay, let's go...

Encoder/Decoder

ffmpeg soll mit den neusten Encodern/Decodern kompiliert werden. Dies sind:
  1. lame mp3
  2. faac
  3. faad2
  4. h264
  5. xvid

lame

ffmpeg aus den Ubuntuquellen bietet von Haus aus keine mp3 Unterstüzung. Deshalb müssen wir uns lame als MP3-Encoder installieren - und das natürlich in der neusten Version.

Wir öffnen die Konsole, wechseln ins Verzeichnis /tmp, legen den Ordner "capture" an und betreten diesen anschließend:

cd /tmp
mkdir capture
cd  capture

Dann holen wir uns das neuste lame-Archiv und compilieren es mit den Standardwerten (Version wenn nötig anpassen, eine Übersicht gibt es hier):

wget http://dfn.dl.sourceforge.net/sourceforge/lame/lame-398-2.tar.gz
tar -xzf lame-398-2.tar.gz
cd lame-398-2
./configure
make
sudo checkinstall


faac und faad2, Advanced Audio Coder (MPEG2-AAC, MPEG4-AAC)

Analog wie bei lame gehen wir jetzt bei faac und faad vor (wir befinden uns wieder im Ordner /tmp/capture). Achtung: Wer denkt, dass er diesen Endoder/Decoder nicht braucht, soll gewarn seint: Youtube verwendet (auch oder nur ???) AAC in seinen flv-Dateien!!!

wget http://switch.dl.sourceforge.net/sourceforge/faac/faac-1.28.tar.gz
tar -xzf faac-1.28.tar.gz
cd faac-1.28
./configure --enable-shared
make
sudo checkinstall

wget http://switch.dl.sourceforge.net/sourceforge/faac/faad2-2.7.tar.gz
tar -xzf faad2-2.7.tar.gz
cd faad2-2.7
./configure
make
sudo checkinstall

Eine Übersicht der aktuellesten Versionen: faac und faad2

x264

x264 ist ein freier h264 Encoder, der u.a. auch beim beliebten VLC-Player Verwendung findet. Die aktuelle Version laden wir mit git herunter, ansonsten muss beim Kompilieren noch das shared-Flag gesetzt werden, um die Bibliothek auch für andere Programme verfügbar zu machen:

git clone git://git.videolan.org/x264.git
cd x264
./configure --enable-shared
make
sudo checkinstall

xvid

Auch xvid sollte bei ffmpeg nicht fehlen, auch wenn es etwas an Bedeutung verloren hat( eigene Einschätzung;-)):

wget http://downloads.xvid.org/downloads/xvidcore-1.2.2.tar.gz
tar -xzf xvidcore-1.2.2.tar.gz
cd xvidcore/build/generic
./configure
make
sudo checkinstall

ffmpeg

Nun können wir ffmpeg zusammen mit den eingangs erstellten Encodern/Decodern kompilieren:

svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
cd ffmpeg
./configure  --enable-gpl --enable-x11grab --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-nonfree
make
sudo checkinstall

Anmerkung:

Im zweiten Teil dieses Tutorials werde ich dann auf den Shellscript eingehen, der in Verbindung mit ffmpeg die Audiodateien erzeugen wird.

Bis dahin aber erst einmal: Fröhliches Kompilieren!!!!!!