Um ein Video in ein anderes Format zu konvertieren oder einfache Schnittarbeiten zu erledigen, müssen Sie keine grafische Anwendung bemühen: Mit “ffmpeg” und “mencoder” gelingt das auch auf der Konsole.
Die Fernsehaufzeichnung startete genau 45 Sekunden zu früh – das haben Sie beim Abspielen im Video-Player gesehen. Diese Extrasekunden würden Sie gern loswerden, aber ohne Import, Schneiden und Export in einer grafischen Anwendung. Das müsste doch schneller gehen?
Es geht schneller, wenn Sie eines der Konsolen-Tools mencoder[1] und ffmpeg[2] verwenden. Aufgaben wie das Entfernen überflüssiger Teile aus einer Aufnahme und auch das Konvertieren in andere Video- oder Audioformate erledigen Sie mit diesen Programmen über einen einzeiligen Shell-Befehl. Nebeneffekt: Sie können diese Korrekturen auch automatisiert für mehrere Videodateien erledigen. Am Ende des Artikels stellen wir außerdem noch den Audiokonverter sox[3] vor.
Zur Motivation vorab
Um die Eleganz der Shell-Tools zu demonstrieren, gibt es gleich am Anfang eine Lösung für das 45-Sekunden-Problem. Wenn die oben erwähnte Fernsehaufnahme den Dateinamen fernseh.avi trägt und in Ihrem Home-Verzeichnis liegt, werden Sie die ersten 45 Sekunden mit folgendem Kommando los:
ffmpeg -i fernseh.avi -ss 45 -acodec copy -vcodec copy fernseh2.avi
Das erzeugt aus fernseh.avi eine neue Videodatei fernseh2.avi, in der die ersten 45 Sekunden fehlen. Die Optionen -acodec copy und -vcodec copy fordern ffmpeg nur auf, die ursprünglichen Kodierungen (im Audio- und Video-Stream der Datei) nicht zu verändern, und der 45-Sekunden-Schnitt ergibt sich aus -ss 45.
Installation
Die Werkzeuge, die wir Ihnen vorstellen, sind in der Regel nicht vorinstalliert. Darum starten wir mit kurzen Hinweisen zur Einrichtung der benötigten Pakete.
Als OpenSuse-Anwender richten Sie zunächst das Packman-Repository ein, falls Sie dies nicht bereits früher erledigt haben: Bei Packman gibt es zahlreiche Multimedia-Anwendungen – teilweise finden sich hier auch Pakete, die durchaus zur regulären Ausstattung von OpenSuse zählen, deren Packman-Varianten aber besser sind, weil sie z. B. mehr Audio- und Videoformate (Codecs) unterstützen.
- Starten Sie YaST (was die Eingabe des Root-Passworts erfordert), wählen Sie das Modul Software-Repositories und klicken Sie auf Hinzufügen.
- Aktivieren Sie die Checkbox Community/Gemeinschafts-Repositories und klicken Sie auf Weiter.
- Setzen Sie ein Häkchen beim Eintrag Packman Repository und klicken Sie rechts unten auf OK. Die Frage, ob Sie einen nicht verbürgten GnuPG-Schlüssel importieren wollen, beantworten Sie mit einem Klick auf Vertrauen.
Über die Paketverwaltung können Sie nun eines oder beide der Pakete ffmpeg und MPlayer einspielen – ob Sie beide benötigen, entscheiden Sie vielleicht erst, nachdem Sie den Artikel zu Ende gelesen haben. Es gibt mit HandBrake [4] noch ein drittes interessantes Tool, auf das wir im Rahmen dieses Artikels aber nicht eingehen.
Unter Ubuntu und Kubuntu spielen Sie die Programme am schnellsten im Terminalfenster ein; für ffmpeg ist dazu ein Personal Package Archive (PPA) zu ergänzen.
Um ffmpeg einzurichten, verwenden Sie die folgenden drei Kommandos:
sudo add-apt-repository ppa:jon-severinsson/ffmpeg sudo apt-get update sudo apt-get install ffmpeg
Das Programm mencoder kommt mit
sudo apt-get install mencoder
auf die Platte. Hinweise zur Einrichtung von sox folgen separat am Schluss des Artikels.
Videos konvertieren
Videos liegen oft in einem unerwünschten Format vor. Haben Sie z. B. eines der YouTube-Download-Plug-ins in Firefox installiert, erhalten Sie beim Speichern Dateien im Flash-Videoformat mit Dateiendung .flv (Abbildung 1). Zwar kommen z. B. MPlayer und VLC problemlos mit dem Format zurecht, aber nicht jeder Videoplayer mag die Flash-Clips. In eine gängigere Standarddatei im AVI-Format wandeln Sie das Video wie folgt mit mencoder um:
mencoder video.flv -oac mp3lame -ovc lavc -o video.avi
Die Optionen -oac und -ovc setzen den output audio codec und den output video codec auf mp3lame und lavc. Der Ton wird also in der Zieldatei im MP3-Format vorliegen, während lavc nicht direkt den Codec festlegt, sondern nur verlangt, dass die Bibliothek libavcodec verwendet wird.
Wollen Sie den Video-Codec genauer festlegen, nutzen Sie die Option -lavcopts, z. B. erzeugt folgendes Kommando eine Datei, deren Video-Stream das Format Windows Media Video 8 (WMV2) verwendet:
mencoder video.flv -oac mp3lame -ovc lavc -lavcopts vcodec=wmv2 -o video.avi
(Ja, das Kürzel hat die Versionsnummer 2, während die Langform Versionsnummer 8 verwendet [5].) Die gleiche Arbeit kann auch ffmpeg erledigen, erwartet dabei aber andere Aufrufoptionen:
ffmpeg -i video.flv -acodec libmp3lame -vcodec wmv2 video.avi
Während Sie bei mencoder die Eingabedatei als erstes Argument (ohne Option) und die Ausgabedatei mit -o (output) angeben, ist es bei ffmpeg genau umgekehrt: Dort brauchen Sie für die Eingabedatei die Option -i (input), während Sie den Namen der Ausgabedatei ohne Option am Ende angeben. Außerdem nutzen Sie -acodec, um den Audio-Codec festzulegen (er heißt hier libmp3lame), und -vcodec für den Video-Codec, wobei Sie direkt wmv2 als Codec angeben. Eine Liste der von ffmpeg unterstützten Codecs erhalten Sie mit ffmpeg -encoders (Abbildung 2); die entsprechende Liste für mencoder ist online [6].

