ffmpeg 为 MJPEG 编码生成更高质量的图像

标签 ffmpeg h.264

我有一堆 mov/H.264 文件,我想将它们编码成 mov/MJPEG。但是,我得到的输出质量非常低。这是我尝试过的:

ffmpeg -i a.mov -an -crf 11 -preset slower -pix_fmt yuv420p -vcodec mjpeg -f mov -y b.mov

对于 H.264 编码,-crf-preset标志产生更高的质量。但这似乎不适用于 MJPEG。

最佳答案

使用-q:v控制 (M)JPEG 质量

有效范围为 2-31 的线性刻度,值越低输出质量越高。

例子

在 MOV 容器中制作 MJPEG 视频:

ffmpeg -i input.mov -c:v mjpeg -q:v 3 -an output.mov

输出一系列 JPG 图片:
ffmpeg -i input.mov -q:v 2 images_%04d.jpg

文件将被命名为 images_0001.jpg , images_0002.jpg , images_0003.jpg , ETC。

私有(private)选项

For H.264 encoding the -crf and -preset flags generate higher quality. But that doesn't seem to work for MJPEG.



MJPEG 编码器不使用 -crf-preset ;这些是 "private" options对于某些编码器,例如 libx264、libx265 和 libvpx。你可以看到这样的私有(private)选项:ffmpeg -h encoder=mjpeg .

关于ffmpeg 为 MJPEG 编码生成更高质量的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44206645/

相关文章:

h.264 - AR Drone 2.0、Gstreamer、C++ RTMP Server(无需SDK推流)

python - 在h.264中以低延迟从Python中的opencv流rtsp视频

ffmpeg - mpeg1、vp9、theora和h264帧内无损编码的奇怪结果

youtube - 从终端使用 VLC 通过 RTMP 广播到 YouTube Live

来自pngs的ffmpeg ... PNGS子集出错?

ffmpeg - 如何在 GPU(AMD)中运行 ffmpeg

FFMPEG 用于下载时失真的视频缩略图

encoding - 如何使用 X264 对一系列 .dpx 文件进行编码

ffmpeg - gstreamer 通过 udp 接收和重新组合 h.264 视频

video - 在 Windows 上使用 ffmpeg,从 Logitech c930e 捕获硬件编码的 H264 流的命令是什么