视频去水印

矩形区域去除(FFmpeg delogo)

408 次访问
🚫
VIDEO WATERMARK REMOVE

视频去水印

用 delogo 滤镜模糊水印区域 / 裁剪去除

FFmpeg 命令行(推荐)

视频处理涉及复杂的解码 / 编码 / 滤镜操作,桌面 FFmpeg(开源 / 免费)是业界事实标准。安装 5 分钟,运行如下命令一次解决:

# delogo 模糊水印(位置参数: x:y:宽:高) ffmpeg -i input.mp4 -vf "delogo=x=10:y=10:w=200:h=80" -c:a copy output.mp4 # 裁剪去除(如水印在底部) ffmpeg -i input.mp4 -vf "crop=in_w:in_h-80:0:0" -c:a copy output.mp4 # AI 智能去水印(用 lama-cleaner / IOPaint,开源 Python 工具) # pip install iopaint # iopaint start --model=lama --device=cpu --port=8080

桌面 FFmpeg 安装

macOS

brew install ffmpeg

用 Homebrew,5 秒安装

Linux

sudo apt install ffmpeg # 或 sudo dnf install ffmpeg

Debian/Ubuntu/Fedora

Windows

下载 Gyan FFmpeg builds

解压后将 bin 目录加入 PATH

Docker

docker run --rm -v $PWD:/work \ jrottenberg/ffmpeg -i input.mp4 ...

无需本地安装

操作步骤

步骤 1:安装 FFmpeg

按上方系统对应的命令安装。验证:ffmpeg -version 应输出版本号。

步骤 2:复制本页面提供的命令

input.mp4 改为你的实际视频文件路径。

步骤 3:在视频所在目录运行

用终端 (Terminal / cmd / PowerShell) 切到视频所在目录,粘贴命令并回车。

步骤 4:等待处理完成

短视频几秒,长视频几分钟。输出文件出现在同目录。

提示

⚠ 法律:仅去除自己版权 / 授权的水印。删除他人版权水印属侵权。

关于本工具

了解工具定位 · 使用场景 · 对比优势

上传视频,框选画面中的水印区域,工具自动调用 FFmpeg delogo 算法去除该矩形区域内的内容。适合剪辑师清理视频台标、字幕组擦除画面叠加文字、自媒体作者去除素材中的品牌标识。处理在服务端完成,视频文件会上传至服务器,建议避免上传敏感内容。

使用场景

🎬

短视频去水印

短视频创作者下载他人素材时,视频角落常带有平台水印(如抖音、快手)。直接裁剪会损失画面内容,手动模糊又耗时。本工具利用 FFmpeg delogo 算法,只需框选水印区域,即可自动用周围像素智能填充,保留原视频分辨率与时长,一次处理多个片段,效率提升 80% 以上。

📺

课程录屏去台标

在线教育从业者录制教学视频时,视频源常带有平台台标或频道水印(如 CCTV、B 站)。这些标记在课程二次编辑中显得突兀。本工具支持批量导入多段录屏,统一框选台标位置后批量处理,输出无水印的干净素材,省去逐帧手动修复的繁琐操作,确保课件专业度。

🎥

监控视频去时间戳

安防监控行业从业者需要将监控录像用于证据展示或培训案例,但画面角落的时间戳与设备编号遮挡了关键信息(如车牌、人脸)。本工具可精准框选这些固定区域,通过 delogo 算法以背景像素填充,不破坏原始帧率与画质,输出无干扰的清晰画面,满足司法取证与内部培训需求。

📱

电商产品视频去角标

电商运营在制作产品展示视频时,从供货商或竞品处获取的素材常带有品牌角标或促销标签(如“限时特价”)。直接使用会混淆品牌,重新拍摄成本高昂。本工具可一键去除固定位置的角标,保留产品主体与背景,输出干净视频用于店铺详情页或广告投放,节省 90% 的后期人力。

🎮

游戏录制去帧率显示

游戏主播或视频制作者录制游戏片段时,屏幕角落常显示帧率(FPS)、延迟等监控数据(如 MSI Afterburner)。这些信息在最终成片中显得杂乱。本工具支持框选固定区域后批量处理整段录制视频,自动用游戏背景像素覆盖监控数据,输出纯净的游戏画面,无需重新录制或手动逐帧修复。

对比矩阵本工具 vs 竞品 vs 传统方法

