起因很土。我经常要把录屏发到 Discord 或者塞进邮件,Discord 免费版限 10MB,邮箱附件常见 25MB,而一段两三分钟的 1080p 录屏动不动几十兆。网上的在线压缩工具能用,但每次都得先把视频传到人家服务器,压完再下回来。慢是一回事,更别扭的是,我不太想把公司内部的录屏传到一个不知道是谁的服务器上。 于是我做了 videocompress.dev ,压缩全程跑在你自己浏览器里,视频不上传,一个字节都不出你的电脑。 它是怎么跑起来的 主力是 WebCodecs,浏览器原生的编解码接口,能直接调硬件编码器,速度接近实时。碰上不支持的浏览器,退回到 ffmpeg.wasm(把 FFmpeg 编译成 WebAssembly 在本地跑)。两条路都不碰服务器,我这边的成本基本只有一个静态托管。压到指定大小还是保画质都行,Discord 、邮件、WhatsApp 这些场景我做了预设。 一个让我排查了小半天的 bug 本以为这就完事了。直到我拿一个 46 分钟的录屏去测,压出来是个"没有画面、只有声音"的文件。最诡异的是:全程不报错,程序自认为成功了。 我在...