视频工具 · 压缩 / 剪辑

视频水印

文字/图片/位置/时间段

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 64 次使用
本地处理 · 文件永不上传
点击 / 拖拽视频文件到此 本地解析 · MP4 / WebM / MOV / MKV 等浏览器可播放格式 local only · nothing uploaded
实时预览canvas · live watermark
选择视频后在此实时预览水印叠加效果,
满意后导出为保留原声的 webm。
00:00 / 00:00
水印设置text / image · position
字体色
未选择

当前:右下 · 在预览画面上拖拽可微调位置

诚实标注:本工具纯前端运行,采用「video 静音播放 → canvas 逐帧重绘 + 叠加水印 → captureStream 取视频轨 + 原视频音频轨(MediaElementSource → MediaStreamDestination)→ MediaRecorder 重录」, 因此输出为 webm 视频(画面重新编码,保留原声音轨,时长 = 原时长,保持原分辨率)。 如需 MP4 / 无损 请用 FFmpeg(ffmpeg -i in.mp4 -vf drawtext=... out.mp4)。 导出需保持本页面前台播放至结束。

就绪 · 选择视频后实时预览并导出
第一节

关于本工具

About

剪辑师花半小时排好字幕位置,上传平台后水印一压,刚好挡住关键行。这个工具允许分别设定文字或图片水印的坐标、大小、起始结束时间,以及透明度。基于 FFmpeg 在服务端合成,原视频不上传第三方——处理完即删,适合给成批素材打统一版权标记或频道标识。

使用场景

竞品视频去标识

市场部小王拿到一批竞品宣传片,片头片尾都压着对方公司logo。他需要把logo遮掉后给内部团队做竞品分析,但又不能截掉画面主体。本工具支持图片水印覆盖,小王上传一张纯白色方块png,拖到logo位置,设置从第5秒到倒数第3秒显示,刚好盖住片头片尾,中间画面不动。不重新编码整段视频,只改水印区,5分钟处理完20条素材。

网课防盗录压字

在线教育机构助教老张发现,学员把付费课程截图发到二手平台倒卖。老张在每个学员的课程视频右上角压上学员ID+日期,字号设成16px半透明,位置靠边不挡板书。本工具支持文字水印,老张用时间戳功能让水印每隔30秒闪一次透明度,截图党截到的画面要么水印正亮、要么被举报后能追到人。

短视频平台去水印

剪辑师阿杰从抖音下载了一批素材,每条视频右下角都有平台水印。他用本工具的文字/图片水印功能,在相同位置压一个同色系的模糊方块,透明度调至85%,与原始水印重叠后视觉上几乎消失。工具支持按时间段设置,阿杰只在有水印的片段(比如开头3秒和结尾2秒)覆盖,中间无水印部分不动,避免全片画质损失。

企业宣传片加字幕条

品牌部小陈要给年会回顾视频加演讲者姓名条,但只有15条字幕,不想为这点量打开PR套模板。他上传一张带渐变底色的姓名条png,拖到视频左下角,设置每段字幕出现和消失的时间点。本工具支持时间段精确到帧,小陈把15条字幕依次拖时间轴,每条显示5秒,导出后姓名条与口型完全同步,比手动逐帧贴快了3倍。

监控视频打马赛克

物业经理老刘需要把一段电梯监控发给警方,但画面里拍到其他住户的脸。他用本工具的图片水印功能,上传一张马赛克纹理图片(提前从网上下载的模糊方块图),拖到人脸区域,设置从第3秒到第12秒显示。工具不改变原视频分辨率,马赛克区与背景融合自然,老刘导出后直接刻盘移交,避免因隐私泄露被投诉。

第二节

使用指南

Getting Started

使用步骤

  1. 1在「文字水印」输入框键入水印内容,右侧预览区同步显示文字叠加效果,支持拖动调整位置
  2. 2在「图片水印」区域上传 PNG 或 JPG 图片,预览区即时渲染图片水印,支持缩放与旋转
  3. 3在「时间设置」面板指定起始与结束时间(格式 HH:MM:SS),预览区仅在该时段显示水印
  4. 4在「位置」下拉框选择「左上/右上/左下/右下/居中」,预览区水印实时移动到对应角标
  5. 5点击「生成视频」按钮,进度条显示 FFmpeg 处理百分比,完成后自动弹出下载链接

输入输出示例

