Currently I am using this command to extract the images:
ffmpeg -i input.mp4 output_%03d.jpeg
But how can I improve the JPEG image quality?
-qscale:v
to control qualityUse -qscale:v
(or the alias -q:v
) as an output option.
-qmin 1
output option (because the default is -qmin 2
).ffmpeg -i input.mp4 -qscale:v 2 output_%03d.jpg
See the image muxer documentation for more options involving image outputs.
ffmpeg -ss 60 -i input.mp4 -qscale:v 4 -frames:v 1 output.jpg
This will work with any video input. See below if your input is MJPEG.
If your input is MJPEG (Motion JPEG) then the images can be extracted without any quality loss.
The ffmpeg
or ffprobe
console output can tell you if your input is MJPEG:
$ ffprobe -v error -select_streams v:0 -show_entries stream=codec_name -of default=nw=1 input.avi
codec_name=mjpeg
Then you can extract the frames using the mjpeg2jpeg
bitstream filter:
$ ffmpeg -i input.avi -codec:v copy -bsf:v mjpeg2jpeg output_%03d.jpg