Architecture & Approach
The core problem was converting an arbitrary Bézier speed curve into accurate frame-timestamp remapping. A Newton-Raphson solver handles the curve math, and since FFmpeg can't natively apply a continuously varying speed function, each timeline region is split into 50–100 constant-speed segments that approximate the smooth curve before being stitched together with FFmpeg.wasm. The editor has an interactive timeline with draggable section dividers, entirely in-browser via Canvas.
Key Result
100% client-side rendering — footage never leaves the browser
Tech Stack
React
Zustand
Canvas
FFmpeg.wasm
Bézier Curves