-
Ein Einzeiler, um alle .MOV Filmdateien im aktuellen Ordner mit ffmpeg ins MP4-Format zu konvertieren und entsprechend umzubenennen:
Code:
for file in *.MOV; do ffmpeg -i $file $(echo $file | sed 's/.MOV/.mp4/'); done
Nützlich beispielsweise für iPhones, die im MOV-Format aufnehmen. Dort sind die Aufnahmen größer und teils gibt es Probleme mit der Kompatibilität, da MP4 verbreiteter ist.
Nichts besonderes, aber ein kleines Snippet, das man durchaus ab und an mal brauchen kann. Da ffmpeg sehr mächtig ist, kann man auf die Art auch andere Konvertierungen vornehmen, in dem man die Erweiterung entsprechend anpasst.
Beispiel der Platzersparnis anhand zweier Filme:
Code:
$ ls -lh
insgesamt 2,2G
-rw-rw-r-- 1 daniel daniel 1,9G Okt 30 12:44 IMG_0074.MOV
-rw-rw-r-- 1 daniel daniel 172M Okt 30 13:29 IMG_0074.mp4
-rw-rw-r-- 1 daniel daniel 117M Okt 30 12:57 IMG_0075.MOV
-rw-rw-r-- 1 daniel daniel 20M Okt 30 13:30 IMG_0075.mp4
IMG_0074 ist 1:24min lang, IMG_0075 nur 6 Sekunden. Beide wurden in 4k aufgenommen und mit obigem Befehl umgewandelt. Ein Qualitätsunterschied ist auf einem WQHD Bildschirm nicht sichtbar.
-
Alternativ kann man den Constant Rate Factor (CRF) verwenden, um die Qualität und damit die Dateigröße zu reduzieren. Bei x264 befindet sich dieser zwischen 0 und 51. 0 ist verlustfrei, 23 der Standard und 51 die schlechteste Qualität. 18 ist bereits komprimiert, visuell jedoch verlustfrei. Ein Wert zwischen 18 und 23 kann die Dateigröße deutlich reduzieren, ohne die Qualität optisch zu verschlechtern.
Folgendes Snippet convertiert alle Dateien im aktuellen Ordner mit einer CRF von 21 und benennt diese mit einem entsprechenden _crf21 nach dem Dateiname um (z.B. movie_crf21.mp4):
Code:
for file in *.*; do ffmpeg -i "$file" -crf 21 "$(echo $file | sed -E 's/\.([a-zA-Z0-9]+)/_crf21.\1/g')"; done
Man könnte auch auf *.mp4 filtern, je nachdem welche Medien sich im Ordner befinden.