FFmpeg 常用滤镜命令及其参数说明常用滤镜命令及其参数说明
滤镜中的图、链和滤镜关系:
FFmpeg命令行中,在“-vf”之后的就为一个滤镜图。滤镜图可以包含多个滤镜链,每个滤镜链可以包含多个滤镜。
对于完整的滤镜图描述比较复杂,可以通过简化来避免歧义。滤镜图中的滤镜链通过使用“;”分隔,滤镜链中的滤镜通过“,”分隔。并且,滤镜链
如果没有指定的输入输出,则默认使用前面的滤镜链的输出为输入,并输出给后边的滤镜链做输入。
那么通过以上的描述我们可以了解到,多滤镜的叠加是可以通过多个滤镜链和多个滤镜叠加的两种方式实现。具体的区别如下:
多个滤镜链模式:把输入分割。分别通过单滤镜的滤镜链,实现多个不同效果的滤镜链过滤后输出在使用overlay 命令合成。
单滤镜链多滤镜模式:不分割输入。使用单个滤镜链中包含多个滤镜效果实现多滤镜叠加。
例: - 多链:
-vf "[input]split[mian][temp];[mian] vflip[flipmain];[temp] boxblur=2:4[blurtemp];[blurtemp] drawgrid=w=iw/10:h=ih/10:t=4:c=red@0.6[gridtemp];[flipmain][gridtemp] overlay[output]"
这里需要解释的是,在分割后,main帧中处理锤子翻转是在最后输出的时候是看不到的,最后的一个overlay 命令将之后的temp帧叠加到main帧上,
相当于是覆盖上去。这里的分割只是做一个示范,分割后的main帧可以获取音频处理音频。
单链多滤镜: -vf "[input] vflip,boxblur=2:2,drawgrid=-2:-2:w=iw/10:h=ih/10:t=4:c=red@0.6"
对于多链而言,单链多滤镜是比较简单的。但是同时只能处理一种类别,只能处理音频或者视频。
所以通常情况下如果要处理音视频的滤镜,需要将两种方式结合起来使用。
视频滤镜:视频滤镜:
1.模糊处理模糊处理
命令:boxblur
参数:
参数参数 释义释义 简写简写
luma_radius 基于亮度值的模糊半径。 lr
alpha_radius 基于透明度平面的模糊半径 ar
chroma_radius 基于色度平面的模糊半径 cr
以上各值默认为2,lr, ar 最小值需要大于min(w,h)/2,其中w,h 为原视频输入宽高(px)。cr 最小值需要大于min(cw,ch)/2 ,其中cw, ch为视频色度平
面的宽高(px)。
命令表达式中的常量:
常量常量 释义释义 其他其他
w 输入视频宽度 单位 px
h 输入视频高度 单位 px
cw 输入视频的色度平面宽度 单位 px
ch 输入视频的色度平面高度 单位 px
hsub 输入视频的色度平面的纵向采样值。
vsub 输入视频的色度平面的横向采样值。
参数:
参数参数 释义释义 简写简写
luma_power 基于亮度值的模糊程度(计算次数) lp
chroma_power 基于色度平面的模糊程度 cp
alpha_power 基于透明度平面的模糊程度 ap
各值默认都为2,计算次数越多,模糊强度越高。如果为0,则不计算改值对应平面上的模糊。
example:
boxblur=2:4:ar=4:cr=6
2.画网格画网格
命令:drawgrid
参数:
参数参数 释义释义 简写简写
x 指定区块的x坐标。
y 指定区块的y坐标
width 指定区块的宽度 默认为0 w
评论0
最新资源