DevTrendsDeveloper trends
Accent color

Product

纯本地,可自定义的图片/视频添加水印网站

网站为 PWA 兼容,移动端优先设计,对 Chromium 内核的浏览器支持较佳,一般新手机的默认浏览器都是可以正常用的(Chrome/Edge/Via/夸克等)。 对于不懂代码的用户,整体操作逻辑就是: 1. 上传视频/图片(支持批量,只要设备撑得住就能无限上传)。 2. 选择内置模板。 3. 调整一下参数。 4. 预览。 5. 点击生成。 6. 完成后网站发送通知,选择以 zip 格式下载或者多文件格式下载。 不需要理解任何细节。当…

DTSoftware developmentDTWeb appDTAndroidDTWeb

Product images

About

网站为 PWA 兼容,移动端优先设计,对 Chromium 内核的浏览器支持较佳,一般新手机的默认浏览器都是可以正常用的(Chrome/Edge/Via/夸克等)。 对于不懂代码的用户,整体操作逻辑就是: 1. 上传视频/图片(支持批量,只要设备撑得住就能无限上传)。 2. 选择内置模板。 3. 调整一下参数。 4. 预览。 5. 点击生成。 6. 完成后网站发送通知,选择以 zip 格式下载或者多文件格式下载。 不需要理解任何细节。当然目前阶段应用处于小范围测试,我也没有准备多少可以用的内置模板(未来会继续追加),所以现阶段在模板丰富性上可能确实不如已有竞品,但其 本地生成 和 支持视频 的优点已经可以使得这个在测试中的应用脱颖而出。 可能对于其它竞品来说,可以选择模板,可以调整水印位置、颜色,甚至整个动态水印,就已经属于“自己定制水印”的范畴了,但是显然这样是不够 geek 也无法满足特殊用户需求的。 或许你已经注意到了,有一个“使用自定义模板”按钮。 为此,我还准备了一个页面:创作。 ...是的,你可以编写 Typescript 作为模板,直接在浏览器运行,不需要任何额外处理。为了实现这个功能,我引入了 babel + mediabunny (WebCodecs API) + PIXI.js 作为模板/视频/画面生成引擎,在开始页面看到的所有内置模板也均是走这一套路径来实现的(不过将代码用 text-loader 弄在了网站里面)。 对于配置,开发者可以尽情使用 @schema 装饰器这种实验语法而不用担心兼容性,它会自动被转译然后显示为易于使用的配置面板(也就是说,即使水印逻辑很复杂,使用者也不用理解,可以直接使用)。 我提供了一套透明封装的 API,开发者在编写模板时,不需要关心容器、编码、P帧、音轨,甚至不需要关心传过来的是视频还是图片,只需要使用 PIXI.js 将自己想要的水印形式同当前画面一起绘制到 canvas 上,引擎就会自动处理音轨和编码,拼接成视频,最终实现同一套代码可以同时处理图片和视频的效果。 这样一来,无论是 Sora 水印、Gemini 水印、“豆包 AI 生成”还是个人定制的 3D 水印/基于着色器的水印都可以在同一套平台上实现,同时还享受 GPU 加速(ffmpeg.wasm 无法使用 GPU)。 技术选型 UI 使用 Vite + React + MUI + Monaco Editor。 核心引擎使用 babel + Mediabunny (WebCodecs) + PIXI.js + JsZip。支持了多线程(单线程单任务)。 网站托管使用 Vercel Pages,域名是让偶然抢到极品域名的朋友分配的。 未来方向 应用公开以后,陆续收到了来自不少用户的声音,包括一部分用户提到 HEVC 无法正常使用而没有有助于用户理解的提示、模板太少、模板选项不全等。 此外,由于 WebCodecs 是一个非常新的 API,Firefox on Android 并不支持这个新 API,但是网站也没有做不兼容的提示。 未来一段时间,主要还是想集中在 优化 UI/UX 及 添加更多模板 上面。另外还得清理一下 AI 拉出来的一部分内容(如内部毫秒/秒管理被 AI 弄得很混乱,未来打算统一为浮点数毫秒避免精度问题)。 不过目前,我想这个项目的初衷(个人使用)已经达成了。 开源 一经测试完成(并且脱敏),项目就会开源,同时我也会完成类型注释的处理。目前阶段项目代码还“过于原始”而需要一定打磨,因此我想再精修一下然后再上传 GitHub。

Discovery history

  1. 阮一峰周刊·用户投稿

    Apr 9, 2026 · 1 observations

  2. 阮一峰周刊·正刊推荐

    Apr 17, 2026 · 1 observations

Discuss this product