How the Video Text Overlay Tool Works
AnyTool burns text onto video entirely in the browser using a self-hosted single-threaded ffmpeg.wasm engine — the core (ffmpeg-core.js + the 32 MB wasm) is bundled from npm and served as a same-origin asset, so nothing is fetched from a CDN. Rather than relying on a font inside wasm (drawtext needs an embedded font file), the text is rendered to a transparent PNG on an HTML <canvas> using any installed web font, color, outline, and box background, and that PNG is composited onto the clip with ffmpeg's overlay filter, then re-encoded as H.264 video with AAC audio in an MP4. An optional time window limits when the overlay appears via enable='between(t,a,b)'. Single-threaded is deliberate: the multi-threaded core needs SharedArrayBuffer + cross-origin isolation (COOP/COEP), which would block cross-origin ad iframes, so it is avoided.
- Runs client-side — the video is never uploaded
- Self-hosted ffmpeg core (bundled) — no CDN
- Text rendered to a transparent canvas PNG — any web font/color/outline/box
- Composited with the ffmpeg overlay filter (no font needed in wasm)
- Optional time window via enable='between(t,a,b)'; H.264 + AAC MP4
- Single-threaded (keeps ads working); no backend, no cap
