爱意满满的作品展示区。
lianghuan

做了个在浏览器里去掉视频烧录字幕的工具,顺手把失败的案例也贴出来了

  •  
  •   lianghuan · 4h 31m ago · 168 views

    一个网页工具,把已经烧进画面里的文字去掉——字幕、水印、日期、角标这类。上传视频,框一下文字区域,它把文字后面的画面重新生成出来,不模糊、也不裁切。

    和常见做法的区别:blur 是把字盖住,crop 是把字切掉,这两个都会毁掉画面。我试的方向是让模型把被文字挡住的像素补回来。

    为什么做

    自己剪片子的时候被这个卡过。找了一圈,市面上的工具要么只能打码,要么要装客户端,要么就是把画面放大、裁掉一条边——竖屏视频一裁就废了。

    技术栈

    Next.js 15 App Router ,部署在 Cloudflare Workers 上(走 OpenNext ) MySQL 走 Hyperdrive ,视频文件放 R2 去文字本身不是我自研的模型,调的是第三方视频擦除接口。我做的是产品化那部分:框选、计费、任务队列、失败退款 成本上,Cloudflare 免费额度目前够跑( 10 万请求/天、Hyperdrive 10 万查询/天),还没花钱。真正烧钱的是擦除接口,按分钟计费。

    踩过的坑

    Next.js 的 redirects() 里写 permanent: true ,返回的是 308 不是 301 。要真 301 得显式写 statusCode: 301 ,翻源码才确认。

    sitemap 的 lastmod 我一开始用 new Date(),动态路由下每次请求都变,等于告诉 Google 全站每秒都在改。Google 一旦判定这字段不可信,会整个忽略它——以后真更新了也通知不到。

    上线第三天看 Cloudflare 日志,发现“访客”全是爬虫:一个 TLM-Audit-Scanner 扫了 2600 多次,HeadlessChrome 1900 多次,Googlebot 只抓了首页和 robots.txt ,20 个内页一个没抓。新域名没外链,就是这样。

    实测数据,包括不好看的

    我不太想只放成功案例,三条测试素材的结果都贴出来,PSNR 对比原片:

    相机移动 + 树叶背景:28.3 dB 行人穿过字幕带:19.8 dB 竖屏 + 规律纹理:20.5 dB 未处理区域的参考上限:37.4 dB 行人穿过那条基本算失败:字没了,但从字幕带上走过去的人会留下淡淡的竖条残影。竖屏那条背景被抹平,比直接打码只好一点点。

    这两组对比图和 100% 放大的截图都在站上的案例页,没修图。

    Remove Text From Video Online — AI Video Text Remover https://videotextremove.com

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2557 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 14:39 · PVG 22:39 · LAX 07:39 · JFK 10:39
    ♥ Do have faith in what you're doing.