Gyroflow: Stabilize Video with Gyroscope Data

Gyroflow is an open-source application that stabilizes video using gyroscope (and optionally accelerometer) motion data. Modern cameras like GoPro, Sony, and Insta360 record this data internally; Gyroflow uses it to produce precise stabilization. It can also ingest external gyro data, for example from Betaflight flight controller blackboxes.

The project is hosted on GitHub at https://github.com/gyroflow/gyroflow. It's written in Rust with a QML UI, and is licensed under GPLv3 with an additional permission for linking against the closed-source mdk-sdk.

Key Features

  • Real-time preview with parameter adjustments – all calculations run live.
  • GPU processing and rendering – algorithms are fully multi-threaded.
  • Rolling shutter correction – compensates for CMOS sensor distortion.
  • Video editor plugins – supports Adobe Premiere/Ae, DaVinci Resolve, Final Cut Pro, and more. These plugins let you apply stabilization directly in your editor without transcoding.
  • Sony metadata support – reads recording params, automatic lens, IBIS, OIS, EIS. You can have IBIS enabled in-camera and still apply Gyroflow on top.
  • GoPro Hypersmooth support – works with already-stabilized videos from Hero 8 and up.
  • 10-bit video support – renders up to 16-bit 4:4:4:4 for regular codecs and 32-bit float for OpenEXR, working directly on YUV data.
  • Customizable lens correction – adjust distortion correction strength.
  • Render queue – batch process multiple clips.
  • Keyframes – animate stabilization parameters over time.
  • Adaptive zoom – dynamic cropping to avoid black borders.
  • Underwater footage correction – compensates for underwater distortion.
  • Cross-platform – Windows, Linux, macOS, Android, iOS.
  • Multiple UI languages – 20+ translations available via Crowdin.
  • Lens profile database – built-in profiles for GoPro Hero 6-13, Sony, DJI, Insta360, RunCam, and more. Automatic updates.

Supported Gyro Sources

Gyroflow supports an extensive list of cameras and loggers:

  • GoPro (Hero 5 and later)
  • Sony (a1, a7c, a7r V, a7 IV, a7s III, a9 II, a9 III, FX3, FX6, FX9, RX0 II, RX100 VII, ZV1, ZV-E10, ZV-E10 II, ZV-E1, a6700)
  • Insta360 (OneR, OneRS, SMO 4k, Go, GO2, GO3, GO3S, GOUltra, Caddx Peanut, Ace, Ace Pro)
  • DJI (Avata, Avata 2, O3/O4 Air Unit, Action 2/4/5/6/Nano, Neo, Neo2)
  • Blackmagic RAW (*.braw)
  • RED RAW (V-Raptor, KOMODO) (*.r3d)
  • Canon (C50, C80, C400, R6 Mk3, R5 Mk2)
  • Betaflight blackbox (*.bfl, *.bbl, *.csv)
  • ArduPilot logs (*.bin, *.log)
  • iOS/Android apps – Sensor Logger, G-Field Recorder, Gyro, and more.
  • Custom loggers – flowshutter, esp-gyrologger.

If your camera isn't listed, you can mount an external device (e.g., a phone) that records gyro data.

Technical Architecture

The core engine is a separate Rust library with no external dependencies (no Qt, no ffmpeg, no OpenCV). The main application uses Qt for UI, ffmpeg for decoding/encoding, OpenCV only for lens calibration and optical flow, and mdk-sdk for media playback. GPU compute is done via OpenCL or wgpu, with a highly parallelized CPU fallback. The binary links against mdk-sdk, which is closed-source but allowed under the GPLv3 exception.

Installation

  • Windows: Microsoft Store or download Gyroflow-windows64.zip from Releases. Requires VC++ redist if missing.
  • macOS: App Store or download Gyroflow-mac-universal.dmg. Also available via Homebrew: brew install gyroflow.
  • Linux: Download Gyroflow-linux64.tar.gz and run ./Gyroflow. Requires glibc 2.28+ and graphics drivers. Example dependencies for NVIDIA: nvidia-opencl-icd nvidia-vaapi-driver nvidia-vdpau-driver nvidia-egl-icd nvidia-vulkan-icd libnvcuvid1 libnvidia-encode1.
  • Android: Google Play.
  • iOS: App Store.
  • Nightly builds: https://gyroflow.xyz/devbuild/

Building from Source

# Install Rust via rustup
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Install Just
cargo install --force just

# Clone and build
git clone https://github.com/gyroflow/gyroflow.git
cd gyroflow
just install-deps
just run

For macOS and Linux, the commands are the same. Windows requires Visual Studio C++ build tools and the English language pack.

Why It Matters for Developers

Gyroflow fills a gap in the open-source video tooling ecosystem. Most consumer stabilization is proprietary (e.g., GoPro's Hypersmooth, Sony's IBIS). Gyroflow gives developers and videographers fine-grained control over stabilization parameters, rolling shutter correction, and lens distortion. Its plugin architecture allows integration into existing video editing pipelines without re-encoding. For drone FPV enthusiasts, it's the de facto standard for stabilizing Betaflight blackbox footage. The Rust core is a solid example of performant, dependency-light media processing.

Editor's Take

Honestly, I've been using Gyroflow for my FPV drone footage for over a year. It's the only tool that reliably handles Betaflight blackbox data with sub-degree accuracy. The GPU acceleration is a lifesaver – I can stabilize 4K 120fps clips in near real-time on a laptop with an RTX 3060. My main gripe is that the plugin integration for DaVinci Resolve still requires manual setup, but the OpenFX plugin works well once configured. I'd love to see the core library published on crates.io for embedding in other Rust projects. If you're doing any action camera or drone videography, Gyroflow is a must-have.