How to stabilize GoPro footage on Mac (Hero 8 to 13)
Every GoPro from Hero 8 onward records gyroscope and accelerometer telemetry alongside the video. That's the data you need to stabilize footage in post on a Mac, with finer control than HyperSmooth and zero quality loss compared to in-camera EIS. This guide walks through the full workflow — from dropping the file in to a finished clip — using Unshake on macOS.
What you need
- A Mac running macOS 14 or later (Apple Silicon recommended for AI features)
- An original GoPro .mp4 from Hero 8, 9, 10, 11, 12 or 13. Hero 7 and earlier don't embed full gyro telemetry.
- Unshake from the Mac App Store (or any other gyro-aware tool — Gyroflow works too)
Important: the file must be the original from your SD card. If you re-encoded with QuickTime, ffmpeg without preserving the GPMF stream, or any non-gyro-aware editor, the gyro data is gone and stabilization won't work. Always work from a copy of the original.
Step 1 — Drop the file
Drag your .mp4 into Unshake
Open Unshake. Drag the original GoPro .mp4 anywhere on the window. Unshake reads the embedded GPMF stream and auto-detects the camera model (e.g. HERO13 Black, HERO11 Black) and lens preset.
You'll see a real-time GPU preview within a second or two. The first frame already shows what stabilization will look like at default sigma 0.5.
Step 2 — Verify the lens preset
Wide / Linear / SuperView / 8:7 / 4:3
Auto-detect is reliable on Hero 10+ but worth verifying on Hero 8/9. Look at the recording mode metadata (in GoPro Player or Quik) and confirm the lens preset matches.
Wrong lens preset = visible distortion at the edges. If the auto-detected preset looks wrong on the preview (curves where there should be straight lines), pick a different one from the dropdown.
Step 3 — Tune Sigma
The single most important setting
Sigma controls how aggressively the camera path gets smoothed. Three useful presets:
- Sigma 0.3 — Reactive. Preserves intentional motion (pans, tilts). Best for action sports, FPV racing, anything where you want the viewer to feel speed.
- Sigma 0.5 — Balanced. The default. Good for handheld vlogs, helmet cam, hiking, biking. Most footage works at 0.5.
- Sigma 0.7+ — Stable. Heavy smoothing. Use for slow-mo, cinematic landscapes, anything where you want a "gimbal" feel. Crops more of the frame.
Drag the slider while watching the preview. The crop area updates in real time so you can see how much frame you're losing at higher sigma values.
Step 4 — Horizon lock (FPV / sports)
Keep the horizon level through rolls and jumps
For helmet cam, FPV, skiing, mountain biking — anything where the camera tilts with your body — enable Horizon Lock. The accelerometer data tells the stabilizer where gravity is, and it counter-rotates each frame to keep the horizon flat.
Strength is adjustable. 100% locks completely (cinematic). 50% lets some motion through (organic feel). 0% disables it (default for racing where you want to feel the rolls).
Step 5 — AI motion blur (optional, requires Apple Silicon)
Cinematic 24p look on stabilized footage
Stabilized footage tends to look "too clean" — the natural motion blur from camera shake gets removed along with the shake. AI motion blur synthesizes realistic blur back into the moving regions of each frame, using the Apple Neural Engine on M1+.
1× = subtle, 4× = noticeable cinematic look, 10× = extreme. For most cuts, 2× to 4× is the sweet spot. Requires macOS 15.4+ on Apple Silicon.
Step 6 — Color grading (optional)
If you recorded in flat / GP-Log / D-Log M
Unshake auto-detects the color profile and applies the matching LUT (D-Log M to Rec.709, GP-Log to Rec.709). If you want a custom grade, drop a .cube LUT file in the LUT panel.
If you recorded in standard color, skip this step.
Step 7 — Export
ProRes 422, HEVC, or H.264
- ProRes 422 (.mov) — pick this if you're sending to Final Cut, DaVinci, Premiere. Larger files but no quality loss.
- HEVC (.mp4) — pick this for delivery (YouTube, Instagram, social). Smaller files, modern codec, supported everywhere on Apple devices.
- H.264 (.mp4) — pick this only if you need maximum compatibility with old devices.
Pick the resolution and frame rate. Click Export. Done.
Batch workflow — multiple clips at once
If you came back from a session with 30 clips, don't process them one by one. Drop all of them in. Unshake creates a queue. Set per-clip parameters (or use "apply to all" for a consistent look across the session), then click Export Queue. Metal GPU acceleration parallelizes the export — typically 30 clips finish in 10-15 minutes on an M3 Mac.
Common pitfalls
- Stabilization looks jittery. Check the lens preset. Wrong preset = distortion that the gyro can't compensate for.
- Camera not detected. File was probably re-encoded. Find the original from your SD card.
- Horizon drifts on long clips. Lower the horizon lock strength to 70-80%. 100% can drift slightly over very long clips because of accelerometer integration error.
- Output is too cropped. Lower sigma. 0.5 → 0.3 makes a big visual difference and keeps more of the frame.
How is this different from HyperSmooth?
HyperSmooth runs in the camera and bakes the stabilization into the recording. Post-stab on Mac runs after the fact and gives you sigma control, recoverable framing, and the ability to add AI motion blur. See the full comparison here for when each approach wins.
Try Unshake on the Mac App Store — Mac-native gyro stabilizer for GoPro Hero 8-13, DJI, Insta360 and FPV. AI motion blur, batch queue, real-time preview.
Related: HyperSmooth vs gyro post-stab · The cinematic FPV workflow · GoPro Stabilization landing