How the Frame-Rate Converter Works
AnyTool changes a video's frame rate in the browser with a self-hosted ffmpeg engine (no CDN). For a simple change the fps filter resamples timestamps, dropping or duplicating frames to hit the target rate. For smooth slow-motion the minterpolate filter (motion-compensated interpolation, mci) synthesizes brand-new in-between frames — far higher quality but much slower in single-thread wasm, which the UI makes clear. The stream is re-encoded H.264 + AAC with yuv420p pixels and read back as an MP4 blob. 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 — no CDN
- fps filter resamples timestamps (drop/duplicate frames)
- minterpolate (mci) synthesizes in-between frames — smoother but slower
- H.264 + AAC, yuv420p re-encode
- No backend, no watermark, no size cap
