ffmpeg -i in.mp4 -c:v libx264 -crf 28 -preset fast out.mp4 komprimiert ein Video zu MP4 und opfert dafür etwas Qualität für eine deutlich kleinere Datei — CRF ist der Regler, und 18–28 ist der einzige Bereich, den man sich merken muss. Der Rest hier deckt die CRF-Skala mit echten Zahlen ab, das Konvertieren eines ganzen Ordners auf einmal, und den Schritt, den die meisten Anleitungen auslassen: Dauer und Codecs einer Datei prüfen, bevor man eine stundenlange Neucodierung startet.
1. Was eigentlich in der Datei steckt
$ clai zeig mir die Dauer dieses Videos→ ffprobe -v error -show_entries format=duration -of csv=p=0 in.mp42.000000
ffprobe kommt mit ffmpeg mit und codiert nichts neu. Bevor du eine Konvertierung startest, die eine Stunde dauern kann, schau dir an, womit du es wirklich zu tun hast.
2. Komprimieren und dabei die Qualität steuern
$ clai komprimiere dieses Video, Qualität ist wichtiger als Größe→ ffmpeg -i in.mp4 -c:v libx264 -crf 28 -preset fast out.mp4
Beim Test-Clip wog die Quelle 13074 Bytes, die Ausgabe kam auf 10861 Bytes. CRF ist eine Qualitätsskala von 0 bis 51, wobei weniger besser und größer bedeutet. Der Bereich, den man kennen sollte, ist 18–28: 18 ist visuell nicht vom Original zu unterscheiden, 23 ist ein solider Standardwert, 28 wirkt sichtbar weicher, reicht aber für die meisten Fälle.
3. Auflösung verkleinern, wenn Komprimieren allein nicht reicht
$ clai komprimiere es stärker und skaliere die Höhe auf 144 Pixel→ ffmpeg -i in.mp4 -vf "scale=-2:144" -crf 30 small.mp4
Derselbe Clip, jetzt 8130 Bytes statt der ursprünglichen 13074. Die -2 bei der Breite bedeutet „rechne es selbst aus, behalte das Seitenverhältnis bei und runde auf eine gerade Zahl" — Codecs brauchen gerade Maße, und genau daran scheitert die Hälfte der ffmpeg-One-Liner im Netz.
4. Container wechseln, ohne den Inhalt anzufassen
$ clai wandle dieses Video von mov zu mp4 um, ohne neu zu kodieren→ ffmpeg -i input.mov -c copy output.mp4
-c copy kopiert die Streams so, wie sie sind. Das dauert Sekunden statt Minuten und verliert keine Qualität — solange die Codecs darin mit dem neuen Container kompatibel sind, was bei mov zu mp4 meist der Fall ist.
5. Einen ganzen Ordner verarbeiten
$ clai konvertiere alle mov-Dateien in diesem Ordner zu mp4, Namen beibehalten→ for f in *.mov; do ffmpeg -i "$f" -c:v libx264 -crf 23 "${f%.mov}.mp4"; done
${f%.mov} entfernt die Endung. Die Anführungszeichen um $f sind nicht optional — ohne sie bricht die erste Datei mit einem Leerzeichen im Namen die Schleife.
6. Einen Clip schneiden, ohne neu zu codieren
$ clai schneide einen einminütigen Clip ab Sekunde 30 heraus→ ffmpeg -ss 30 -i input.mp4 -t 60 -c copy clip.mp4
-ss vor -i ist schnell, weil ffmpeg springt statt zu dekodieren. Mit -c copy landet der Schnitt beim nächsten Keyframe, der Anfang kann also um bis zu eine Sekunde abweichen. Brauchst du Frame-genaue Schnitte, lass -c copy weg und bezahl mit der Neucodierung.
Fallstricke
-presetändert die Geschwindigkeit, nicht die Qualität.ultrafastcodiert schnell und liefert eine größere Datei,slowmacht das Gegenteil. Bei gleichem CRF wirkt es sich kaum auf die Qualität aus — es ist ein reiner Tausch von Zeit gegen Größe.- Audio wird still und heimlich neu codiert. Wenn du nichts zu
-c:asagst, entscheidet ffmpeg selbst. Füge-c:a copyhinzu, wenn am Ton nichts geändert werden soll. - CRF bedeutet nicht bei jedem Codec dasselbe. Bei libx265 bringt dieselbe Zahl mehr Qualität: CRF 28 bei x265 entspricht ungefähr CRF 23 bei x264.
Verwandte Fragen
Welchen CRF sollte ich nehmen? Starte bei 23. Datei zu groß — nimm 28. Für ein Archiv, das nicht degradieren soll — nimm 18.
Warum ist ffmpeg besser als ein Online-Konverter? Der Clip verlässt nie deinen Rechner, es gibt kein Dateigrößen-Limit, und ein einziger Befehl verarbeitet einen ganzen Ordner.
Wie beschleunige ich die Codierung? Ein Hardware-Encoder: -c:v h264_nvenc auf NVIDIA, -c:v h264_videotoolbox auf macOS. Deutlich schneller, bei gleicher Bitrate etwas schlechtere Qualität.
Siehe auch
- Hunderte Dateien umbenennen: von for-Schleifen zu normaler Sprache
- Dieses Verzeichnis komprimieren und zu S3 hochladen
- Vom One-Liner zum eingecheckten Skript
CliAI schreibt die richtigen ffmpeg-Flags für das, was du beschreibst, inklusive CRF und Skalierungsfilter. In einer Zeile installieren.