如何使用ffmpeg从H264视频文件中提取高质量的JPEG图像?
computer-vision
graphics
4
0

目前,我正在使用此命令提取图像:

ffmpeg.exe -i 10fps.h264 -r 10 -f image2 10fps.h264_%03d.jpeg

但是如何改善JPEG图像质量?

参考资料:
Stack Overflow
收藏
评论
共 1 个回答
高赞 时间 活跃

使用-qscale:v

使用-qscale:v (或别名-q:v )作为输出选项。 JPEG的有效范围是2-31,其中31是最差的质量。我建议尝试使用2-5的值。

要输出一系列图像:

ffmpeg -i input.mp4 -qscale:v 2 output_%03d.jpg

要以约60秒的时间输出单个图像:

ffmpeg -ss 60 -i input.mp4 -qscale:v 4 -frames:v 1 output.jpg

这将适用于任何视频输入。如果您输入的是MJPEG,请参见下文。


MJPEG

如果输入的是MJPEG(动态JPEG),则可以提取图像而不会造成质量损失。

ffmpegffprobe控制台输出可以告诉您输入是否为MJPEG:

$ ffprobe -v error -select_streams v:0 -show_entries stream=codec_name -of default=nw=1 input.avi
codec_name=mjpeg

然后,您可以使用mjpeg2jpeg位流过滤器提取帧:

$ ffmpeg -i input.avi -codec:v copy -bsf:v mjpeg2jpeg output_%03d.jpg

另见

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号