Abbildung 2: Die Liste der von “ffmpeg” unterstützten Codecs ist sehr lang; Sie erhalten sie über die Option “-encoders”.
Auflösung ändern
Wollen Sie die Auflösung eines Videos verringern, z. B., weil Sie es auf einem Mobilgerät mit niedrig auflösendem Display anschauen wollen, dann können Sie bei mencoder die Option -vf scale=X:Y verwenden. Das Kommando
mencoder video.avi -oac mp3lame -ovc lavc -vf scale=160:120 -o video2.avi
nimmt z. B. das Video (im Beispiel hat es die eh schon geringe Auflösung 320×240) und halbiert diese in Breite und Höhe auf 160×120, wie der anschließende Aufruf von file bestätigt:
$ file video.avi video2.avi video.avi: RIFF (little-endian) data, AVI, 320 x 240, ~30 fps, video: FFMpeg MPEG-4, audio: MPEG-1 Layer 3 (stereo, 22050 Hz) video2.avi: RIFF (little-endian) data, AVI, 160 x 120, ~30 fps, video: FFMpeg MPEG-4, audio: MPEG-1 Layer 3 (stereo, 22050 Hz)
Die unterschiedliche Qualität, die sich aus verschiedenen Auflösungen ergibt, sehen Sie auf Anhieb, wenn Sie zwei Versionen gleichzeitig abspielen und dabei die Wiedergabefenster auf gleiche Größe ziehen (Abbildung 3); der gewählte Codec spielt bei der Qualität – im Vergleich zur Größe – nur eine untergeordnete Rolle.

