视频防伪
我要提建议给视频加可溯源的水印:文字 / 图片水印、平铺防盗、随时间漂移的动态水印与实时时间码,逐帧导出 mp4 并保留音轨。
相关工具
这个工具是做什么的
给视频加水印,真正的难点不是「画上去」,而是加上去之后还能不能被轻易抹掉、出了问题能不能查到是哪一份流出去的。所以这个工具做了三件事:① 水印可以平铺(铺满整屏并斜置,裁掉一处还有一堆);② 水印可以随时间漂移(对角线 / 圆周 / 随机游走 / 定时换位,逐帧擦除的成本一下高很多);③ 水印内容支持占位符 —— {time} 实时时间码、{frame} 帧号、{serial} 编号,每帧自动展开,泄漏出去的那一份视频上就写着它的时间与编号。文字水印可调字体、字号(按原视频像素直接填数字)、加粗斜体、颜色、描边、阴影与旋转,还能在底部垫一条渐变压暗带;图片水印支持 PNG 透明底,按画面宽度百分比缩放。上面另有十多套预制样式(右下角署名 / 居中大字 / 底部署名条 / 时间码溯源 / 编号溯源 / 平铺防盗 / 密集平铺 / 动态漂移 / 漂移+时间码 / 定时换位 / logo 角标 / logo 平铺)一键套用。每个水印可以单独设生效时间段,多个水印按列表顺序叠加。导出走 WebCodecs 逐帧编码:预览看到什么、导出就是什么,时长不漂、音轨尽量保留。实话也得说清楚:可见水印只能提高搬运成本,挡不住录屏、裁剪与重编码,别指望「加上就偷不走」;另外这里不做「隐写数字水印」(把信息藏在像素最低位那一类),视频经 H.264 有损压缩后那种信息基本会被破坏,做了也读不出来。全程在本机完成,视频数据不出设备。
使用方法
- 选择视频文件;工具会先检测浏览器是否支持 WebCodecs,不支持会直接告诉你换哪个浏览器。
- 从预制样式里点一个(比如「右下角署名」或「动态漂移」)快速起头,再按需微调参数。
- 要溯源就打开时间码:文字里写 {time} / {frame} / {serial},导出时每帧自动展开成当前时间或编号。
- 用时间轴拖到任意时刻预览;需要只在前半段出现,就用「整段 / 从当前时间 / 到当前时间」三个快捷键设时间段。
- 选导出帧率与画质,点「生成视频」,完成后点「导出文件」保存;中途可以取消。
常见问题
- 加了水印就能防止别人盗用吗?
- 不能。可见水印只能提高搬运成本:录屏、裁剪掉水印区域、重新编码都能把它去掉。它的真实价值在于两点 —— 平铺 + 动态漂移会让「擦干净」变得很麻烦;内容里嵌的编号与时间码能在泄漏后帮你判断是哪一份文件流出去的。想要更强的手段只能上隐写 / 指纹水印,而那类方案在视频经过有损压缩后同样很脆弱,本工具不做。
- 动态水印会不会让导出变慢?
- 影响很小。漂移位置是「时间的纯函数」,每帧只是多算一次坐标,绘制量与固定水印一样。真正影响耗时的是视频帧数与分辨率。
- 为什么文字水印的字号要按像素填,不像图片那样按百分比?
- 视频分辨率是固定的(比如 1920×1080),字号按原视频像素写能精确对上你的素材:填 48 就是每帧画 48 像素高的字,预览与导出完全一致,也不会因为分辨率不同而大小失控。
- 我的浏览器提示不支持,怎么办?
- 导出依赖 WebCodecs 的 VideoEncoder 逐帧编码:Chrome / Edge 107+ 与 Safari 16.4+ 都支持,Firefox 需要 130 以上。建议换 Chrome 或 Edge 打开再导出;页面上的水印编辑与预览本身不受影响。
- 视频会上传吗?
- 不会。解码用 <video>、水印画在 canvas 上、编码用 WebCodecs、封装用本工具自己实现的 mp4 写入器,全程在本机用本地引擎完成,数据不出设备。