FFmpeg:关于filter_complex命令

时间:2019-12-18 08:13:37

标签: ffmpeg

我使用此命令。

ffmpeg -i Input.mp4 -i logo.png -c:v h264_nvenc -filter_complex "[0:v]scale=-1:720[video];[1:v][video]scale2ref=(iw/ih)*ih/8/sar:ih/8[wm][base];[base][wm]overlay=10:10" output.mp4

但这是什么意思?

scale2ref =(iw / ih)* ih / 8 / sar:ih / 8

2 个答案:

答案 0 :(得分:1)

要了解 -filter_complex 语言,必须阅读此 small chapter of the ffmpeg docs

您也可以将过滤器描述放入文件并使用 -filter_complex_script <file>

将过滤器与函数进行比较。参数由 : 分隔。按位置只是 value,否则字典样式 name=value。要启动参数列表,您也可以使用 =

实际数据通过标签 [<inlabel>]<filter>[<outlabel>]。 在过滤器链(由 , 分隔)中,标签不是必需的。 链由 ; 分隔。

ffmpeg -filters | grep scale2ref

将为您提供 scale2ref 过滤器 (VV->VV) 的输入和输出通道, 即 2 个视频,输入和输出。

ffmpeg -help filter=scale2ref 为您提供有关过滤器参数的信息。 参数的顺序不是那么明显,因为在这种情况下 w 后跟 width。 但是 wwidth 是一样的。所以实际顺序是输出的 width,height

(iw/ih)*ih/8/sar:ih/8 因此是 width=(iw/ih)*ih/8/sar:height=ih/8

要了解过滤器预定义/预设的变量, 你需要调查 docs 甚至更好地进入 source code

答案 1 :(得分:0)

scale2ref=(iw/ih)*ih/8/sar:ih/8的作用是将图像高度缩放到视频高度的1/8,然后将图像宽度缩放到一个怪异的值。如果比例是为了保留图像的长宽比,请使用

scale2ref=oh*mdar:ih/8

(FFmpeg版本> = 4.0)