How the Video to WebP Tool Works
AnyTool turns video into animated WebP 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. A -vf chain sets the output frame rate with fps and resizes with scale (lanczos), then -c:v libwebp encodes the frames (the libwebp_anim muxer is selected automatically when there is more than one frame), with -quality, -compression_level, and -loop controlling visual quality, effort, and looping. Animated WebP is typically smaller than a GIF at equal quality because it supports lossy frames and a full color range. 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
- -vf fps + scale (lanczos); -c:v libwebp (libwebp_anim auto for multi-frame)
- -quality / -compression_level / -loop controls
- Animated WebP — usually smaller than GIF at equal quality
- Single-threaded (keeps ads working); no backend, no cap
