【问题标题】:ffmpeg generate higher quality images for MJPEG encodingffmpeg 为 MJPEG 编码生成更高质量的图像
【发布时间】:2015-11-15 20:10:13
【问题描述】:

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

【问题讨论】:

  • mjpeg 只是一种帧内压缩方案。它查看一帧,使用 jpeg 规范对其进行压缩,然后移动到下一帧。拥有 -crf 是没有意义的。 -crf 是帧间压缩方案的协议,该算法通过跨帧查找压缩数据速率的方法来尝试节省磁盘空间。我建议向 video.stackexchange.com 询问 ffmpeg 问题,既不是 SO 也不是 SU。

标签: ffmpeg h.264


【解决方案1】:

使用-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.jpgimages_0002.jpgimages_0003.jpg 等。


私人选项

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-03
    • 2021-10-27
    • 1970-01-01
    • 2016-02-29
    相关资源
    最近更新 更多