How the Video Resizer Works
AnyTool resizes 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. You choose a target size by resolution preset, percentage, or a custom W×H with an optional aspect lock, and pick a fit mode: fit letterboxes with scale + pad, fill (cover) uses scale + crop, and stretch scales directly. Dimensions are snapped to even integers so yuv420p encoding stays valid. The clip is written to ffmpeg's virtual filesystem (MEMFS), processed with the scale filter, and read back as a blob — a real H.264 MP4 (-pix_fmt yuv420p, +faststart, AAC audio) or a VP8 WebM. Single-threaded is deliberate: the multi-threaded core needs SharedArrayBuffer + cross-origin isolation (COOP/COEP), which would block cross-origin ad iframes.
- Runs client-side — the video is never uploaded
- Self-hosted ffmpeg core (bundled) — no CDN
- Presets, percentage, or custom W×H with aspect lock
- Fit (scale+pad), fill (scale+crop), or stretch
- Even-dimension snap for valid yuv420p
- Real H.264 MP4 (+faststart, AAC) or VP8 WebM output
