FFmpeg滤镜:去台标

今天扫了一眼FFmpeg文档,发现居然有去台标(delogo)功能。它的原理是:在画面中指定一个矩形区域(x,y,w,h),区域内的每个像素都与相邻像素做插值混合处理,以达到模糊化的效果。此功能实乃搬运工之福音啊!

官网地址:http://www.ffmpeg.org/ffmpeg-filters.html#delogo

为了验证这个滤镜效果,我找来了一段含有CCTV-5台标的视频,如下:

FFmpeg滤镜:去台标_第1张图片

通过测算得知,左上角台标的起点坐标是(23, 15),台标的宽为56,高为26。于是,我们可以通过这个命令行来看到效果:

ffplay -i D:\MTest\football1.mp4 -vf delogo=x=23:y=15:w=56:h=26:show=1

意思是:播放D:\MTest目录下的源文件football1.mp4,播放链路中加入一个delogo滤镜,把指定区域的图像内容模糊化;show=1表示需勾勒出矩形区域的外边框。实际效果如下:

FFmpeg滤镜:去台标_第2张图片

问题来了,如果源文件中有多处台标,怎么处理呢?其实也简单,再加一个delogo滤镜即可——两个滤镜之间用逗号分开。命令行如下:

ffplay -i D:\MTest\football1.mp4 -vf "delogo=x=23:y=15:w=56:h=26:show=1, delogo=x=1:y=190:w=56:h=20:show=1"

使用ffplay是为了快速看到滤镜效果,也方便调整参数。当参数调整到理想状态之后,如果想把处理后的视频保存为一个新的视频文件,可以执行如下命令行:

ffmpeg -i D:\MTest\football1.mp4 -vf "delogo=x=23:y=15:w=56:h=26, delogo=x=1:y=190:w=56:h=20" D:\MTest\football1_nologo.mp4

再通过ffplay来验证一下效果:

ffplay -i D:\MTest\football1_nologo.mp4

本文完!

你可能感兴趣的:(多媒体)