FFmpeg
的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下:
ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4
或者带音频滤镜:
ffmpeg -i input.mp4 -vf "视频滤镜" -af "音频滤镜" output.mp4
常见视频滤镜(-vf
)
滤镜名称 | 功能说明 | 示例 |
---|---|---|
scale | 缩放视频尺寸 | -vf "scale=1280:720" |
crop | 裁剪视频区域 | -vf "crop=640:360:0:0" |
drawtext | 添加文字水印 | -vf "drawtext=text='Hello':x=10:y=10:fontsize=24:fontcolor=white" |
overlay | 叠加视频/图片 | -i bg.mp4 -i logo.png -filter_complex "overlay=10:10" |
hflip / vflip | 水平/垂直翻转 | -vf "hflip" |
transpose | 旋转90度(1 顺时针) | -vf "transpose=1" |
eq | 调整亮度/对比度/饱和度 | -vf "eq=brightness=0.06:contrast=1.5:saturation=1.2" |
fps | 调整帧率 | -vf "fps=30" |
setpts | 设置时间戳(变速) | -vf "setpts=0.5*PTS" (加快2倍) |
fade | 添加淡入淡出效果 | -vf "fade=t=in:st=0:d=3" |
drawbox | 画框 | -vf "drawbox=x=100:y=100:w=200:h=100:color=red@0.5" |
lut | 调色 LUT 滤镜 | -vf "lut=y='val*1.5'" |
常见音频滤镜(-af
)
滤镜名称 | 功能说明 | 示例 |
---|---|---|
volume | 调整音量 | -af "volume=1.5" (音量放大1.5倍) |
aecho | 回声效果 | -af "aecho=0.8:0.9:1000:0.3" |
atempo | 语速变快/变慢 | -af "atempo=2.0" (加快2倍) |
highpass | 高频滤波 | -af "highpass=f=2000" |
lowpass | 低频滤波 | -af "lowpass=f=500" |
pan | 声道重混 | `-af "pan=stereo |
示例
视频相关
缩放视频(保持宽高比)
# -1 表示自动计算高度以保持宽高比。
ffmpeg -i input.mp4 -vf "scale=1280:-1" output.mp4
裁剪视频
# 从 (100,50) 开始,裁剪大小为 640x360。
ffmpeg -i input.mp4 -vf "crop=640:360:100:50" output.mp4
添加文字水印
# 需要安装字体支持,或者加参数 :fontfile=/path/to/font.ttf
ffmpeg -i input.mp4 -vf "drawtext=text='Hello World':x=10:y=10:fontsize=24:fontcolor=white" output.mp4
添加图片水印
ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=10:10" output.mp4
模糊视频区域(高斯模糊)
ffmpeg -i input.mp4 -vf "boxblur=10:1" output.mp4
或仅模糊局部区域:
ffmpeg -i input.mp4 -filter_complex "[0:v]crop=200:200:100:100,boxblur=10:1[blur];[0:v][blur] overlay=100:100" output.mp4
视频旋转(顺时针90度)
ffmpeg -i input.mp4 -vf "transpose=1" output.mp4
设置帧率为30fps
ffmpeg -i input.mp4 -vf "fps=30" output.mp4
视频加速2倍播放
ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" output.mp4
视频减速(慢放)
ffmpeg -i input.mp4 -vf "setpts=2.0*PTS" output.mp4
视频画中画(PIP)
# 把 small.mp4 缩放后叠加在右下角。
ffmpeg -i main.mp4 -i small.mp4 -filter_complex "[1:v]scale=320:240[small];[0:v][small] overlay=W-w-10:H-h-10" output.mp4
音频相关
音量调大1.5倍
ffmpeg -i input.mp4 -af "volume=1.5" output.mp4
加快音频播放速度(语速)
# atempo 只能在 0.5 到 2.0 之间,需多次叠加实现更大变化
ffmpeg -i input.mp4 -af "atempo=2.0" output.mp4
添加回声效果
ffmpeg -i input.mp4 -af "aecho=0.8:0.9:1000:0.3" output.mp4
混音或改变声道
# 将左声道复制到右声道,适用于单声道转双声道。
ffmpeg -i input.mp4 -af "pan=stereo|c0=c0|c1=c0" output.mp4