ffmpeg为MJPEG编码生成更高质量的图像
我有一堆mov/H.264文件,我想把它们编码成mov/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的线性刻度,较低的值将产生较高质量的输出 例子
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。