Video tool
Video Stabilizer — Remove Camera Shake
Drop a shaky video. Pick a strength. The deshake filter compensates for handheld jitter and renders a smoother MP4 — all in your browser, never uploaded.
How it works
- 1
Drop a shaky video
MP4, MOV, WebM, MKV, AVI, or M4V — anything FFmpeg can decode. The file stays on your device.
- 2
Pick a strength preset
Subtle (8 px search) for slight handheld jitter, Moderate (16 px, FFmpeg's default) for typical phone footage at walking pace, Strong (32 px) for running, vehicle-mounted, or POV-action footage.
- 3
Stabilize in your browser
We run FFmpeg's deshake filter — single-pass motion compensation that estimates camera motion frame-to-frame and applies an inverse transform to compensate. Edges that move off-screen are filled with mirrored content rather than black bars. Re-encodes to H.264 / AAC.
- 4
Download the smoothed MP4
Output is always MP4 (most universal container). Original audio is preserved at 128 kbps AAC.
Why use Video stabilizer?
Free with no caps. Premiere ($23/mo), Final Cut Pro ($300), DaVinci Resolve Studio ($295), and Veed (subscription) all paywall stabilization. We use FFmpeg's built-in filter, locally on your file.
Private — your video never touches our servers. Matters when the footage is personal, pre-release, or sensitive.
Three sensible strength presets covering the common cases: light handheld jitter, walking-pace shake, and heavy action footage. No 20-knob expert UI to learn.
Keeps your audio. Original audio track is preserved at 128 kbps AAC — no need to re-merge after stabilizing.
Same family of algorithm Premiere's Warp Stabilizer and DaVinci's Stabilization use — frame-to-frame motion estimation with translation/rotation correction. The single-pass deshake variant is faster but less effective on heavy shake than vidstab's two-pass approach (which isn't available in our WASM build).
Common use cases
- Smooth out a handheld phone clip before posting to social media
- Remove jitter from a walking talking-head shot recorded on a phone
- Steady a clip recorded by a mounted camera that's still vibrating slightly
- Improve a screen-pan / b-roll clip captured handheld
- Take some shake out of a running / action POV recording (Strong preset)
- Stabilize a video shot in low light where the camera struggled to lock focus
- Prepare footage for a vlog or YouTube short where camera shake breaks the viewer's attention
About MP4 and MP4
We run FFmpeg's `deshake` filter — built directly into the FFmpeg core, no external library required. deshake is a single-pass motion-compensation filter: each frame is compared against the previous to estimate translation + rotation, and an inverse transform is applied to compensate. The trade-off knob is `rx` / `ry` — the search range in pixels for motion estimation. Wider searches catch larger shakes but cost more CPU (search scales quadratically) and push more of the frame off-screen. Our presets map to: Subtle = 8 px (light jitter), Moderate = 16 px (walking pace, FFmpeg's default), Strong = 32 px (action / vehicle / POV). We pair every preset with `edge=mirror` so the pixels that move off-frame after compensation are filled with mirrored content rather than blanked to black bars — less obtrusive on most footage. Note: deshake is less sophisticated than `vidstabdetect` + `vidstabtransform` (the two-pass `libvidstab` pipeline that Premiere's Warp Stabilizer is loosely modelled on), but `libvidstab` isn't compiled into FFmpeg.wasm's WASM core. Until we ship a custom core, deshake is the best browser-only option. The result is re-encoded to MP4 (H.264 CRF 23 + AAC 128k) — universally playable, reasonable quality, finishes in roughly 2-3× the source duration on a typical laptop.
Frequently asked questions
- Is my video uploaded to a server?
- No. NoCloud Media stabilizes your video entirely in your browser using WebAssembly. Your file never leaves this tab.
- Which strength should I pick?
- Start with Moderate — that's FFmpeg's documented default and works for most phone footage at walking pace. Drop to Subtle if your source is mostly steady with just a hint of handheld jitter (a tripod that's vibrating, or a quasi-static shot). Bump to Strong for running, vehicle-mounted, or action-POV footage where the shake is large enough that 16 px isn't enough search range.
- Why does the output look slightly cropped or have weird edges?
- Stabilization compensates for camera motion by translating each frame in the opposite direction. That necessarily pushes some pixels off-screen — there's no way to invent picture content that wasn't recorded. We fill the missing edges with `edge=mirror` (mirrored content from inside the frame) rather than black bars; on most footage that's less noticeable. The Strong preset moves the most pixels off, so its edge effects are most visible — pick a lower preset if it bothers you.
- Will my audio be preserved?
- Yes. The original audio track is re-encoded to AAC 128 kbps and muxed back into the output MP4. We don't apply any audio processing, just transcoding to a container-compatible codec. If you need audio adjustments (loudness, denoise, gain), run the output through our Video volume changer afterwards.
- Why isn't this as good as Adobe's Warp Stabilizer?
- Two reasons. First, Premiere's Warp Stabilizer uses a more sophisticated multi-pass algorithm with rolling-shutter correction and per-region tracking — equivalent to FFmpeg's `vidstabdetect` + `vidstabtransform` pipeline. Second, that pipeline requires `libvidstab`, which isn't compiled into our WASM build of FFmpeg. We use the simpler `deshake` filter instead, which works on most handheld phone footage but is less effective on heavy shake or rolling-shutter wobble. Building a custom WASM core with `libvidstab` is on our long-term roadmap.
- What output format do I get?
- Always MP4 (H.264 video + AAC audio). MP4 is the universally-playable container — every video player, social platform, and editing tool accepts it. We pick this regardless of input container so the user gets one consistent output.
- What's the maximum file size I can stabilize?
- It depends on your browser's available memory. Files up to 500MB stabilize smoothly on most devices; files up to ~2GB may work on desktop browsers with enough RAM. Stabilization re-encodes the picture, so processing scales with duration and resolution — a 4K source takes ~4× the time of a 1080p source of the same length.
- Which browsers are supported?
- Chrome, Edge, Firefox, and Safari 15+. We require WebAssembly and SharedArrayBuffer, both standard in modern browsers.
Related tools
Video compressor
Shrink video file size with a quality slider.
Video converter
Convert between MP4, MOV, WebM, MKV, and AVI.
Video trimmer
Cut the start and end of any video, or auto-remove silences.
Video volume changer
Adjust a video's audio — gain, LUFS target, or background-noise removal — without re-encoding the picture.