天扫了一眼FFmpeg文档,发现居然有去台标(delogo)功能。它的原理是:在画面中指定一个矩形区域(x,y,w,h),区域内的每个像素都与相邻像素做插值混合处理,以达到模糊化的效果。此功能实乃搬运工之福音啊!
官网地址:http://www.ffmpeg.org/ffmpeg-filters.html#delogo
为了验证这个滤镜效果,我找来了一段含有CCTV-5台标的视频,如下:
通过测算得知,左上角台标的起点坐标是(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表示需勾勒出矩形区域的外边框。实际效果如下:
问题来了,如果源文件中有多处台标,怎么处理呢?其实也简单,再加一个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
本文完!
————————————————
版权声明:本文为CSDN博主「happydeer」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/happydeer/article/details/87923283