我有一堆 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/