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

Aru*_*run 10 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
Run Code Online (Sandbox Code Playgroud)

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

llo*_*gan 26

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

有效范围是2-31的线性标度,较低的值将导致更高质量的输出.

例子

在MOV容器中制作MJPEG视频:

ffmpeg -i input.mov -c:v mjpeg -q:v 3 -an output.mov
Run Code Online (Sandbox Code Playgroud)

输出一系列JPG图像:

ffmpeg -i input.mov -q:v 2 images_%04d.jpg
Run Code Online (Sandbox Code Playgroud)

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


私人选择

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

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