有总比没有好,做个笔记
原理简述
去水印功能已经给你写好了,你需要给它一个输入:原视频,以及水印位置。
这里假设的是水印在整个视频里面都是不动的,并且是个矩形。
- 怎么描述这个矩形呢,给定它左上角的坐标,以及长和宽。
- 怎么获得这个矩形呢,截取视频的一帧,用画图软件抠抠搜搜,具体下面再说。
具体实现
以下复制自ffmpeg去除视频水印之计算水印位置,就懒得再写了
- 截取一张视频的完整图片
#【不推荐,容易算不准】使用截图工具截图一张视频完整的截图
#【推荐】使用ffmpeg 命令截取视频第一帧图,示例如下ffmpeg -i test.mp4 -ss 1 -f image2 -vframes 1 out.jpg #这句意思是在test.mp4这个文件1秒的位置截取一张图片,保存为out.jpg
- 将图片放入画图工具或者专业的图像处理工具(Photoshop)进行计算
- 找到水印左上角第一个点的坐标
- 找到水印宽和高
- 组装去除水印的命令
示例: 视频水印坐标为:50,640. 水印的宽高为:180,60 ffmpeg -i 1.mp4 -vf "delogo=x=50:y=640:w=180:h=60:show=0" -c:a copy 2.mp4 #参数 x —— 水印横坐标 y —— 水印纵坐标 w —— 水印宽 h —— 水印高 show —— 0水印位置没有边框,1水印位置是一个绿色框覆盖 若有多个静态水印,位置固定,可参考以下: ffmpeg -i 1.mp4 -vf "delogo=x=%s:y=%s:w=200:h=50:show=0,delogo=x=%s:y=%s:w=200:h=50:show=0" -c:a copy 2.mp4