浏览器与处理能力:什么样的环境跑得动本地转码
同样的工具、同样的文件,换台电脑速度差三倍甚至跑不动——本地转码的性能天花板由浏览器和硬件共同决定。知道边界在哪,大任务才知道怎么安排。
引擎两层:wasm 保底,WebCodecs 提速
本站的转码引擎有两层:WebAssembly 层(ffmpeg.wasm)是保底——任何能跑现代浏览器的设备都能用,兼容性最好但速度吃 CPU 单核性能;WebCodecs 层是加速通道——调用浏览器内置的硬件编码器,压缩、缩放、剪切等工具在支持的浏览器上走这条路,速度可达数倍。
WebCodecs 的可用条件:较新的 Chromium 系浏览器(Chrome/Edge)且硬件支持 H.264 硬编码。不支持时工具自动回退 wasm 层——功能一样能完成,只是速度慢一些。判断当前走哪条路无需配置,工具自己探测。
多线程与单线程:COOP/COEP 的作用
wasm 引擎自身也有两档:多线程核心(利用多核)和单线程核心。多线程需要浏览器开启跨域隔离(COOP/COEP 响应头),现代桌面浏览器默认支持;不支持隔离的环境自动降级单线程——速度慢但结果完全一致。这就是"同一个文件同事那边压得快"的常见原因之一。
内存是另一条隐形的边界:浏览器给单个标签页的内存有限,几十分钟的 4K 素材是内存大户。大文件跑不动不是性能不够,是内存不够——对策是分段处理再合并。
环境自查与任务安排
快速自查三件事:浏览器是否为最新版(旧版内核缺 WebCodecs 与跨域隔离);是否有硬件加速可用(系统设置里确认显卡驱动正常);标签页是否被浏览器休眠机制挂起(长时间后台的标签页会被冻结,回来继续处理即可,进度不丢)。
任务安排的口径:小任务(几十 MB 内)任何现代环境都流畅;中等任务(几百 MB)桌面浏览器 + Chrome/Edge 体验最佳;大任务(GB 级长视频)分段处理,或拆成多次会话完成。移动端浏览器适合轻量图片与短音频,长视频转码建议回到桌面。