录下来的直播视频带水印?用 FFmpeg 就能搞定。两条命令,一条裁边,一条模糊,二选一。

去水印前,先把视频录下来

没有本地视频谈不上去水印。如果你还没录制,先看看用streamlink录制夜月直播下载到本地:M3U8抓取与MP4保存,把直播流保存成 MP4 再回来操作。更多录制方案也可以参考夜月直播下载视频到本地:录制工具与方法汇总

FFmpeg 怎么安装?

Windows 用户去 ffmpeg.org 下载 zip,解压后把 bin 目录加入系统 PATH。Mac 用 brew install ffmpeg。Linux 跑一句 sudo apt install ffmpeg。安装完打开终端输入 ffmpeg -version,看到版本号就成了。

方法一:裁剪画面去水印

水印压在角落?直接把那一圈裁掉。适合水印位置固定、占边距不宽的情况。

命令模板:

ffmpeg -i input.mp4 -vf "crop=W:H:X:Y" -c:a copy output.mp4

参数说明:

  • W:裁剪后的宽度
  • H:裁剪后的高度
  • X:从左起裁剪的起始像素
  • Y:从上起裁剪的起始像素

举个例子:原视频 1920×1080,右下角有水印,想去掉底部 60 像素,命令就是:

ffmpeg -i input.mp4 -vf "crop=1920:1020:0:0" -c:a copy output.mp4

这样底部 60 行全切掉,水印连带消失。-c:a copy 表示音频直接复制,不重新编码,速度快。

方法二:delogo 滤镜模糊去水印

水印压在画面中央或裁边会损失太多内容?用 delogo 滤镜,只对指定矩形区域做模糊处理,其他部分原样保留。

命令模板:

ffmpeg -i input.mp4 -vf "delogo=x=X:y=Y:w=W:h=H" -c:a copy output.mp4

参数说明:

  • x / y:水印区域左上角坐标
  • w / h:水印区域的宽度和高度

实际示例:水印在右下角,坐标大约从 (1750, 1020) 开始,宽 150、高 50:

ffmpeg -i input.mp4 -vf "delogo=x=1750:y=1020:w=150:h=50" -c:a copy output.mp4

delogo 会用周边像素填充该区域,效果像「抹掉」。处理后局部会有轻微模糊,正常现象。

怎么确定水印坐标?

用 FFmpeg 截一帧看像素位置:

ffmpeg -i input.mp4 -vframes 1 -ss 00:00:10 thumb.png

然后用 Windows 画图或 macOS 预览打开 thumb.png,把鼠标移到水印边缘,状态栏会显示当前坐标。记下四个边的像素值,套进命令就行。

两种方法怎么选?

情况 推荐方法
水印在画面边缘,裁掉不影响主体 crop 裁剪,速度更快
水印在画面中部或靠近主播面部 delogo 模糊,保留更多画面
多个水印分散在不同位置 叠加多个 delogo 滤镜,用逗号分隔

多个水印叠加滤镜写法

比如同时处理左上和右下两个水印区域:

ffmpeg -i input.mp4 -vf "delogo=x=10:y=10:w=120:h=40,delogo=x=1750:y=1020:w=150:h=50" -c:a copy output.mp4

逗号连接两个 delogo,一次处理完,不用跑两遍。

处理速度慢怎么办?

默认用 CPU 编码。如果显卡支持硬件加速,可以加 -c:v h264_nvenc(NVIDIA)或 -c:v h264_videotoolbox(Mac),速度能快几倍。但 delogo 滤镜本身不支持纯 GPU 路径,会先在 CPU 处理再传给 GPU 编码,速度提升有限。

文件较大?加 -preset fast 参数牺牲一点画质换速度,对夜月直播下载的录像内容来说通常感知不到差异。

两套命令都不复杂。裁剪适合快速处理,delogo 适合精细去除。把命令里的坐标换成自己视频的实际数值,跑一遍就出结果。夜月直播下载的录像文件处理完,本地存档干净多了。