This question already has an answer here:
I have a bunch of mov / H.264 files, that I'd like to encode into mov/MJPEG. However I'm getting very low quality output. Here's what I tried:
ffmpeg -i a.mov -an -crf 11 -preset slower -pix_fmt yuv420p -vcodec mjpeg -f mov -y b.mov
For H.264 encoding the -crf
and -preset
flags generate higher quality. But that doesn't seem to work for MJPEG.
Use
-q:v
to control (M)JPEG qualityThe effective range is a linear scale of 2-31, and a lower value will result in a higher quality output.
Examples
Make MJPEG video in MOV container:
Output a series of JPG images:
Files will be named
images_0001.jpg
,images_0002.jpg
,images_0003.jpg
, etc.Private options
The MJPEG encoder does not use
-crf
and-preset
; these are "private" options for some encoders such as libx264, libx265, and libvpx. You can see private options like this:ffmpeg -h encoder=mjpeg
.