Abbildung 3: Verschiedene Formate, verschiedene Auflösungen – die deutlichste Verringerung der Qualität verursacht eine Reduzierung der Auflösung.
Musik extrahieren
Viele Musiker stellen über ihre Webseite (oder über das Plattenlabel) Videos aktueller Titel zur Verfügung. Zwar ist es schön, nicht nur den Ton zu hören, sondern auch das Musikvideo anzuschauen, aber für tragbare MP3-Player ist eine reine Audiodatei besser geeignet, zumal solchen Playern häufig die Unterstützung für Videoformate fehlt.
Mit ffmpeg können Sie Dateien schnell ins MP3-Format umwandeln (und dabei die Videospur entfernen):
ffmpeg -i video.flv -acodec libmp3lame -ar 44100 -ab 160k audio.mp3
erzeugt eine MP3-Datei mit 160 kBit/s. Das funktioniert in der Form nur, wenn die Videodatei genau einen Audio-Stream enthält. Sind mehrere vorhanden, experimentieren Sie zusätzlich mit Parametern der Form -map 0:0, -map 0:1, -map 0:2 usw., bis Sie den richtigen Stream erwischt haben.
Videoschnitt
In der Einleitung des Artikels haben wir bereits den Befehl vorgestellt, mit dem Sie die ersten Sekunden eines Videoclips entfernen können. Häufiger wollen Sie gezielt bestimmte Bereiche in separaten Videodateien speichern, etwa den Ausschnitt von 00:05:15 bis 00:06:35 (mit Angaben im Format Stunde:Minute:Sekunde). Das erreichen Sie mit ffmpeg, indem Sie neben der Startzeit (-ss) auch die Endzeit (mit -to) angeben:
ffmpeg -i video.avi -ss 00:05:15 -to 00:06:35 -acodec copy -vcodec copy clip.avi
Alternativ zur absoluten Angabe der Endzeit können Sie auch die Dauer des zu extrahierenden Clips nennen, die entsprechende Option ist -t (statt -to) und erwartet ebenfalls eine Zeitangabe im obigen Format, interpretiert dieses aber als Längenangabe.
Neben der Stunden-Minuten-Sekunden-Schreibweise ist es bei allen Optionen (-ss, -to und -t) auch möglich, einen Sekundenwert zu nennen. Das obige Beispiel ließe sich also auch als
ffmpeg -i video.avi -ss 315 -to 395 -acodec copy -vcodec copy clip.avi
schreiben.
Audio-Konvertierung
Ein praktisches Tool fürs Konvertieren zwischen verschiedenen Audioformaten ist Sox [3]. Damit können Sie z. B. eine Sammlung von Ogg-Vorbis-Musikdateien komfortabel in MP3-Dateien umwandeln, falls Ihr mobiler Player das Ogg-Vorbis-Format nicht beherrscht – auch wenn es sinnvoller wäre, die Original-CDs neu zu rippen, denn Umwandlungen zwischen komprimierenden Dateiformaten bedeuten immer abnehmende Qualität.
Unter OpenSuse installieren Sie die Packman-Version der Pakete sox und libsox2 – falls diese bereits installiert (aber nicht von Packman) sind, tauschen Sie die Standardpakete gegen die Packman-Varianten aus. Dazu suchen Sie in der Paketverwaltung von YaST nach “sox”. Für beide Pakete (sox und libsox2) markieren Sie die Trefferzeile, setzen dort ein Häkchen (oder belassen es, wenn es schon gesetzt ist) und aktivieren dann im unteren Bereich den Reiter Versionen, wo Sie sich jeweils für die Variante aus dem Packman Repository entscheiden (Abbildung 4).