输入输出说明
文字水印:内容="©2025 全宝",位置=右下角,字体大小=24,透明度=0.6,时间段=0-10秒视频前10秒右下角显示半透明文字"©2025 全宝",10秒后水印消失常规:文字水印最典型用法,验证位置、透明度、时间段的组合效果
图片水印:图片=logo.png,位置=左上角,缩放比例=0.3,透明度=0.8,时间段=全视频整个视频左上角显示缩放至30%的logo.png,透明度80%常规:图片水印标准场景,验证缩放与透明度同时生效
文字水印:内容=""(空字符串),位置=居中,字体大小=12,透明度=1.0,时间段=0-5秒工具报错:水印内容不能为空边界:空内容输入,验证前端校验是否拦截,防止生成无效水印
文字水印:内容="测试",位置=右下角,透明度=0.0,时间段=0-3秒视频前3秒右下角显示完全不透明文字"测试",3秒后消失边界:透明度为0(完全不透明),验证极值处理是否正常
图片水印:图片=超大图(5000x5000px),位置=居中,缩放比例=0.1,时间段=全视频水印图片被压缩至原尺寸10%后居中显示,输出视频尺寸不变边界:超大图片输入,验证缩放逻辑是否按比例处理,不导致视频尺寸异常
文字水印:内容="Hello World",位置=自定义坐标(x=10, y=10),字体大小=72,透明度=0.5,时间段=0-1秒视频第1秒左上角(10,10)处显示大号半透明文字"Hello World"易错:自定义坐标与预设位置(如左上角)的边界关系,用户可能误以为坐标从0,0开始
文字水印:内容="水印",位置=右下角,透明度=0.5,时间段=开始时间=20秒,结束时间=10秒工具报错:结束时间不能早于开始时间易错:时间段顺序颠倒,验证工具是否做时间范围校验

常见错误对照

1.图片水印路径使用了相对路径或网络 URL

✗ 错误logo.png 或 https://example.com/logo.png
✓ 修复/Users/username/Desktop/logo.png 或 C:\Users\username\Desktop\logo.png

FFmpeg 在处理水印时,需要本地绝对路径来读取图片文件。相对路径依赖运行目录,网络 URL 不会自动下载,会导致 'No such file or directory' 错误。

2.文字水印包含未转义的冒号或百分号

✗ 错误版权: 2024 或 100% 原创
✓ 修复版权\: 2024 或 100\% 原创

FFmpeg drawtext 滤镜中,冒号 : 用于分隔滤镜参数,百分号 % 是模板占位符(如 %{pts})。不转义会导致滤镜解析失败,输出 'Unable to parse option'。

3.时间段格式用了中文冒号或全角符号

✗ 错误00:05:00,000 或 00:05:00.000
✓ 修复00:05:00,000

FFmpeg 的时间戳格式严格遵循 HH:MM:SS.mmm(点号)或 HH:MM:SS,mmm(逗号)。中文冒号(Unicode FF1A)不会被识别为分隔符,导致时间解析为 0。

4.位置坐标用了百分比或像素单位混写

✗ 错误x=50%:y=100px
✓ 修复x=(w-tw)/2:y=0 或 x=100:y=50

FFmpeg overlay 滤镜的坐标支持像素值(数字)和表达式(如 (w-tw)/2),但不支持混用百分比。50% 会被当作字符串处理,导致坐标计算错误。

5.文字水印字体文件路径包含空格未加引号

✗ 错误fontfile=/System/Library/Fonts/Helvetica Neue.ttf
✓ 修复fontfile='/System/Library/Fonts/Helvetica Neue.ttf'

FFmpeg 命令行解析时,空格会分隔参数。字体路径含空格而不加引号,会被拆成两个参数,导致 fontfile 只读到前半部分,报 'Could not find font'。

6.图片水印使用了透明 PNG 但未指定 alpha 通道

✗ 错误ffmpeg -i video.mp4 -i logo.png -filter_complex overlay
✓ 修复ffmpeg -i video.mp4 -i logo.png -filter_complex '[1:v]format=rgba[logo];[0:v][logo]overlay'

默认 overlay 滤镜假设两个输入都是相同色彩空间。PNG 的透明通道在部分编码格式下会被丢弃,导致透明区域显示为黑色。显式指定 format=rgba 可保留 alpha。

7.时间段参数用了 'enable' 但写成了 'enabled'

✗ 错误overlay=enable='between(t,5,10)'
✓ 修复overlay=enable='between(t,5,10)'

FFmpeg 滤镜参数名是 enable(无 d),不是 enabled。拼写错误会被当作未知参数忽略,导致水印全程显示,而不是仅在指定时间段出现。

第三节

工作原理

How It Works

核心公式

P(x,y,t) = α·T(x,y) + β·I(x,y,t) + γ·W(x,y,t)

变量说明

  • P(x,y,t)t 时刻像素 (x,y) 的最终颜色值
  • T(x,y)水印文字在 (x,y) 的像素值
  • I(x,y,t)t 时刻原始视频在 (x,y) 的像素值
  • W(x,y,t)t 时刻图片水印在 (x,y) 的像素值
  • α文字水印透明度系数,0~1
  • β原始视频保留系数,通常 1-α-γ
  • γ图片水印透明度系数,0~1

示例

一段 1080p 视频,在 t=5s 时像素 (100,200) 原始值 I=128。添加文字水印 T=200(α=0.3)和图片水印 W=50(γ=0.2),则 β=1-0.3-0.2=0.5。P=0.3×200 + 0.5×128 + 0.2×50 = 60 + 64 + 10 = 134。最终该像素显示为 134。

