Wie komprimiere ich ein Video mit FFmpeg, ohne die Qualität zu stark zu beeinträchtigen?
- Einführung
- Grundlagen der Video-Kompression mit FFmpeg
- Verwendung des CRF-Werts für bessere Qualität
- Typischer Komprimierungsbefehl
- Tipps für bessere Ergebnisse
- Zusammenfassung
Einführung
FFmpeg ist ein mächtiges Werkzeug zur Verarbeitung und Komprimierung von Videos. Um ein Video zu komprimieren, ohne dabei die Qualität merklich zu verschlechtern, ist es wichtig, die richtigen Parameter zu wählen und ein gutes Verständnis für die Balance zwischen Dateigröße und Bildqualität zu haben. Im Folgenden wird erläutert, wie dies mit FFmpeg gelingt.
Grundlagen der Video-Kompression mit FFmpeg
Jedes Video besteht aus einem Codec, welcher das Video kodiert und dekodiert. Beliebte Codecs für die Kompression sind H.264 (x264) und H.265 (x265). Diese Codecs bieten gute Kompressionseigenschaften. Die Qualität wird dabei oft durch die Bitrate oder durch Qualitätsparameter gesteuert, wobei eine Rate-Quality-basierte Einstellung oft bessere Ergebnisse liefert als eine reine Bitratensteuerung.
Verwendung des CRF-Werts für bessere Qualität
Der wichtigste Parameter zur Qualitätseinstellung bei FFmpeg ist der CRF-Wert (Constant Rate Factor). CRF ist ein Qualitätsregler, der für den x264- und x265-Codec verwendet wird. Er reicht normalerweise von 0 (verlustfrei) bis 51 (sehr schlechte Qualität). Ein CRF von etwa 18 bis 23 gilt in der Praxis als guter Kompromiss. Je niedriger der CRF-Wert, desto besser die Qualität, aber desto größer die Datei.
Typischer Komprimierungsbefehl
Ein typischer FFmpeg-Befehl, der ein Video mit dem H.264-Codec komprimiert und dabei eine gute Balance zwischen Qualität und Größe hält, sieht folgendermaßen aus:
ffmpeg -i input.mp4 -c:v libx264 -preset medium -crf 20 -c:a aac -b:a 128k output.mp4
Hierbei steht -c:v libx264 für den Einsatz des H.264-Codecs, -preset medium regelt die Kompressionsgeschwindigkeit und damit auch die Effizienz der Kodierung (langsamer bedeutet oft bessere Kompression), -crf 20 setzt die Qualität, -c:a aac kodiert den Audioteil und -b:a 128k definiert die Audiobitrate.
Tipps für bessere Ergebnisse
Um die Qualität bestmöglich zu erhalten, sollte das Video möglichst nicht von einer niedrigen Qualität aus starten. Wenn möglich, sollte man die Auflösung anpassen oder das Video auf eine unterstützte oder native Auflösung fixieren, da eine Neuskalierung Qualität kosten kann. Für noch bessere Kompressionsergebnisse kann man statt -preset medium auch slow oder veryslow wählen, die allerdings mehr Zeit benötigen. Ein CRF-Wert von etwa 18-22 bietet in den meisten Fällen eine sehr gute Qualität bei deutlich reduzierter Dateigröße.
Wenn man H.265/HEVC nutzen kann, ist dieser Codec oft effizienter als H.264 und bietet bei gleicher Qualität eine kleinere Dateigröße. Der Befehl sieht ähnlich aus, nur ist als Videocodec libx265 anzugeben (und die CRF-Skala ist ähnlich, aber tendenziell etwas höher, z. B. 24).
Zusammenfassung
Die Komprimierung eines Videos mit FFmpeg ohne starke Qualitätsverluste gelingt am besten über die Verwendung des CRF-Werts bei modernen Codecs wie H.264 oder H.265. Ein ausgewogener CRF-Wert, ein vernünftiges Preset sowie passende Audioeinstellungen sorgen für eine gute Balance zwischen Farbtreue und Dateigröße. Mit etwas Experimentieren an CRF und Preset findet man schnell die optimale Einstellung für das jeweilige Video.
