Wie trimme ich ein Video mit FFmpeg, um nur einen bestimmten Abschnitt zu speichern?
- Einleitung
- Grundlegendes Vorgehen zum Trimmen
- Beispiel für das Trimmen ohne Neukodierung (schnelles Schneiden)
- Beispiel für framegenaues Trimmen mit Neukodierung
- Alternative Verwendung von -to für Endzeitpunkt
- Zusammenfassung
Einleitung
FFmpeg ist ein sehr leistungsfähiges Kommandozeilen-Tool zur Verarbeitung von Audio- und Videodateien.
Wenn du nur einen bestimmten Abschnitt eines Videos extrahieren möchtest – also etwa von Minute 2 bis Minute 5 –
kannst du das Video trimmen, ohne es neu encodieren zu müssen oder eben mit einer erneuten Konvertierung,
Grundlegendes Vorgehen zum Trimmen
Grundsätzlich benutzt du in FFmpeg die Parameter -ss und -t oder -to.
Der Parameter -ss definiert den Startzeitpunkt, ab dem das Video extrahiert werden soll.
-t gibt die Dauer des zu extrahierenden Abschnitts an (also wie lange das Ergebnis sein soll),
Beispiel für das Trimmen ohne Neukodierung (schnelles Schneiden)
Das schnelle Schneiden kann man erreichen, indem man FFmpeg vor dem Eingangsdateinamen den Startzeitpunkt mit -ss angibt.
Dieses Vorgehen ist zwar schneller, kann aber dazu führen, dass der Schnitt nicht framegenau ist, sondern nur auf Keyframes basiert.
ffmpeg -ss 00:02:00 -i input.mp4 -t 00:03:00 -c copy output.mp4Hierbei startet -ss 00:02:00 bei 2 Minuten im Originalvideo, -t 00:03:00 extrahiert 3 Minuten Videomaterial
und der Parameter -c copy sorgt dafür, dass das Video nicht neu encodiert, sondern direkt kopiert wird.
Beispiel für framegenaues Trimmen mit Neukodierung
Möchtest du einen exakt framegenauen Schnitt, ist es sinnvoll, -ss nach -i zu setzen und das Video neu zu kodieren.
Dabei kann FFmpeg präzise schneiden, allerdings dauert das länger und es kann zu Qualitätsverlust kommen,
wenn entsprechende Codecsinstellungen nicht angepasst werden. Der Befehl könnte folgendermaßen aussehen:
ffmpeg -i input.mp4 -ss 00:02:00 -t 00:03:00 -c:v libx264 -c:a aac output.mp4Hierbei wird ab 2 Minuten geschnitten, 3 Minuten Länge extrahiert und das Video mit h264 und Audio mit AAC neu encodiert.
Die Qualität kannst du über weitere Parameter wie -crf für Video oder -b:a für Audio steuern.
Alternative Verwendung von -to für Endzeitpunkt
Alternativ zur Angabe der Dauer mit -t kann man auch mit -to den Endzeitpunkt relativ zum Startzeitpunkt oder als absolute Zeit definieren.
Zum Beispiel schneidet folgender Befehl von 2 Minuten bis 5 Minuten (also genau 3 Minuten Länge):
ffmpeg -ss 00:02:00 -i input.mp4 -to 00:05:00 -c copy output.mp4In diesem Fall ist zu beachten, dass -to relativ zum Startzeitpunkt (also ab -ss) interpretiert wird, wenn es vor -i steht, oder absolut, wenn es nach -i steht.
Zusammenfassung
Um mit FFmpeg ein Video zu trimmen, benutzt du insbesondere -ss für den Startzeitpunkt und -t oder -to für die Dauer bzw. das Ende.
Für schnelleres Zuschneiden ohne Qualitätsverlust sollte man vor der Eingabe -ss setzen und mit Copy (also -c copy) arbeiten.
Für genaues Schneiden, das auch zwischen Keyframes funktioniert, setzt man -ss nach -i und kodiert das Video neu.
Weitere Feinabstimmungen und Codecs kannst du an deine Bedürfnisse anpassen. FFmpeg bietet eine Vielzahl an Parametern,
aber für den einfachen Videoschnitt sind die oben beschriebenen Optionen eine gute Grundlage.
