滤镜描述格式
在使用 FFmpeg 的滤镜处理音视频特效之前,需要首先了解一下滤镜(Filter)的基本格式。
滤镜基本排列方式
为了便于理解 FIlter 的使用方法,下面用最简单的方式来描述使用 Filter 时的参数排列方式。
{输入流或标记名}滤镜参数{临时标记名};{输入流或标记名}滤镜参数{临时标记名};······
文字描述的排列方式很明确。接下来举一个简单的例子:输入两个文件,一个为视频 input.mp4 ,一个为图片 logo.png ,将图片进行缩放后放在视频的左上角。
ffmpeg -i input.mp4 -i logo.png -filter_complex"[1:v]scale=176:144[logo];[0:v][logo]overlay=x=0:y=0"output.mp4
从上述命令可以看到,他将 logo.png的图像流缩放为 176*144 的分辨率,定义了一个临时标记名 logo ,然后将缩放的图像 [logo] 铺在输入视频流 [0:v]的左上角。
时间内置变量
在使用 Filter 时,不免会遇到根据时间轴进行操作的需求。在使用 FFmpeg 的Filter 时可以使用与时间相关的内置变量,如下表所示。
FFmpeg 滤镜的基本内置变量表格
变量 | 说明 |
---|---|
t | 时间戳以秒表示,如果输入时间戳是未知的,则是 NAN 。 |
n | 输入帧的顺序编号,从 0 开始。 |
pos | 输入帧的位置,如果未知就是NAN。 |
w | 输入视频帧的宽度。 |
h | 输入视频帧的高度。 |