Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ffmpeg为MJPEG编码生成更高质量的图像_Ffmpeg_H.264 - Fatal编程技术网

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

ffmpeg为MJPEG编码生成更高质量的图像,ffmpeg,h.264,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/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\u 0001.jpg
images\u 0002.jpg
images\u 0003.jpg
,等等


私人选择权 对于H.264编码,
-crf
-preset
标志生成更高的质量。但这似乎对MJPEG不起作用


MJPEG编码器不使用
-crf
-preset
;这些用于某些编码器,如libx264、libx265和libvpx。您可以看到这样的私有选项:
ffmpeg-h encoder=mjpeg

mjpeg只是一种帧内压缩方案。它查看一帧,用jpeg规格压缩它,然后移动到下一帧。有crf是没有意义的-crf是一种帧间压缩方案的协议,该算法试图通过跨帧查找压缩数据速率的方法来节省磁盘空间。我建议您在video.stackexchange.com上询问ffmpeg问题,不要问SO或SU。