FFmpeg:关于filter_complex命令

问题描述 投票:0回答:2

我使用这个命令。

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

ffmpeg
2个回答
7
投票

要了解

-filter_complex
语言,有必要阅读ffmpeg文档的小章节

您也可以将过滤器描述放入文件中并使用

-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 或者更好地进入 源代码.


1
投票

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

scale2ref=oh*mdar:ih/8

(FFmpeg 版本 4.0 至 7.1)

编辑:自 FFmpeg 7.1 起,

scale2ref
已合并到现有的
scale
过滤器中,并具有辅助参考输入:

scale=-1:rh/8

请注意,此过滤器输出修改后的单个流,而不是两个视频流。

© www.soinside.com 2019 - 2024. All rights reserved.