AntiUpload// browser-resident file tools
ENESFRPTDE
SESSION · 
← Back to home

FFmpeg deshake · 3 strengths · No watermark · No size cap

Stabilize Video

Reduce camera shake in handheld footage — three strength presets, in-browser FFmpeg deshake filter.

100% freeNo file size limitNo watermarkNo sign-up
  1. 1Pick file
  2. 2Configure
  3. 3Download
Deshake filter compensates for per-frame camera motion. Slightly less effective than desktop libvidstab but runs in your browser without a 20+ MB additional download.
  • Files never leave your browser — processed entirely on your device
  • No upload, no queue, no waiting for a worker to free up
  • No file-size cap from us — limit is your device's RAM

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

  1. 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.
  2. 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.
  3. 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.
  4. 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.

When to use Stabilize Video

Smoothing handheld phone footage before sharing
Phone gimbals are great but not everyone has one. Stabilize after the fact — moderate strength fixes typical walking-while-filming jitter without the artifacts of strong stabilization.
Fixing drone footage shot in wind
Even gimbal-mounted drones get jittery in 15+ knot wind. Strong strength compensates for the bigger motion swings. The mirror-edge fill keeps the framing tight.
Cleaning up GoPro / body-cam / action-cam clips
Action cameras are unstabilized by design — they record raw. Strong-strength stabilization restores watchability for the most chaotic shots without the cropping that hardware EIS (electronic image stabilization) imposes.
Stabilizing user-generated content for client videos
Agencies and creators receiving phone footage from clients can run it through the stabilizer before editing to give the final piece a more professional feel.
Stabilizing slow-motion clips that exposed micro-jitter
Slowing footage down with our Video Speed tool exposes shake that was invisible at normal playback. Stabilize after slowing for smooth slow-mo without the buy-a-gimbal step.

Frequently asked questions

How to stabilize a shaky phone video for free online?
Drop your video into AntiUpload Video Stabilizer, pick moderate strength, click Stabilize. No watermark, no signup, no size cap. Compare to Kapwing (paywalls stabilization), Adobe Express (paywall after trial), Veed ($25/mo). The tool runs in your browser so we have no server cost to pass on.
How is this different from DaVinci Resolve's stabilizer?
DaVinci uses `libvidstab` (two-pass: analyse whole clip, then apply global motion model). It's more sophisticated and produces smoother output, especially on heavily-shaken source. We use `deshake` (single-pass, per-frame motion estimation). Deshake is ~80% as effective for typical use cases, runs in the browser without a desktop install, and doesn't add 20+ MB to the wasm core. For broadcast / cinematic work, use DaVinci. For social-media polish, deshake is fine.
Will stabilization crop my video?
No — output is the same resolution as the input. We use `edge=mirror` which fills the gaps created by motion compensation by mirroring the adjacent edge content. This is usually invisible at playback distance. The alternative (cropping) would lose information and visibly zoom into the frame.
Why does my video look slightly weird at the edges?
That's the mirror-edge fill kicking in. When deshake pushes the frame heavily in one direction, the gap at the opposite edge is filled by mirroring the nearest content. On heavily-shaken source you may see this as a subtle ripple along the edges. Lower the strength to reduce visibility, or accept it as the trade-off vs cropping.
How long does stabilizing a 5-minute clip take?
On a WebCodecs browser (Chrome / Safari 17+) and a modern laptop: ~2-3 minutes for HD. On Firefox or older browsers (no WebCodecs encode): ~15-30 minutes because software libx264 in WASM is slow. The motion analysis itself is fast; the re-encode is the bottleneck.
Can I stabilize a 4K video?
Yes, but processing time grows with resolution (~4× the time of 1080p). For very long 4K clips consider downscaling to 1080p first with our Video Compressor — most viewers won't notice the resolution drop but you save significant processing time.
Does stabilization help with rolling-shutter wobble (jello effect)?
Slightly. Deshake corrects whole-frame motion, but rolling shutter is per-row distortion — different parts of the same frame are warped differently. There's no good in-browser fix for rolling shutter yet; the best mitigation is filming with a global-shutter camera or stabilising mechanically (gimbal) on the source side.

Related tools