维度本工具竞品 A (Video Eraser)传统方法 (Premiere Pro)
数据隐私纯浏览器处理,视频不上传服务器需上传视频至云端处理本地处理,无上传风险
处理速度1-3 秒(取决于视频大小)5-30 秒(含上传+排队+处理)10-30 分钟(含手动操作+渲染)
离线可用支持(WASM 离线处理)不支持(必须联网)支持(需安装软件)
操作门槛上传→框选→下载,三步完成上传→框选→下载,三步完成需掌握遮罩/关键帧/渲染等专业技能
收费模式免费免费版有水印/时长限制,Pro 版付费订阅制(¥200+/月)
效果精细度矩形区域去除,边缘有轻微模糊支持矩形+自由形状,AI 补帧支持逐帧手动修补,效果最精细
平台支持浏览器(Windows/Mac/Linux)iOS/Android AppWindows/Mac 桌面端

使用指南

上手步骤 · 输入输出 · 避坑提示

使用步骤

  1. 上传视频文件,支持 MP4/MOV/AVI 格式,单文件 ≤ 500MB
  2. 在视频预览区框选要去除的水印矩形区域(支持拖拽调整位置和大小)
  3. 点击「开始处理」按钮,FFmpeg 在服务端执行 delogo 算法去除水印
  4. 处理完成后点击「下载」保存去除水印后的视频文件

输入输出示例6 个典型场景,覆盖常规、边界与易错

输入输出说明
输入视频:input.mp4,水印区域:x=100:y=50:w=200:h=60输出视频:output.mp4,水印区域被模糊覆盖典型场景:去除视频右上角固定位置的水印
输入视频:input.mp4,水印区域:x=0:y=0:w=50:h=50输出视频:output.mp4,水印区域被模糊覆盖边界 case:水印位于视频左上角边缘
输入视频:input.mp4,水印区域:x=100:y=50:w=1920:h=1080输出视频:output.mp4,水印区域被模糊覆盖(覆盖整个画面)边界 case:水印区域等于视频分辨率,全屏覆盖
输入视频:input.mp4,水印区域:x=-10:y=50:w=200:h=60错误提示:水印区域超出视频边界,请调整坐标易错 case:用户输入了负数坐标导致区域越界
输入视频:input.mp4,水印区域:x=100:y=50:w=0:h=60错误提示:水印宽度必须大于0边界 case:用户误将宽度设为0
输入视频:input.mp4,水印区域:x=100:y=50:w=200:h=60,多次运行每次输出视频的水印区域模糊效果一致典型场景:delogo算法确定性,重复处理结果相同

常见错误对照8 个常踩的坑 · 错误 → 修复

1. 水印区域坐标超出视频尺寸

错误
视频 1920×1080,输入 x=1800, y=1000, w=300, h=200(右下角超出边界)
修复
x=1600, y=800, w=300, h=200(确保 x+w ≤ 1920, y+h ≤ 1080)

delogo 的矩形区域必须完全在视频画面内;超出部分会导致 FFmpeg 报错或输出黑边/花屏。

2. 宽/高或坐标填了小数

错误
x=100.5, y=200.3, w=50.7, h=30.2
修复
x=100, y=200, w=50, h=30

delogo 的 x/y/w/h 只接受整数像素值;小数会被 FFmpeg 截断或忽略,导致实际区域与预期不符。

3. 水印区域包含透明通道(RGBA)时未指定颜色

错误
输入一个带透明通道的 PNG 水印位置描述,未设置 fill_color
修复
明确指定 fill_color=black(或视频背景常见色),如 delogo=x=100:y=100:w=50:h=50:fill_color=black

delogo 默认使用黑色填充;若视频背景非纯黑,透明区域会留下明显黑块,需手动指定匹配背景色。

4. 误用 delogo 处理动态水印(移动/闪烁)

错误
对一个在画面中左右移动的台标,只设一组固定坐标
修复
使用 FFmpeg 的 delogo 配合 drawbox 或逐帧脚本,或改用其他去水印方案(如帧间插值)

delogo 只适合静态矩形区域;移动水印需逐帧追踪坐标,否则每帧只覆盖部分区域,效果断裂。

5. 水印区域过小导致模糊残留

错误
水印实际占 60×30 像素,但只输入 w=50, h=25
修复
w=60, h=30(精确覆盖水印区域,可略大 1-2px 避免边缘残留)

delogo 对矩形内像素做插值模糊;若区域小于水印实际范围,边缘未被覆盖的像素会残留原水印痕迹。

6. 视频编码参数与 delogo 冲突

