目前我正在使用此命令提取图像:
ffmpeg.exe -i 10fps.h264 -r 10 -f image2 10fps.h264_%03d.jpeg
但是如何提高JPEG图像质量呢?
答案 0 :(得分:165)
-qscale:v
使用-qscale:v
(或别名-q:v
)作为输出选项。 JPEG的有效范围是2-31,其中31是最差的质量。我建议尝试2-5的值。
ffmpeg -i input.mp4 -qscale:v 2 output_%03d.jpg
ffmpeg -ss 60 -i input.mp4 -qscale:v 4 -frames:v 1 output.jpg
这适用于任何视频输入。如果您的输入是MJPEG,请参见下文。
如果输入的是MJPEG(动态JPEG),则可以提取图像而不会有任何质量损失。
ffmpeg
或ffprobe
控制台输出可以告诉您输入是否为MJPEG:
$ ffprobe -v error -select_streams v:0 -show_entries stream=codec_name -of default=nw=1 input.avi
codec_name=mjpeg
然后,您可以使用mjpeg2jpeg
bitstream filter提取框架:
$ ffmpeg -i input.avi -codec:v copy -bsf:v mjpeg2jpeg output_%03d.jpg
答案 1 :(得分:0)
以无损格式输出图像,例如PNG:
ffmpeg.exe -i 10fps.h264 -r 10 -f image2 10fps.h264_%03d.png
然后使用另一个程序(您可以在其中更精确地指定质量,子采样和DCT方法-例如GIMP)将想要的PNG转换为JPEG。
与-qmin 1 -q:v 1
相比,可以用JPEG格式获得稍微清晰的图像,并直接从ffmpeg
输出为JPEG。