针对FFMPEG提供视频过滤器进行了介绍,并提供使用实例
addroi
作用
在视频帧上标记一块感兴趣的区域。
帧数据被原封不动地传递,但元数据被附加到帧,指示可能影响后续编码行为的感兴趣区域。可以通过多次应用过滤器来标记多个区域。
参数
qoffset: 应用在此区域的量化偏移。
参数范围:-1 ~ +1 , 0表示不做处理,负值表示更好的质量(较低的量化),正值表示较差的质量(更高的量化)
例如:在10 bit 的H264的文件中,量化参数位于-12到51之间。如果qoffset 的值设为-1/10,则表示这个区域的编码质量应该比其他区域的质量好十分之一。如果视频帧的编码QP为30,则这个区域的QP在24左右(-1/10 * (51--12) = -6.3)。如果qoffset为极值-1,这表示这块区域应该使用最好的质量进行编码,也就是QP为-12。
clear:在添加新区域前清除所有已标记的区域
实例
标记1/4区域 addroi=iw/4:ih/4:iw/2:ih/2:-1/10标记左边100像素宽的区域(以更低的质量编码) addroi=0:0:100:ih:+1/5
alphaextract
作用
从输入中提取alpha组件作为灰度视频。这对于alphamerge过滤器特别有用。
参数
alphamerge
作用
用第二个输入的灰度值添加或替换主输入的alpha分量。这是为了与alphaextract过滤器一起使用,以允许以不支持alpha通道的格式传输或存储具有alpha的帧序列。
参数
实例一
ffmpeg -i "1.jpeg" -i "2.png" -filter_complex "[0]scale=200:200[ava];[1]scale=200:200,format=rgba,alphaextract[alfa];[ava][alfa]alphamerge" circle_ava.png
1.jpeg:位深24的,没有alpha,2.png位深32,有alpha
这里提取2.png的alpha通道叠加到1.jpeg图片上生成带有alpha通道的图片
示例二
生成带有alpha通道的视频
ffmpeg -i beautlWorld.mp4 -vf "lumakey=threshold=0:tolerance=0:softness=0.2" -pix_fmt rgba -vcodec rawvideo -f avi softness_rgba.avi
堆叠播放原视频和灰度视频
ffplay -i softness_rgba.avi -vf "split[0][1];[1]alphaextract[2];[0][2]hstack
将视频2的alpha通道叠加到视频1上生成新的视频
ffmpeg -y -i 1.avi -i 2.avi -filter_complex “[1:v]alphaextract[tmp];[0:v][tmp]alphamerge[outv]” -map [outv] alphamerge.avi
amplify
作用
放大连续视频帧之间的变化
参数
ass
作用
使用libass库将ASS字幕渲染到输入视频上。
参数
atadenoise
作用
对视频输入应用自适应时间平均去噪器
参数
avgblur
作用
应用平均模糊过滤器。
该过滤器可能是ffmpeg中几种“模糊”方法中最简单的一种。它可能只是取八边形像素的平均值。由于这种简单性,如果想“破坏图像并使其无法识别”,接近所谓的马赛克处理