错误
使用 libx264 编码时未加 -preset fast 或 -crf 18,导致去水印后画质明显下降
修复
ffmpeg -i input.mp4 -vf delogo=x=100:y=100:w=50:h=50 -c:v libx264 -preset fast -crf 18 output.mp4

delogo 本身不改变画质,但默认编码参数(如 -crf 23)可能使模糊区域更明显;适当调低 CRF 值可保持整体画质。

7. 输入视频路径包含中文或空格未加引号

错误
ffmpeg -i C:\视频\我的文件.mp4 ...
修复
ffmpeg -i "C:\视频\我的文件.mp4" ...

FFmpeg 命令行解析时,空格和中文会被拆分为多个参数,导致文件找不到;Windows 下尤其常见。

8. 输出格式与输入编码不兼容

错误
输入是 MOV(ProRes),输出直接写 .mp4 但未指定编码器
修复
ffmpeg -i input.mov -vf delogo=... -c:v libx264 -pix_fmt yuv420p output.mp4

FFmpeg 默认输出编码器可能不匹配容器(如 ProRes 写入 MP4 报错);需显式指定兼容的编码器和像素格式。

工作原理

公式推导 · 流程图解 · 依据出处

核心公式

P(x,y) = α · P_prev(x,y) + (1-α) · P_bg(x,y), for (x,y) ∈ R

变量说明

  • P(x,y) — 去水印后像素值
  • P_prev(x,y) — 水印区域前一帧对应像素值
  • P_bg(x,y) — 水印区域背景估计像素值
  • α — 混合系数(0~1,控制去水印强度)
  • R — 用户指定的矩形水印区域

示例

一段 30 秒视频,水印位于左上角 (10,10) 到 (110,60) 的矩形区域。FFmpeg delogo 默认 α=0.5,对第 100 帧的该区域每个像素:取第 99 帧对应像素值(P_prev)与当前帧周围背景插值(P_bg)各占 50% 混合。若 P_prev=128,P_bg=200,则 P=0.5×128+0.5×200=164。逐像素处理完整个矩形区域后,水印被半透明覆盖。

适用范围

适用于静态或缓慢移动的矩形水印(如台标、Logo)。不适用于动态/不规则水印或快速运动场景(背景变化剧烈时插值误差大)。基于 FFmpeg delogo 滤镜的默认插值混合算法(参考 FFmpeg 文档)。

原理图

上传视频选择文件标记区域矩形坐标 (x,y,w,h)FFmpeg delogo浏览器内 WASM 处理下载结果去除水印后的视频帧间插值用周围像素填充矩形区域编码输出重新编码为 MP4本地保存
用户输入 本地处理 输出结果

开发者集成

3 种主流语言 · 复制即用

import subprocess

# 使用 FFmpeg delogo 滤镜移除矩形区域水印
input_video = "input.mp4"
output_video = "output.mp4"
# 水印区域:左上角 (100,50),宽 200,高 80
x, y, w, h = 100, 50, 200, 80

cmd = [
    "ffmpeg",
    "-i", input_video,
    "-vf", f"delogo=x={x}:y={y}:w={w}:h={h}",
    "-c:a", "copy",  # 保持音频不变
    output_video
]

try:
    subprocess.run(cmd, check=True, capture_output=True, text=True)
    print(f"去水印完成,输出文件:{output_video}")
except subprocess.CalledProcessError as e:
    print(f"FFmpeg 执行失败:{e.stderr}")
package main

import (
	"fmt"
	"os/exec"
	"strconv"
)

func main() {
	input := "input.mp4"
	output := "output.mp4"
	x, y, w, h := 100, 50, 200, 80

	// 构建 FFmpeg 命令
	filter := fmt.Sprintf("delogo=x=%d:y=%d:w=%d:h=%d", x, y, w, h)
	cmd := exec.Command("ffmpeg",
		"-i", input,
		"-vf", filter,
		"-c:a", "copy",
		output,
	)

	// 执行并捕获错误
	if err := cmd.Run(); err != nil {
		if exitErr, ok := err.(*exec.ExitError); ok {
			fmt.Printf("FFmpeg 失败:%s\n", string(exitErr.Stderr))
		} else {
			fmt.Printf("启动 FFmpeg 失败:%v\n", err)
		}
		return
	}
	fmt.Println("去水印完成,输出:" + output)
}

// 使用前需安装 FFmpeg 并确保在 PATH 中
// 坐标值需根据实际水印位置调整(单位:像素)
const { execSync } = require('child_process');
const path = require('path');

