ffmpeg简单滤镜 -vf:一个输入,对应一个输出;复杂滤镜 -filter_complex
滤镜描述符规则
“,” —— 前一个输出作为后一个输入
“;” —— 表示两个滤镜为并列关系
“:” —— 用于分割参数
Overlay 用例:视频加logo ffplay -i logo.mp4 -vf "movie=logo.png,scale=64:64[water];[in][water]overlay=W-w-30:10" 参数详解:-vf使用简单滤镜overlay,"movie=logo.png,scale=64:64[water]"定义logo,并将其裁剪为64x64的大小,处理后的输出记为water; “[in][water]overlay=W-w-30:10”—— in代表视频输入,作为背景;water表示后续输入,叠加到背景上;W-w-30:10定义logo位置,W表示背景视频宽度,w表示logo宽度; |
视频去logo ffplay -i logo-with.mp4 -vf "delogo=544-64-30:10:64:64:show=1" logo-without.mp4 原理是使用插值法将该区域的像素使用周边像素代替 使用滤镜delogo处理,接受5个参数,delogo=x:y:w:h:show |
scale 使用的滤镜为 用例: 将第2个媒体文件的视频裁剪为180x120, 叠加在第一个媒体文件的右上角 |
音频混音 主要有
ffmpeg -i logo.mp4 -i slice-a.mp4 -filter_complex "amix=inputs=2:duration=shortest:weights='0.1 0.9'" mixin.aac |
音视频倍速 ffmpeg -i logo.mp4 -filter_complex "[0:v]setpts=2*PTS[vo];[0:a]atempo=0.5[ao]" -map "[vo]" -map "[ao]" new.mp4 使用
|
视频转场 用例:淡入淡出的转场特效 ffmpeg -i slice-a.mp4 -i slice-b.mp4 -i slice-c.mp4 -filter_complex "[0:v]fade=t=out:st=10:d=2[v0];[1:v]fade=t=in:st=0:d=2[tmp];[tmp]fade=t=out:st=10:d=2[v1];[2:v]fade=t=in:st=0:d=2[v2];[v0][v1][v2]concat=n=3:v=1:a=0[vo];[0:a][1:a][2:a]concat=n=3:v=0:a=1[ao]" -map "[vo]" -map "[ao]" t.mp4
|
xfade转场滤镜(xfade滤镜须在FFmpeg 4.3以上版本使用)
|<--offset |<--duration-->| AAAAAAAAAAAAAAAAAAAAAA BBBBBBBBBBBBBBBBBBBBBBBBBBB 对应输出为: AAAAAAABABABABABABABABBBBBBBBBBBB 用例:
duration:持续时长,默认值1秒;offset:开始位置,默认值0。单位都是秒
|