Abbildung 4: Sowohl “sox” als auch “libsox2” müssen unter OpenSuse aus dem Packman-Repository kommen, damit das Tool MP3 unterstützt.
Ubuntu-/Kubuntu-Anwender müssen neben sox nur das Paket libsox-fmt-all nachinstallieren, das im universe-Bereich der regulären Ubuntu-Pakete steckt.
Dateien konvertieren Sie auf der Kommandozeile mit einem simplen sox-Aufruf; das Zielformat bestimmt das Programm aus der Dateiendung. Für Umwandlungen von Ogg Vorbis nach MP3 oder umgekehrt sind darum Befehle der folgenden Form ausreichend:
sox datei.ogg datei.mp3 sox datei.mp3 datei.ogg
Erhalten Sie die Fehlermeldung
sox FAIL formats: no handler for file extension `mp3'
dann ist noch die nicht-MP3-kompatible Variante von sox oder libsox2 installiert.
Bei längeren Musikstücken ist es sinnvoll, sich den Fortschritt der Konvertierungsarbeit anzusehen; dafür können Sie die Option -S verwenden (Abbildung 5). Außerdem steht noch die Option -V bereit, die Informationen über die Kodierungseigenschaften von Ein- und Ausgabedatei anzeigt.

Abbildung 5: Rechnet es noch oder ist es abgestürzt? Letzteres sollte zwar nicht vorkommen, aber “sox -S” verrät, wie weit die Konvertierung fortgeschritten ist.
Statt sox können Sie auch ffmpeg verwenden; das Kommando für eine Konvertierung von Ogg Vorbis ins MP3-Format lautet
ffmpeg -i datei.ogg -vn -acodec libmp3lame datei.mp3
Doch auch hier gilt: Solche Konvertierungen verursachen immer einen geringen Qualitätsverlust – unabhängig vom eingesetzten Konverter.
Welches Tool nehmen?
Die vorgestellten Programme haben ähnliche Features; Sie können mit allen dreien ein wenig experimentieren und dabei u. a. auf die Geschwindigkeit (beim Konvertieren) sowie Qualität und Größe der erzeugten Dateien achten. Diese lassen sich im Übrigen noch durch weitere Parameter der Tools beeinflussen.
Das hier nicht beschriebene Programm HandBrake hat eine komfortable grafische Oberfläche, die ein Artikel unserer Schwesterzeitschrift LinuxUser ausführlich vorgestellt hat [7]; es besitzt mit HandBrake-CLI aber auch ein Kommandozeilen-Interface, das auf der Projektseite gut dokumentiert ist [8, 9]. Mit mencoder landet auch der MPlayer [1] auf der Platte, der eine gute Alternative zum beliebten Multimediaplayer VLC [10] darstellt.
Insgesamt lässt sich mit Kommandozeilentools mehr erreichen, als man auf den ersten Blick erwarten würde. Wenn Sie die Programme in selbst geschriebene Skripte einbinden, konvertieren und schneiden Sie damit deutlich schneller als mit entsprechenden grafischen Anwendungen.
Infos
[1] Mplayer und mencoder: http://www.mplayerhq.hu/
[2] ffmpeg: https://www.ffmpeg.org/
[3] Sox: http://sox.sourceforge.net/
[4] HandBrake: http://handbrake.fr/
[5] Wikipedia zu Windows-Media-Video-Versionen: http://en.wikipedia.org/wiki/Windows_Media_Video#Versions
[6] Mencoder-Codecs: http://www.mplayerhq.hu/DOCS/HTML/en/menc-feat-enc-libavcodec.html
[7] HandBrake-Artikel: Erik Bärwaldt, “Im Fokus”, LinuxUser 12/2012, S. 48 ff., http://linux-community.de/27056
[8] HandBrake-CLI-Forum: https://forum.handbrake.fr/viewforum.php?f=10
[9] HandBrake-CLI-Anleitung: https://trac.handbrake.fr/wiki/CLIGuide
[10] VLC: http://www.videolan.org/vlc/


