NiceLeeのBlog 用爱发电 bilibili~

备忘录 ffmpeg去水印功能delogo的使用

2022-07-16
nIceLee

阅读:


有总比没有好,做个笔记

原理简述

去水印功能已经给你写好了,你需要给它一个输入:原视频,以及水印位置。
这里假设的是水印在整个视频里面都是不动的,并且是个矩形。

  • 怎么描述这个矩形呢,给定它左上角的坐标,以及长和宽。
  • 怎么获得这个矩形呢,截取视频的一帧,用画图软件抠抠搜搜,具体下面再说。

具体实现

以下复制自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
    

内容
隐藏