FFmpeg:使用从 Mediainfo 复制的编码选项时出错

FFmpeg:使用从 Mediainfo 复制的编码选项时出错

这是我的命令行:

ffmpeg -i i.mp4 -i i.png -c:v libx264 -x264-params cabac=1:ref=8:deblock=1,0,0:analyse=0x3,0x113:me=umh:subme=9:psy_rd=1.0,0.0:mixed_ref=1:me_range=64:chroma_me=1:trellis=2:8x8dct=1:cqm=0:deadzone=21,11:chroma_qp_offset=-2:threads=3:nr=0:decimate=1:mbaff=0:bframes=5:b_pyramid=1:b_adapt=2:b_bias=0:direct=3:wpredb=1:keyint=300:keyint_min=1:scenecut=54:rc=2pass:bitrate=75:ratetol=1.0:qcomp=0.64:qpmin=8:qpmax=51:qpstep=4:cplxblur=20.0:qblur=0.5:ip_ratio=1.40:pb_ratio=1.30:aq=1,1.00 -c:a copy -filter_complex 'overlay' o1.mp4

ffmpeg 说:

[libx264 @ 000001ded1a53d60] Error parsing option 'mixed_ref = 1'.
[libx264 @ 000001ded1a53d60] Error parsing option 'deadzone = 21,11'.
[libx264 @ 000001ded1a53d60] Error parsing option 'decimate = 1'.
[libx264 @ 000001ded1a53d60] Error parsing option 'mbaff = 0'.
[libx264 @ 000001ded1a53d60] Error parsing option 'direct = 3'.
[libx264 @ 000001ded1a53d60] Error parsing option 'wpredb = 1'.
[libx264 @ 000001ded1a53d60] Error parsing option 'rc = 2pass'.
[libx264 @ 000001ded1a53d60] Error parsing option 'ip_ratio = 1.40'.
[libx264 @ 000001ded1a53d60] Error parsing option 'pb_ratio = 1.30'.
[libx264 @ 000001ded1a53d60] Error parsing option 'aq = 1,1.00'.
[libx264 @ 000001ded1a53d60] can't open file '0'
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height

我应该怎么办?

答案1

无需声明数十个选项。这就是 x264 编码预设的用途。您的输出表明慢点使用了预设:

ffmpeg -i i.mp4 -i i.png -filter_complex 'overlay' -c:v libx264 -preset slower -c:a copy o1.mp4
  • 我可以通过参考来判断使用了哪个预设x264 --fullhelp

  • 这将使用 CRF 作为速率控制方法。您的输出使用了 2 遍模式。除非您需要针对特定​​的输出文件大小(您可能不需要),否则只需使用 CRF。请参阅FFmpeg 维基:H.264获得 2 次通过的示例以及有关预设和 CRF 的更多信息。

答案2

错误如下:

[libx264 @ 000001ded1a53d60] Error parsing option 'mixed_ref = 1'.

直接来自x264的x264_param_parse()函数,ffmpeg使用该函数。

事实证明,x264 报告的失败选项与设置时预期的不同。您可以使用 x264 的源代码将两者关联起来:

我查找了一些不匹配的情况,结果发现这就是你需要使用的:

╔══════════════════╦═══════════════════════════════════════════╗
║ printed value    ║ setting                                   ║
╠══════════════════╬═══════════════════════════════════════════╣
║ mixed_ref        ║ mixed-refs                                ║
║ deadzone = X,Y   ║ deadzone-inter=X:deadzone-intra=Y         ║
║ decimate         ║ dct-decimate                              ║
║ direct = 0/1/2/3 ║ direct="none"/"spatial"/"temporal"/"auto" ║
║ rc               ║ implied by qp, abr, crf, 2-pass mode...   ║
║ ...              ║                                           ║
╚══════════════════╩═══════════════════════════════════════════╝

尤其是“rc”表明,没有足够多的精确相关性来轻松进行逆向工程。这就是为什么尝试将值与 x264 的预设之一匹配可能更容易。

相关内容