Wie kann ich mit FFmpeg die Framerate eines Videos ändern?
- Was bedeutet Framerate?
- Warum die Framerate ändern?
- Grundlegender Befehl zur Änderung der Framerate
- Beispiel 1: Framerate der Ausgabe ändern
- Beispiel 2: Framerate am Input interpretieren
- Wichtig: Dauer und Geschwindigkeit
- Optionen zur Qualitätskontrolle
- Zusammenfassung
Was bedeutet Framerate?
Die Framerate, oft in Frames per Second (fps) angegeben, beschreibt die Anzahl der Einzelbilder, die pro Sekunde in einem Video gezeigt werden. Eine höhere Framerate führt zu einem flüssigeren Bewegungsablauf, während eine niedrigere Framerate ruckeliger wirken kann oder einen bestimmten Stil erzeugt.
Warum die Framerate ändern?
Du möchtest die Framerate eines Videos vielleicht aus verschiedenen Gründen anpassen. Zum Beispiel um ein Video kompatibel mit einem bestimmten Wiedergabegerät zu machen, um eine konstante Framerate zu erhalten, oder um eine gewünschte ästhetische Wirkung zu erzielen. Manchmal ist es auch nötig die Framerate an ein anderes Video anzupassen, wenn du mehrere Clips kombinierst.
Grundlegender Befehl zur Änderung der Framerate
FFmpeg ist ein mächtiges Werkzeug zur Bearbeitung von Videos in der Kommandozeile. Um die Framerate eines Videos zu ändern, kann der Befehl -r verwendet werden. Dabei gibt es zwei mögliche Anwendungsweisen, die das Ergebnis beeinflussen:
1. Wenn -r vor den Eingabedateien angegeben wird, interpretiert FFmpeg das Inputvideo so, als hätte es diese Framerate. Somit werden Frames eventuell dupliziert oder weggelassen.
2. Wenn -r nach den Eingabeparametern angegeben wird (also vor der Ausgabedatei), wird die Framerate für die Ausgabe gesetzt und das Video wird entsprechend neu codiert.
Beispiel 1: Framerate der Ausgabe ändern
Möchtest du ein Video, das z.B. 30fps hat, auf 24fps konvertieren, kannst du folgenden Befehl verwenden:
ffmpeg -i input.mp4 -r 24 output.mp4Hierbei liest FFmpeg das Originalvideo input.mp4 ein und erstellt eine neue Datei output.mp4, die mit 24 Frames pro Sekunde kodiert wird. Dabei wird das Video recodiert und Frames werden angepasst.
Beispiel 2: Framerate am Input interpretieren
Wenn ein Video z.B. fälschlicherweise mit einer höheren Framerate gelabelt ist, du aber möchtest FFmpeg dazu bringen es mit einer niedrigeren Framerate zu behandeln, kannst du -r direkt vor der Eingabedatei setzen:
ffmpeg -r 24 -i input.mp4 output.mp4Dies kann wirksam sein, wenn das Video zum Beispiel in Echtzeit langsamer oder schneller abgespielt werden soll, ohne dass die tatsächliche Framezahl geändert wird.
Wichtig: Dauer und Geschwindigkeit
Die Verwendung von -r vor der Eingabe kann die Wiedergabedauer und Geschwindigkeit ändern, da FFmpeg die Frames anders interpretiert. Die Verwendung nach dem Eingabebefehl ändert hingegen die Kodierung der Framerate, behält aber die tatsächliche Videodauer größtenteils bei.
Optionen zur Qualitätskontrolle
Wenn du das Video neu kodierst, kannst du zusätzlich Video-Codec-Optionen angeben, um Qualität und Dateigröße zu beeinflussen. Zum Beispiel kann -c:v libx264 für H.264-Codierung genutzt werden. Für eine hohe Qualität könnte man zusätzlich -crf 18 oder ähnliches verwenden:
ffmpeg -i input.mp4 -r 24 -c:v libx264 -crf 18 output.mp4Zusammenfassung
Zusammenfassend ermöglicht FFmpeg mit der Option -r das Ändern der Framerate eines Videos. Die Position dieser Option im Befehl entscheidet, ob das Inputvideo mit einer anderen Framerate interpretiert wird oder ob die Ausgabe eine andere Framerate bekommt. Beim Anpassen der Framerate wird das Video normalerweise recodiert, wodurch einige Einstellungen für Qualität und Codec sinnvoll sein können.
Möchtest du also einfach die Framerate eines Videos verändern, so lautet der gängigste Befehl: ffmpeg -i input.mp4 -r neue_framerate output.mp4, wobei neue_framerate durch den gewünschten Wert in fps zu ersetzen ist.
