我使用此命令。
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
答案 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
。
但是 w
和 width
是一样的。所以实际顺序是输出的 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)