Benutzer-Werkzeuge

Webseiten-Werkzeuge


FFmpeg

Das »Schweizer Taschenmesser« für Audio & Video: Aufnehmen, Konvertieren und Kodieren nach Herzenslust in sinnvolle und weniger sinnvolle Formate.

Tipps & Tricks

Der typische (nicht der allgemeingültige, siehe dazu zum Beispiel die Man Page) Aufbau eines FFmpeg-Kommandos ist: ffmpeg -i infile ... outfile. Sind in den folgenden Abschnitten Fragmente von Kommandos angegeben, so sind sie an der Stelle der drei Punkte einzufügen.

Allgemeines

  • Übersicht von Containerformaten in der Wikipedia
  • ffmpeg -i infile liefert Infos zu einer Multimediadatei.
  • Ein Stück eines Films herausschneiden: -ss <startzeit> -t <dauer> -c copy. Die dabei erwarteten Zeiten sind Sekunden oder hh:mm:ss[.xxx]. Statt -c copy kann man natürlich gleichzeitig umkodieren.
  • Linux-Rechner benutzbar halten während des Kodierens: ionice -c3 nice ffmpeg ...

Frames extrahieren

FIXME Lange nicht mehr getestet.

  • Frame zu einer bestimmten Zeit extrahieren: ffmpeg -i file.mp4 -y -ss 5 -vframes 1 -an -sameq -f mjpeg nome.jpg
  • Frames in regelmäßigen Abständen extrahieren: ffmpeg -i file.mp4 -y -ss 5 -an -sameq -f image2 -r 1/5 nome%03d.jpg

Umkodieren

  • Ein MP4 erzeugen: -c:v libx264 -c:a aac
  • Die Bildqualität wird am sinnvollsten über den Constant Rate Factor -crf x eingestellt mit x=18 (gute Qualität, große Datei) bis x=28 (brauchbare Qualität, kleine Datei).

VDR, HDTV und SDTV

FIXME Lange nicht mehr getestet, und daher wohl etwas veraltet.

  • HDTV (vdr) in SDTV (PAL DVD-Format) wandeln.
    • Zusammenfassen der VDR-Dateien: cat 00*.vdr > complete.vdr
    • Umrechnen der zusammengefassten VDR-Datei: ffmpeg -i complete.vdr -target pal-dvd complete.mpg
    • ffmpeg -i infile.vdr -map 0:0 -map 0:3 -b 10000k -acodec copy outfile.mp4 – Wählt vom ersten infile (0 nach map) die Spuren 0 (Video) und 3 (Audio), begrenzt die Videobandbreite und kopiert die Audiospur.
  • SDTV (vdr) in AVI: ffmpeg -i infile.vdr -map 0:0 -map 0:1 -b 4096k -acodec copy -deinterlace outfile.avi (Videospur 0 und Tonspur 1)
  • Aus HDTV (vdr) eine Video- und eine Audiospur extrahieren: ffmpeg -i infile.vdr -map 0:0 -map 0:1 -vcodec copy -acodec copy outfile.mpg
  • Aus HDTV (vdr) einen platzsparenden Film (Bildgröße geviertelt, eine Tonspur mit geringer Bandbreite) machen: ffmpeg -i infile.vdr -map 0:0 -s 640×360 -vcodec mpeg4 -b 600k -map 0:1 -acodec libmp3lame -ab 64k outfile.avi. Ohne -b 600k wird die Bandbreite noch etwas geringer, aber die Bildqualität auch schlecht.
  • Im Prinzip läßt sich ein Film über FFmpeg teilen. In der Praxis gab es aber Probleme mit der Synchronisation von Bild und Ton.

Seiten-Werkzeuge