【问题标题】:Incompatible pixel format YUV420P with mjpeg与 mjpeg 不兼容的像素格式 YUV420P
【发布时间】:2015-06-22 18:43:26
【问题描述】:

我正在使用 ffmpeg 使用 mjpeg 编解码器从 jpeg 图像制作视频。 我用这个命令

ffmpeg -i frame%d.jpg -c:v mjpeg -pix_fmt yuv420p -q:v 1 -y out.mp4

我有这个警告,而是选择了 yuvj420p。在阅读了有关该像素格式的信息后,我发现它不推荐使用 YUV420p 并设置 -color_range。 所以我这样做并将 color_range 设置为 2,但没有任何改变。

【问题讨论】:

    标签: ffmpeg multimedia mjpeg


    【解决方案1】:

    您收到警告是因为 ffmpeg 的内部 JPEG 编码器需要 JPEG 范围输入,并且使用旧的(已弃用的)pixfmt YUVJ420P 而不是新方法(设置 pixfmt=YUV420P 和颜色范围)。

    然而,这让我们想到了这个问题的核心:为什么要将 JPEG 源图像重新编码为 JPEG?你不需要!您可以只使用 -c:v copy(而不是 -c:v mjpeg)将现有的 JPEG 图像原样复制到 .mp4 文件中。

    【讨论】:

    • 我想获得最高质量的视频供以后使用,那么使用副本是否比编码更好?
    • 嗯,是的,因为你永远不会比原来的更好。输出只会和输入一样好,永远不会更好,通常更糟,有时甚至更糟。如果您重新编码(例如,JPEG 优化器所做的),质量/比特率之间的权衡可能会更好,但质量不会有所不同。如果您想在相同的编解码器中以相同的质量但更好的质量/比特率折衷重新编码,请考虑使用 -sameq。
    • 即使是“-v:copy”也可以使用 ffmpeg 生成“不支持的像素格式”。这发生在“yuvj444p”输入中。
    猜你喜欢
    • 2019-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-24
    • 2013-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多