使用ffmpeg增删水印

2020-12-07 15:30:28 浏览数 (2)

一.获取基本信息

ffmpeg -i 文件名 输出类似:

代码语言:javascript复制
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'a.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 1
    compatible_brands: isommp42
  Duration: 00:03:31.12, start: 0.000000, bitrate: 548 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 512 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
    Metadata:
      handler_name    : Bento4 Video Handler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 32 kb/s (default)
    Metadata:
      handler_name    : Bento4 Sound Handler

其中: - Duration行的bitrate: 548 kb/s, 为视频比特率 - Stream行的640x360为分辨率

二.添加水印

代码语言:javascript复制
ffmpeg -i a.mp4 -acodec copy -b:v 548k -vf "movie=logo.png[watermark];[in][watermark]overlay=20:20" output.mp4

说明 - -i a.mp4:要处理的视频文件 - -acodec copy:保持音频不变 - -b:v 548k:设置视频比特率,默认200k,最好设置与原视频一致(获取方法见一),不然清晰度可能变差。 - -vf “…”:水印处理参数。其中,logo.png是水印图片;overlay=20:20是图片左上角距离视频左上角的距离。 - output.mp4为输出文件名

本例在视频左上方20*20的位置插入了导航logo,效果如下:

三.去除水印

代码语言:javascript复制
ffmpeg -i a.mp4 -b:v 548k -vf delogo=x=495:y=10:w=120:h=45:show=1 delogo.mp4

对delogo滤镜的说明: - x,y:水印的左上方坐标 - w,h: 水印的宽高 - show:可选参数,为1时,可以看到一个绿色的,由x,y,w,h所确认的矩形框,方便调试使用。无误后,可以去掉此参数。 - 如需使用delogo滤镜,编译ffmpge一定要加–enable-gpl选项(详见这里)。不然使用时会提示

代码语言:javascript复制
no such filter 'delogo'

接着来看看上面命令的效果。原视频截图如下:

处理后的视频截图如下:

是不是很完美!至于那个绿框,只要去掉上面的命令中的show=1就可以让它消失了。

更详细的delogo说明可以参见这里

0 人点赞