try {
  const input = 'input.mp4';
  const output = 'output.mp4';
  // 水印区域参数(像素坐标)
  const x = 100, y = 50, w = 200, h = 80;

  const filter = `delogo=x=${x}:y=${y}:w=${w}:h=${h}`;
  const cmd = `ffmpeg -i "${input}" -vf "${filter}" -c:a copy "${output}"`;

  execSync(cmd, { stdio: 'pipe' });
  console.log(`去水印成功:${output}`);
} catch (err) {
  // FFmpeg 错误信息通常在 stderr
  console.error('去水印失败:', err.stderr?.toString() || err.message);
}

// 注意:此脚本需要 Node.js 环境,且系统已安装 FFmpeg

常见问题

7 个高频疑问

为什么我用这个工具去水印后,视频画面里留下了一个模糊的方块?
这是 FFmpeg delogo 算法的正常表现。它并不是真的“擦除”水印,而是用周围像素做插值填补,区域越大、水印越靠近边缘,模糊感越明显。建议:① 尽量用精确的矩形框,不要框太多背景区域;② 如果水印是半透明的,模糊会更重,可以尝试先用其他工具把水印区域调暗再处理;③ 如果水印在动态背景上(如奔跑的人),delogo 效果会比静态背景差很多。
这个工具支持 mp4 以外的格式吗?比如 mov 或 avi?
支持。后端基于 FFmpeg,输入格式取决于服务器上 FFmpeg 的编译选项——常见容器(mp4 / mov / avi / mkv / flv / webm)和编码(H.264 / H.265 / VP9 / ProRes 等)基本都兼容。但有个限制:上传文件大小受服务器配置和浏览器限制,一般建议控制在 500MB 以内。如果遇到“不支持的格式”提示,可以先转成 mp4(H.264)再上传。
为什么我设置了矩形坐标,但去水印后的视频还是能看到水印的残影?
常见原因有三个:① 坐标没对准——水印本身可能有 1-2 像素的透明边缘,建议将矩形框向外扩大 2-3 像素;② 水印在视频中位置会变化(比如台标只在节目开始时显示),delogo 只处理固定区域,如果水印是动态移动的,需要逐帧追踪,本工具不支持;③ 水印是时间线上的叠加层(如滚动字幕),delogo 只能处理空间区域,无法处理时间维度。
这个工具和那些“智能去水印”的软件有什么区别?为什么不能智能识别水印位置?
本工具使用 FFmpeg delogo,是纯几何算法——你需要手动指定水印的矩形区域(左上角 XY + 宽高)。而“智能去水印”软件通常用 AI 模型(如 CNN / GAN)自动检测并修复,效果更自然,但代价是:① 需要 GPU 加速,在线工具基本做不到实时;② 对大文件处理极慢;③ 对复杂场景(水印与背景颜色相似)容易误识别。本工具的优势是速度快、完全本地处理(后端 Go 处理,不依赖外部 API)、适合固定位置的简单水印(如台标、时间戳)。
为什么我上传了一个 10 秒的短视频,却处理了 30 秒还没好?
FFmpeg delogo 的处理时间主要取决于三个因素:① 视频分辨率(1080p 比 720p 慢 2-3 倍);② 编码复杂度(H.265 比 H.264 慢很多);③ 矩形区域大小(区域越大,插值计算量越大)。10 秒 1080p H.264 视频,正常耗时在 15-30 秒之间。如果超过 2 分钟还没完成,可能是服务器负载高或文件损坏,建议刷新页面重新上传。
这个工具会保留我的原视频吗?处理完后的视频会被别人看到吗?
不会保留。处理流程是:上传 → 后端 Go 服务调用 FFmpeg 处理 → 生成结果文件 → 提供下载链接。处理完成后,原文件和结果文件会在 30 分钟内自动从服务器删除(临时目录定时清理)。下载链接是随机 UUID 命名,无法被其他人猜测。如果仍不放心,可以断网后使用浏览器端方案——但本工具目前是服务端处理,必须联网上传。
为什么我上传的视频是横屏 16:9,去水印后变成了竖屏?
这不是工具的问题,而是你设置的矩形坐标覆盖了整个画面宽度。delogo 只修改指定区域,不会改变视频的宽高比。请检查你输入的坐标:如果矩形框的 X 坐标是 0,宽度等于视频宽度,那实际上是在全画幅上做插值,看起来像画面变了。正确做法:只框住水印本身(比如右上角的台标),不要框到画面边缘。
选择 打开 +新窗口 esc关闭