About Stabilize Video
AntiUpload's Video Stabilizer reduces camera shake in handheld footage — the kind of jitter that's normal in phone recordings, body-cam clips, or drone footage in wind. The tool runs FFmpeg's built-in `deshake` filter, which estimates per-frame motion between consecutive frames and applies an inverse transform to compensate. Three strength presets — subtle (8-pixel search range), moderate (16 px, the default, matches typical walking-pace handheld), and strong (32 px, for running / vehicle / point-of-view action) — let you match the correction intensity to how shaky the source is.
What this isn't: it's not vidstab. The two-pass `libvidstab` filter that DaVinci Resolve and many desktop editors use is significantly more sophisticated — it analyses the entire clip first, then applies a global motion model in a second pass. That filter is `--enable-libvidstab` in FFmpeg builds, which we explicitly don't enable in our WASM core (size cost). Deshake is single-pass and slightly less effective on heavily-shaken footage, but it works in the browser without a 20+ MB additional download. For phone footage where you walked while filming, deshake fixes ~80% of the visible jitter.
The cost is re-encoding the entire video, which is meaningful — deshake has to decode every frame, run the motion analysis, apply the inverse transform, and re-encode. On WebCodecs browsers this is hardware-fast for H.264 sources. On Firefox it falls back to libx264 in WebAssembly, which is 5-20× slower (a 1-minute clip might take 10-15 minutes). The `edge=mirror` parameter is locked on by default — when the deshake transform pushes pixels off the canvas at the edges, mirroring the adjacent content fills the gap (vs blanking, which would show black bars dancing along the edges).
How it works
- Drop your shaky videoAccepts MP4, MOV, WebM, MKV, AVI, M4V, FLV. The tool decodes the entire video, analyses motion frame-by-frame, applies the inverse transform, and re-encodes. Output is always MP4.
- Pick a strength presetSubtle (8 px search) for light jitter — quasi-static shots with a slight hand-tremble. Moderate (16 px, default) for typical handheld walking-pace footage. Strong (32 px) for heavily shaky source — running, vehicle, helmet-cam.
- Click Stabilize videoProcessing is proportional to source length. Hardware encode via WebCodecs (when available) keeps it real-time-ish. Software fallback on Firefox is 5-20× slower. Progress bar shows live frame= updates.
- Download the stabilized resultOutput preserves the source's resolution and aspect ratio. The edges may show subtle mirroring artifacts in the most-compensated frames — usually invisible at playback distance.