原始视频+ 水印素材FFmpeg 解析参数校验叠加渲染位置 / 时间 / 透明度输出视频文字 / 图片水印内容时间轴裁剪起止时间段编码合成H.264 / H.265下载文件水印素材时间参数
用户输入 FFmpeg 处理 输出结果
第五节

常见问题

Q & A
视频水印支持哪些图片格式?我用 PNG 和 JPG 都行吗?

支持常见图片格式,包括 PNG、JPG/JPEG、BMP、GIF(静态帧)、WebP 等。PNG 适合带透明背景的 logo,JPG 适合纯色矩形水印。注意:如果图片本身有透明通道(如 PNG),工具会保留透明区域,水印叠加后不会出现白色底块。GIF 动画只取第一帧作为静态水印,不支持动态水印。

水印位置选“右上角”但出来的位置偏了,怎么回事?

位置参数是基于视频原始分辨率的百分比偏移,默认边距是 10 像素。如果视频分辨率较小(如 640×360),10 像素边距占比较大,可能感觉偏内。可以手动调整“边距”参数(单位像素),边距设为 0 则水印紧贴边缘。另外,如果视频本身有黑边(如宽银幕上下黑条),位置计算以整个画面为准,建议先裁剪黑边再加水印。

视频加水印后为什么变模糊了?原视频很清晰。

水印工具本身不压缩视频,模糊通常是输出编码参数导致的。如果原视频码率高(如 10 Mbps),而工具默认输出码率较低(如 2 Mbps),画面会因编码压缩而损失细节。解决:在工具高级设置里把“视频码率”调高到与原视频相近(如 8-10 Mbps),或者选择“与原视频相同”选项(如果工具提供)。另外,如果水印图片分辨率比视频大很多,缩放显示时也会模糊,建议水印图片尺寸不超过视频宽度的 1/4。

能只给视频的某一段加水印吗?比如前 10 秒不要水印。

可以。工具支持“时间段”设置,输入起始时间和结束时间(格式 HH:MM:SS 或秒数),水印只在该时间段内显示。例如:要从前 10 秒到结尾显示水印,起始时间填 00:00:10,结束时间留空(默认到视频末尾)。如果要中间一段显示水印(如 10 秒到 30 秒),则填两个时间。注意:时间段精确到秒,不支持毫秒级。

视频加水印后文件大小变大了很多,正常吗?

正常情况。水印叠加增加了视频的画面复杂度(尤其是图片水印),编码器需要更多数据来保持画质,导致文件体积增大。通常增大 10%-30%。如果增大超过 50%,可能是输出码率设置过高或水印图片分辨率过大。建议:输出码率设为原视频的 80%-100%;水印图片分辨率不超过视频宽度的 1/3;如果水印是纯文字,用文字水印(体积影响极小)代替图片水印。

这个工具上传视频会不会泄露隐私?要不要传到服务器?

本工具使用 FFmpeg 在浏览器本地(WASM)进行水印处理,视频数据不上传任何服务器。所有运算在用户浏览器内完成,处理完后视频直接下载到本地,服务器不存储任何原始视频或处理后的视频。如果使用后端处理模式(如大文件或复杂效果),视频会上传到临时目录,处理完成后立即删除,最长保留 30 分钟。隐私敏感场景建议使用纯浏览器模式。

为什么我加了文字水印后,文字边缘有锯齿?

锯齿通常是因为文字水印的字体大小太小或视频分辨率较低。FFmpeg 的文字水印默认使用系统字体渲染,如果字体像素不足,边缘会出现锯齿。建议:文字字号至少设为视频高度的 3%(如 1080p 视频用 32 号字以上);选择抗锯齿效果好的字体(如微软雅黑、思源黑体);如果工具支持“描边”或“阴影”选项,开启后可掩盖锯齿。另外,输出分辨率设为与原视频一致,不要缩小。

视频水印和手机 App 里的水印功能有什么区别?

手机 App 的水印功能通常集成在剪辑流程中,支持拖动位置、实时预览,但受限于手机性能,处理大视频(4K、长视频)时容易卡顿或闪退。本工具在 PC 浏览器上运行,利用 WASM 的 FFmpeg 处理,支持更大的视频(常见 4K 30 分钟以内)、更精确的位置参数(像素级)、以及自定义时间段。缺点是没有实时预览,需要处理完才能看到效果。适合需要批量处理或精确控制水印位置的场景。

视频加水印后播放卡顿,怎么解决?

卡顿通常不是水印本身导致的,而是输出编码参数与播放设备不兼容。最常见原因:输出编码设为 H.265(HEVC)但播放设备不支持硬件解码。解决:在工具输出设置里选择 H.264 编码(兼容性最好);帧率保持与原视频一致(不要强制 60fps);如果视频分辨率过高(如 4K),可以降低输出分辨率到 1080p。另外,如果水印图片过大(如 4K 图片),渲染时也会增加播放器负担,建议水印图片缩小后再上传。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

选择 打开 +新窗口 esc关闭