Linux
Multimedia
Mit «ffmpeg» proprietäre Videoformate manipulieren
Aktualisiert: 28.06.2009
Mit «ffmpeg» Apples MPEG4-Dateiformat (MP4) zerlegen und umwandeln
Videodateien im MP4-Dateiformat, welches eigentlich auf auf Apples Dateiformat «QuickTime» basiert und hauptsächlich für Podcasts oder iTunes verwendet wird, lassen sich mit «ffmpeg» in ein beliebiges anderes Format umwandeln. Allerdings braucht es dazu einen kleinen Umweg, denn «ffmpeg» kann zwar mit dem Videoformat MPEG-4 (eigentlich MPEG-2 und MPEG-1 Streams) umgehen, aus lizenzrechtlichen Gründen jedoch nicht mit Apples proprietärem Audioformat AAC (Advanced Audio Coding).
Glücklicherweise gibt es aber – neben dem Enkoder «faac» – den Dekoder «faad», mit dem man die Audiospur als WAV oder OGG extrahieren und danach Video und Audio wieder zusammenzufügen kann. Video und Audio der Originaldatei müssen dabei nicht noch extra voneinander getrennt werden, denn «ffmpeg» überschreibt einfach die vorhandenen Teile und mapt sie neu zusammen.
faad datei.m4v -o datei.wav ffmpeg -i datei.m4v -i datei.wav -map 0:0 -map 1:0 -target pal-vcd film.mpg
Daneben gibt es natürlich auch die Möglichkeit, «ffmpeg» mit Unterstützung für Apples Audioformat AAC aus den Quellen heraus neu zu kompilieren. Dieses Vorgehen empfiehlt sich besonders für jene, die viel mit Audio und Video arbeiten und auch mit anderen proprietären Formaten zu tun haben (siehe unten). Bevor man die Konfiguration aufrufen kann, müssen natürlich noch die Entwicklungspakete für den AAC-Dekoder (libfaad-dev), den AAC-Enkoder (libfaac-dev) installiert werden.
sudo apt-get install checkinstall build-essential subversion libfaad-dev libfaac-dev cd /usr/local/src sudo svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg cd ffmpeg sudo ./configure --enable-gpl --enable-libfaad --enable-libfaac sudo make sudo checkinstall sudo dpkg -i [ffmpeg_version.deb]
Vorteil dieser neu kompilierten Version von «ffmpeg» ist natürlich, dass sich MP4-Dateien nun nicht nur zerlegen sondern auch generieren lassen. Ob «faad» auch in der Lage ist, mit «Digital Rights Management» geschützte Dateien umzugehen, ist mir nicht bekannt. Aber die Tage von DRM scheinen glücklicherweise gezählt ...
Mit «ffmpeg» Videodateien in Adobes Flash-Video-Dateiformat (FLV) umwandeln
Auch Videodateien im FLV-Dateiformat Flash Video, welches ein Video-Containerformat der Firma Adobe ist und für die Übertragung von Videosstreams an ihren Flash Player dient, lassen sich mit ‹ffmpeg› bearbeiten. Auch hier ist das Problem, dass «ffmpeg» mit dem Videoformat (H.263 oder VP6) umgehen kann, aus lizenzrechtlichen Gründen jedoch nicht mit dem proprietären Audioformat MP3 (ISO MPEG Audio Layer 3).
Flash-Videos lassen sich heute mit kleinen Tools wie z. B. «clive» problemlos von den grosssen Plattformen wie Youtube, Google Video, Dailymotion, Guba oder Stage6 herunterladen und danach mit «ffmpeg» umwandeln.
clive "http://www.youtube.com/watch?v=LiABmaH6LLE" ffmpeg -i youtube_datei.flv -target pal-vcd neue_datei.mpg
Schwieriger wird es jedoch, wenn man gerne selbst ein Video auf seiner Internetseite präsentieren möchte. «ffmpeg» ist im Augenblick weder in der Lage, eine Videodatei direkt zu konvertieren (wegen fehlendem MP3-Kodierer) noch eine separierte und mit «lame» kodierte MP3-Datei richtig einzufügen. In beiden Fällen resultiert eine Videodatei ohne Ton. Daher kommt man im Augenblick nicht umhin, «ffmpeg» aus den Quellen neu zu kompilieren. Bevor man die Konfiguration aufrufen kann, muss natürlich noch das Entwicklungspaket für den MP3-Enkoder (libmp3lame-dev) installiert werden.
sudo apt-get install checkinstall build-essential subversion libmp3lame-dev cd /usr/local/src sudo svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg cd ffmpeg sudo ./configure --enable-libmp3lame sudo make sudo checkinstall sudo dpkg -i [ffmpeg_version.deb]
Vorteil dieser neu kompilierten Version von «ffmpeg» ist natürlich, dass man nun auch Musik ins MP3-Format umwandeln kann. Jetzt erst ist man auch in der Lage mit einem einzigen Befehl jedes beliebige Format in ein Flash-Video umzuwandeln.
ffmpeg -i datei.avi -f flv -b 300k -deinterlace -ar 22050 -ab 64k -s 320x240 video.flv
Das entstandene Flash-Video kann man jetzt mit Hilfe von Jeroen Wijerings exzellentem FLV Player in seine Website einbinden. Einfach die beiden Dateien «video.flv» (Flash-Video) und «flvplayer.swf» (Player-Interface) in einen Ordner auf dem Server legen und danach die HTML-Seite um folgenden Code ergänzen.
‹object type="application/x-shockwave-flash" width="352" height="256" data="ordner/flvplayer.swf"› ‹param name="movie" value="ordner/flvplayer.swf" /› ‹param name="wmode" value="transparent" /› ‹/object›
Der Browser Firefox unterstützt ab Version 3.1 nativ – das heisst: ohne lästige Plugins installieren zu müssen – sowohl den Audio-Codec «Ogg Vorbis» als auch den Video-Codec «Theora». Es bleibt zu hoffen, dass andere Browserhersteller ebenfalls mitmachen, sodass man in Zukunft nicht mehr gezwungen ist auf die proprietären und unsicheren Schrott-Plugins von Adobe (FlashPlayer), Real (RealPlayer) oder Apple (QuickTime) zurückgreifen muss. Unter Linux lassen sich Videos im offenen Format «Theora» sehr einfach herstellen.

