Wie kann ich die Auflösung eines Videos mit FFmpeg skalieren?
- Einführung
- Grundlegender Befehl zum Skalieren
- Beibehaltung des Seitenverhältnisses
- Skalierung auf maximale Dimensionen
- Skalierung mit automatischer Rundung
- Fazit
Einführung
FFmpeg ist ein sehr leistungsfähiges Kommandozeilen-Werkzeug zur Verarbeitung von Video- und Audiodateien. Es ermöglicht unter anderem das Skalieren der Auflösung eines Videos, also das Anpassen der Breite und Höhe des Bildes. Das ist besonders nützlich, wenn Sie Videos für verschiedene Geräte oder Plattformen optimieren möchten oder die Dateigröße reduzieren wollen.
Grundlegender Befehl zum Skalieren
Um die Auflösung eines Videos zu ändern, verwendet man den Filter scale. Dieser Filter nimmt zwei Parameter entgegen: die neue Breite und die neue Höhe. Ein einfaches Beispiel, um ein Video auf eine feste Größe von 1280x720 Pixel zu skalieren, sieht so aus:
ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4Hierbei steht -i input.mp4 für die Eingabedatei, -vf scale=1280:720 definiert den Video-Filter zur Skalierung, und output.mp4 ist die Ausgabedatei.
Beibehaltung des Seitenverhältnisses
Oft ist es wichtig, das ursprüngliche Seitenverhältnis des Videos beizubehalten, um verzerrte Bilder zu vermeiden. Mit FFmpeg können Sie hierfür Variablen wie -1 verwenden, damit die Höhe automatisch berechnet wird:
ffmpeg -i input.mp4 -vf scale=1280:-1 output.mp4Das bedeutet, dass die Breite auf 1280 Pixel gesetzt wird und die Höhe proportional angepasst wird, um das Seitenverhältnis zu erhalten.
Skalierung auf maximale Dimensionen
Wenn Sie beispielsweise das Video so skalieren wollen, dass die maximale Breite oder Höhe 1280 bzw. 720 Pixel beträgt, das Seitenverhältnis aber immer gewahrt bleibt, können Sie eine komplexere Ausdrucksform verwenden:
ffmpeg -i input.mp4 -vf "scale=min(1280,iw):min(720,ih)" output.mp4Dies sorgt dafür, dass die Eingangs-Breite (iw) und Höhe (ih) mit den Maximalwerten verglichen und entsprechend skaliert werden, ohne das Bild zu verzerren.
Skalierung mit automatischer Rundung
Einige Codecs oder Container erfordern, dass die Breite und Höhe durch 2 oder 4 teilbar sind. Sie können daher die Ausdrücke so anpassen, dass die Größe gerundet wird:
ffmpeg -i input.mp4 -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" output.mp4Hier wird die Breite und Höhe durch 2 geteilt, abgerundet und dann wieder mit 2 multipliziert, um eine gerade Zahl zu erhalten.
Fazit
Mit FFmpeg lässt sich die Auflösung eines Videos sehr flexibel anpassen. Der scale-Filter bietet viele Möglichkeiten, entweder mit festen Größen, proportionaler Skalierung oder dynamisch berechneten Werten. Es ist immer wichtig, darauf zu achten, dass das Seitenverhältnis erhalten bleibt und die Dimensionen kompatibel zu den Anforderungen des Codecs sind.
