Wie kann man MJPEG verlustfrei auf MP4 komprimieren?

6425
lpacheco

Ich habe ein paar Digitalkamera-Filme in MJPEG aufgenommen, die einige GB Speicherplatz beanspruchen. Ich möchte sie besser komprimieren, aber so wenig wie möglich oder gar nichts verlieren.

Da MJPEG nicht über Frames komprimiert wird, denke ich, dass ein moderner Film-Codec eine bessere Arbeit leisten würde, oder?

Würde der folgende ffmpeg-Befehl das tun, was ich erwarte?

ffmpeg -i input -c:v libx264 -preset veryslow -qp 0 output.mp4 
6

1 Antwort auf die Frage

9
Gyan

Ihr Befehl wird es tun, aber der Hauptvorteil von x264 ist die Möglichkeit, eine hohe Komprimierung bereitzustellen und gleichzeitig die subjektive Transparenz zu erhalten. x264 ist von bescheidenem Nutzen, wenn Sie den strikten verlustfreien Modus beibehalten. Ich empfehle den folgenden Befehl:

ffmpeg -i input -c:v libx264 -preset veryslow -crf 18 output.mp4 

Wenn Sie die Qualität nicht mögen, verringern Sie den CRF-Wert.

Gute Antwort. Ich möchte darauf hinweisen, dass bei CRF 18 ein weiterer Rückgang wahrscheinlich nicht wahrnehmbar ist. [CRF 18 wird in der Dokumentation mehrmals als nahezu verlustfrei bezeichnet] (https://trac.ffmpeg.org/wiki/Encode/H.264#crf), was bedeutet, dass es dem Original so nahe kommt, wie es wird. Wenn Sie wirklich verlustfrei arbeiten möchten, senken Sie den Wert auf 0, aber wahrscheinlich erhalten Sie Dateien, die größer als die MJPEG-Dateien sind. fredsbend vor 7 Jahren 0