How to stabilize drone footage locally with no upload
- Step 1Keep the footage on your machine — open the tool — The whole point for aerial work is privacy: the stabilizer runs in-browser, no upload. It's a Pro-tier tool; Free users get an upgrade prompt. Pro covers files up to 10 GB.
- Step 2Drop the drone clip — DJI and other drone
.MP4/.MOVfiles work directly. The file loads into FFmpeg.wasm in the tab — no server ever sees it. - Step 3Set Zoom for the wide aerial frame — Zoom (0–15, default 5). Aerial frames are wide, so a moderate Zoom hides edge wedges while keeping the landscape. For mild wind shimmer try 4–6; for a wobbly gusty hover try 7–10.
- Step 4Set Smoothing for cinematic vs lively — Smoothing (0–30, default 15). High (20–28) gives the locked, cinematic aerial glide; moderate (14–18) keeps intentional reveals and orbits feeling deliberate rather than rubber-banding.
- Step 5Run both passes — Detect pass measures motion, transform pass produces the file. Aerial clips are often 4K and long, so expect real processing time — both passes read the whole file in FFmpeg.wasm.
- Step 6Download the stabilised MP4 — Output is H.264 MP4 with original audio copied. Inspect sky/water-heavy sections — tracking is weaker there. For a different deliverable codec, transcode the result afterward.
Settings by aerial shake type
Aerial frames are wide, so you have crop room. Starting points by what caused the shake.
| Aerial issue | Zoom | Smoothing | Notes |
|---|---|---|---|
| Mild wind shimmer on hover | 4 | 16 | Subtle; keep the wide landscape |
| Prop vibration micro-jitter | 5 | 18 | High-frequency; moderate crop is enough |
| Gusty wobble / slow roll | 8 | 22 | Bigger motion; more crop + averaging |
| Cinematic locked glide | 7 | 26 | Tripod-in-the-sky look; watch reveals |
Where vidstab struggles with aerial footage
Feature-based tracking depends on visible detail. Aerial scenes vary a lot.
| Scene content | Tracking quality | Why |
|---|---|---|
| City / terrain / buildings | Strong | Lots of trackable features |
| Coastline with land in frame | Good | Land edge gives features |
| Open calm water | Weak | Few features to lock onto |
| Clear sky / fog only | Very weak | Almost nothing to track |
Fixed pipeline + tier
Not adjustable. Output is always re-encoded MP4. Pro-tier tool.
| Item | Value |
|---|---|
| Detect params | stepsize=6 · shakiness=8 · accuracy=9 (fixed) |
| Output | H.264 MP4 (libx264, preset medium, CRF 20) |
| Audio | stream-copied unchanged |
| Privacy | Local only — no upload |
| Min tier / size | Pro · 10 GB (100 GB Pro+Media) |
Cookbook
Aerial recipes. Lean on the wide frame for crop room; watch out for featureless sky/water sections.
Wind shimmer on a hover shot
A gimbal-stabilised hover that still micro-shimmers in wind. Light settings clean it up without sacrificing the wide landscape.
Zoom: 4 Smoothing: 16 pass 1 vidstabdetect -> motion.trf pass 2 vidstabtransform(zoom=4, smoothing=16) + unsharp -> out.mp4 Result: shimmer gone, full landscape kept
Gusty wobble on a reveal
A rising reveal that wobbled in a gust. Add Zoom for crop room and Smoothing to lock the path — but not so high the reveal stops feeling intentional.
Zoom: 8 Smoothing: 20 Result: steady reveal that still 'rises' deliberately If the rise rubber-bands: drop Smoothing to ~17
Cinematic locked glide over terrain
Terrain shots track well (lots of features). Push Smoothing high for that drone-on-rails cinematic look.
Zoom: 7 Smoothing: 26 Best over: cities, mountains, forests — feature-rich scenes Avoid this high over open water/sky (tracking too weak)
Keep it private (the whole point)
For embargoed survey or real-estate footage, the workflow is simply: never upload. Stabilise locally and the file stays on your disk.
Drop clip -> FFmpeg.wasm in the tab -> download MP4 No server request for the media is ever made. Contrast: cloud stabilisers require uploading the footage.
Stabilise, then deliver as H.265
Drone deliverables are often HEVC for size. Stabilise to MP4 first (the tool always outputs H.264), then re-encode to H.265 as a second step.
Step 1 stabilizer -> steady.mp4 (H.264)
Step 2 [H.265 encoder](/video-tools/h265-encoder)
-> steady_hevc.mp4 (smaller, HEVC)
Why two steps: stabilizer output is always H.264Edge cases and what actually happens
Open water or clear sky dominates the frame
Reduced effectvidstab tracks visual features. Aerial shots over calm water, clear sky, or fog give it almost nothing to lock onto, so stabilisation is weak on those sections. This is inherent to feature-based tracking — sections with land, terrain, or structures in frame stabilise far better.
Rolling-shutter wobble in fast manoeuvres
Not fixableFast drone yaws/dives can produce rolling-shutter skew (a per-line distortion inside each frame). vidstab corrects whole-frame motion only, so it won't remove Jello. Fly smoother or use a global-shutter payload to avoid it.
Detect pass fails (vidstab missing)
errorIf the FFmpeg.wasm build lacks vidstab, the detect pass exits non-zero with Stabiliser detect pass failed (vidstab may not be present in this build). Retry; if it persists the build can't stabilise. Your drone file isn't the problem.
Over-crop loses the landscape context
By designZoom crops into the frame to hide edge wedges. Push it too far and you lose the sweeping wide context that makes aerial footage work. Use the minimum Zoom that hides the wedges — aerial frames are wide, so you usually don't need much.
Intentional orbits/reveals rubber-band
ExpectedHigh Smoothing averages the path so deliberate orbits and reveals lag then catch up. Lower Smoothing so the smoothed path follows your real flight path. There's no control to exempt intentional camera moves.
HDR / HEVC drone clip
Re-encodedMany drones record HEVC and HLG/HDR. The stabilizer decodes and re-encodes to H.264 SDR MP4, so HDR metadata isn't preserved. Re-encode the stabilised result to HEVC with the H.265 encoder if you need it.
Long continuous aerial pass is slow
ExpectedTwo full passes over a long 4K aerial clip plus an H.264 encode is heavy in FFmpeg.wasm. No duration cap, but expect a wait. Trim to the usable section first with the lossless trimmer so you don't process footage you'll cut.
Output is MP4, not the original container
Re-encodedWhatever you drop in, output is H.264 MP4 because the transform pass re-encodes. For a different container/codec deliverable, follow with the video transcoder.
Free-tier user can't run it
rejectedThe stabilizer requires Pro (minTier: pro). Free users get an upgrade prompt. Pro's 10 GB ceiling handles most single aerial clips; Pro+Media raises it to 100 GB.
Frequently asked questions
Does my drone footage get uploaded?
No. It's processed entirely in your browser via FFmpeg.wasm. No upload, no server. That's the key reason to stabilise embargoed survey, real-estate, or unreleased aerial footage here rather than on a cloud service.
My drone already has a gimbal — why is the footage still shaky?
Gimbals cancel most motion but not residual wind shimmer, prop-induced micro-vibration, or a slow roll on gusty hovers — especially on lighter drones. vidstab smooths that residual motion the gimbal leaves behind.
Why is stabilisation weak over water or sky?
vidstab tracks visual features, and flat water, clear sky, or fog give it almost nothing to lock onto. Sections with land, terrain, or structures in frame stabilise much better. It's a limitation of feature-based tracking, not a setting.
Will it fix rolling-shutter wobble from a fast dive?
No. Rolling shutter is intra-frame skew from the sensor scanning during fast motion. vidstab corrects whole-frame movement, so the wobble survives. Fly smoother or use a global-shutter payload to avoid it.
How much Zoom do aerial shots need?
Usually not much — aerial frames are wide, so a Zoom of 4–8 hides edge wedges while keeping the landscape. Use the minimum that removes the wedges so you don't sacrifice the sweeping context.
Can I keep the cinematic feel without over-stabilising?
Yes — for feature-rich terrain, high Smoothing (24–28) gives a drone-on-rails glide. For reveals and orbits, keep it moderate (16–20) so intentional moves don't rubber-band.
What about HDR/HEVC drone clips?
They're decoded and re-encoded to H.264 SDR MP4, so HDR metadata isn't preserved. If you need an HEVC deliverable, run the H.265 encoder on the stabilised result.
What's the output format?
Always H.264 MP4 (libx264, preset medium, CRF 20) with audio copied. Convert to another codec/container with a sibling tool afterward.
Is there a length limit on aerial clips?
No minutes cap — only file size. Pro allows 10 GB per file, Pro+Media 100 GB. A long continuous pass is fine if it's under the byte ceiling; trim first to save processing time.
Why is it slow on my 4K aerial clip?
Two full passes plus an H.264 encode over high-res footage is genuinely heavy in FFmpeg.wasm. There's no cap, just compute. Trim to the section you need first to cut the work.
Does vidstab correct roll, or only horizontal/vertical drift?
Both. vidstab corrects rotation as well as translation, so a creeping aerial roll on a gusty hover is treated, not just side-to-side or up-down drift.
Does it work on Free tier?
No, it's Pro-only. Free users see an upgrade prompt. Pro's 10 GB per-file limit handles most aerial clips.
Privacy first
Every JAD Video tool runs entirely in your browser via WebCodecs and FFmpeg (WebAssembly). Your video files never leave your device — verified by zero outbound network requests during processing.