Video Stabilization Using Gyroscope Data
Gyroflow: A Deep Dive into Gyroscope-Based Video Stabilization
Video stabilization has grown from a nicety into a robust, essential tool for capturing smooth, cinematic footage from action cameras and drones. Gyroflow stands out in this field by marrying motion data from gyroscopes (and optionally accelerometers) with advanced software that stabilizes video with remarkable precision. The project’s open-source nature invites collaboration, experimentation, and customization, while its wide range of features makes it a compelling choice for filmmakers, hobbyists, and professionals alike.

In this article, we’ll explore what Gyroflow is, what it can do, and how you can get it running on your setup. We’ll walk through the core features, supported gyro sources, installation across platforms, and how to participate in its ongoing development. Along the way, you’ll see visual examples that illustrate the power and quality Gyroflow can deliver.
What Gyroflow Does
Gyroflow is an application designed to stabilize video by using motion data captured by a camera’s gyroscope, and optionally an accelerometer. Modern cameras often log this data internally (for example, GoPro, Sony, Insta360, and other brands). Gyroflow uses that gyro data to compute precise corrections that align frames, dramatically reducing shake and jitter while preserving the natural motion of the scene.
Key ideas behind Gyroflow include:
- Real-time preview, parameter adjustments, and all underlying calculations to give you immediate feedback.
- GPU-accelerated processing and rendering with fully multi-threaded algorithms, delivering high performance even for high-resolution and high-frame-rate footage.
- Rolling shutter correction to compensate for sensor readout distortions that occur with fast motion and certain camera designs.
- Compatibility with a wide range of video editor plugins, enabling stabilization to be applied directly within editors like Adobe Premiere, After Effects, DaVinci Resolve, and Final Cut Pro without transcoding.
- Lens and camera metadata awareness, including automatic lens profiling and IBIS/OIS/EIS integration, so you can apply Gyroflow on top of in-camera stabilization without losing lens fidelity.
- Support for stabilized GoPro footage (Hero 8 and newer with Hypersmooth), 10-bit and higher color depths, and even 32-bit floating point data when using formats like OpenEXR.
- A modern, responsive user interface with light and dark themes, adaptive zoom, and an emphasis on maintaining maximum image quality by working with YUV data where possible.
The project also emphasizes a modular architecture and cross-platform compatibility, with a focus on performance, quality, and flexibility.


Core Features at a Glance
- Real-time preview, parameter controls, and full calculation pipeline
- GPU processing with multi-threaded rendering
- Rolling shutter correction
- Video editor plugins for non-destructive stabilization within editors
- Full Sony metadata support (recording params, lens data, IBIS/OIS/EIS integration)
- Supports already stabilized GoPro videos (Hypersmooth-enabled, Hero 8 and up)
- High bit-depth support: 10-bit to 16-bit 4:4:4:4, and 32-bit float for OpenEXR
- Open, customizable lens correction strength
- Render queue and keyframe-based presets
- Visual data charts for gyro, accelerometer, magnetometer, and quaternions (including smoothed quaternions)
- Underwater footage correction
- Modern UI with dark/light themes
- Adaptive zoom with dynamic cropping
- Image sequence support (PNG, OpenEXR, CinemaDNG)
- Telemetry-based foundation and multi-source gyro support
- Arbitrary orientation, gyro low-pass filtering, and per-axis smoothing
- Multiple gyro integration methods for reliable orientation estimation
- Various video orientation smoothing algorithms, horizon leveling, and per-axis smoothness tuning
- Cross-platform: Windows, Linux, macOS, Android, iOS
- Multiple UI languages
- Variable and high-frame-rate video support
- Zero-copy GPU preview rendering
- Core engine available as a standalone library (no Qt, no ffmpeg, no OpenCV) for plugin development
- Automatic lens profile database updates and official profiles for many cameras
- Simple lens calibration workflow
- Additional 3D rotation option for framing vertical videos
Supported Gyro Sources
Gyroflow is designed to be versatile, supporting many gyro data sources out of the box. The project maintains a comprehensive list of compatible cameras, devices, and data formats. Here are the highlights:
- GoPro (HERO 5 and later)
- Sony cameras (a1, a7 series including a7c, a7r V, a7 IV, a7s III, a9 II, a9 III, and many others)
- Insta360 models (OneR, OneRS, SMO 4k family, Go variants, and other Go-series cameras)
- DJI platforms (Avata, Avata 2, O3/O4 series, Action cameras, and more)
- XTRA (Edge, Edge Pro)
- Blackmagic RAW (*.braw)
- RED RAW (KOMODO, V-Raptor) (*.r3d)
- Canon cameras (C50, C80, C400, R6 Mk3, R5 Mk2) with various container formats
- Freefly (Ember)
- Betaflight blackbox (*.bfl, *.bbl, *.csv)
- ArduPilot logs (*.bin, *.log)
- Gyroflow log format (*.gcsv)
- iOS apps: Sensor Logger, G-Field Recorder, Gyro
- Android apps: Sensor Logger, Sensor Record, OpenCamera Sensors, MotionCam Pro
- Runcam CSV formats (Runcam 5 Orange, iFlight GOCam GR, Runcam Thumb, Mobius Maxi 4K)
- Hawkeye Firefly X Lite CSV
- XTU (S2Pro, S3Pro)
- WitMotion (WT901SDCL binary and text)
- Vuze (VuzeXR)
- KanDao (Obisidian Pro, Qoocam EGO)
- CAMM format support for Street View compatibility
If you’re using a camera not explicitly listed, Gyroflow can still handle logging via gyro data. The team encourages reaching out for camera-specific integration and provides documentation to guide gyro logging processes. For cameras without built-in gyro, you can mount an external device (phone, action camera, Betaflight flight controller, or a device like ESP-based loggers) to capture gyro information and synchronize it with your main camera footage.
Information for Cameras Not on the List
- If your camera has built-in gyro, contact the Gyroflow team to consider implementing support for that camera model.
- For cameras without built-in gyro, you can pair the main camera with a second device that records gyro data. This data can be used to stabilize footage when synchronized correctly.
- The documentation covers gyro logging processes and how to merge external gyro data with video for stabilization.
Installation
Gyroflow is designed to be accessible across major operating systems. Below are the general installation pathways and quick-start steps for each platform. The project also maintains nightly builds for the latest development versions.
- Windows
- Options: Microsoft Store or download the Gyroflow-windows64.zip from the Releases page.
- Run Gyroflow.exe after extraction.
- If you encounter VCRUNTIME140.dll or 0xc0000142 errors, install the VC redist.
- macOS
- App Store installation or download Gyroflow-mac-universal.dmg from the Releases page.
- Drag Gyroflow to Applications (or another preferred location).
- Alternative: brew install gyroflow; upgrade via brew when needed.
- Linux
- Download Gyroflow-linux64.tar.gz from Releases; extract and run ./Gyroflow.
- OpenFX/OpenGL/GLX integration is facilitated, with a preferred tar.gz package over AppImage if possible.
- System packages may include libva2, libvdpau1, libasound2, libxkbcommon0, libpulse0, and Vulkan/OpenGL/GL considerations.
- Android
- Available on Google Play
- iOS
- Available on App Store
- Nightly builds
- Latest development version available at gyroflow.xyz/devbuild/
Minimum system requirements:
- Windows 10 64-bit (1809 or later); enable Media Feature Pack for Windows N variants
- macOS 10.15 or later (both Intel and Apple Silicon supported)
- Linux distributions with the tar.gz package (recommended) or AppImage
- Android 6+ and iOS 14+
The project emphasizes a straightforward setup, with a lightweight core library and a user-friendly UI, alongside developer-friendly documentation and build instructions.
Image references and visuals:
- A prominent Gyroflow logo for branding and recognition
- A screenshot showing the UI and workflow
- Comparison visuals to demonstrate the stabilization results
Minimum System Requirements and Help
Beyond the platform-specific notes, Gyroflow relies on driver support and compatible GPU acceleration. The system requirements emphasize:
- Up-to-date graphics drivers
- A capable GPU for GPU-accelerated rendering (where available)
- Sufficient RAM and CPU resources to handle multi-threaded processing and large video files
- Cross-platform support for Windows, macOS, Linux, Android, and iOS
For help and support, the Gyroflow Discord server is the primary community hub where developers and users discuss issues, share results, and collaborate on improvements. Private inquiries can be directed to devteam@gyroflow.xyz.
Test Data and Roadmap
To help users test and validate stabilization, Gyroflow offers a library of sample clips with corresponding gyro data. These test datasets enable you to verify alignment between gyro data and video frames and to compare stabilization results with and without enhancements.
The project maintains an open issues tracker for feature requests, known issues, and ongoing work. This transparency helps contributors understand priorities and plan their involvement. The roadmap is dynamic, shaped by community input, and continuously refined.
Video Editor Plugins
Gyroflow’s ecosystem extends into professional video editing software through dedicated plugins:
- Gyroflow OpenFX plugin (for DaVinci Resolve) and OpenFX-compatible pipelines
- Adobe Premiere and After Effects plugin
- Final Cut Pro plugin (Gyroflow Toolbox)
These plugins enable stabilization directly within your editor of choice, avoiding the need to transcode footage before stabilization. This capability is particularly valuable for producers who want to integrate stabilization into existing workflows without added steps.
Contributing, Translations, and Community
Gyroflow is open-source under the GPLv3 license with an App Store exception that allows distribution through app stores under certain conditions. The license details outline the interplay between the core Gyroflow engine, the mdk-sdk, and distribution channels.
Translations are a significant part of Gyroflow’s global reach, with dozens of languages supported. The project uses Crowdin to manage translations, enabling contributors from around the world to help translate the UI and documentation. Current translations include English, Chinese (Simplified and Traditional), Czech, Danish, Finnish, French, Galician, German, Greek, Indonesian, Italian, Japanese, Korean, Norwegian, Polish, Portuguese Brazilian, Portuguese, Russian, Slovak, Spanish, Turkish, Ukrainian, and more.
Development is primarily conducted in Rust for the core, with QML for the UI. The codebase is designed to be modular, with a core engine that can be used independently of Qt or FFmpeg, offering potential integration with OpenFX and other plugins in the future.
Dev environments commonly use Visual Studio Code with rust-analyzer, and Qt Creator for UI development to gain auto-complete and syntax highlighting. The project emphasizes a live-reload workflow for rapid UI iteration, enabling developers to see UI changes in real time.
Development and Code Structure (High-Level Overview)
Gyroflow’s architecture is crafted to be robust and modular:
- The GUI resides in the src/ui directory, communicating with the core library via a controller bridge (src/controller.rs).
- The core engine lives in src/core and is designed to function without Qt or OpenCV, relying on optional OpenCV for calibration and optical flow tasks.
- GPU processing is implemented in src/core/gpu and a zero-copy GPU path exists under src/qt_gpu with GLSL compute shaders.
- The rendering and video processing pipeline, including FFmpeg-related tasks, live in src/rendering.
- The main entry point is in gyroflow.rs, with a modular structure that keeps directory boundaries clean and logical.
- Cross-platform GPU backends include DirectX, OpenGL, Metal, and Vulkan, managed through Qt RHI and wgpu.
- The project supports both OpenCL and wgpu-based GPU acceleration, with parallel CPU fallbacks where needed.
- The binary’s licensing considerations include linking with the closed-source mdk-sdk under an additional permission.
Dev workflow and build instructions are well-documented, including platform-specific setup for Windows, macOS, Linux, Android, and iOS. The repository includes detailed steps for installation, dependencies, and building pipelines, as well as profiling, debugging, and performance optimization tips.
Building and Getting Started (High-Level)
- Windows: Install dependencies, ensure Visual Studio C++ toolchain English pack, install Just, clone the repo, install dependencies, and run.
- macOS: Install Rust, Just, clone, install dependencies, and run; for first-time runs, deploy once, then run.
- Linux: Install Rust, Just, clone, install dependencies, and run.
- Android: Requires Android SDK and NDK; use Just to install dependencies and deploy to a device.
- iOS: Install dependencies with Just and configure signing profiles, then run on a device.
- Profiling: Use Visual Studio’s Performance Profiler and related steps to profile Gyroflow’s performance.
The build system is designed to be approachable for developers while providing powerful capabilities for end users.
Licensing and Acknowledgments
Gyroflow is distributed under the GPLv3 license with an App Store exception, enabling distribution through app stores under specific terms. The Gyroflow binary links against the closed-source mdk-sdk, and the project provides an additional permission allowing linking with mdk-sdk. The mdk-sdk remains distributed under its own license.
Notable contributors span a broad range of roles, from core Rust implementation and UI design to plugin development and camera-specific integration. Acknowledgments highlight the collaborative nature of the project, including contributions to both core algorithms and broader ecosystem tooling, such as the Gyroflow Toolbox for Final Cut Pro.
Authors and Notable Contributors
- AdrianEddy: Primary author of the Rust implementation, UI, GPU processing, rolling shutter correction, advanced rendering features, and the Adobe plugin integration.
- Elvin Chen: Originator of the Python version and foundational work that enabled the current capabilities.
- Maik Menz: Contributed across multiple areas with fixes and improvements.
- Aphobius: Developer behind the velocity-dampened smoothing algorithm.
- Marc Roeschlin: Author of the adaptive zoom algorithm.
- Ilya Epifanov: Creator of the OpenFX plugin.
- Vladimir Pinchuk: Developer of robust gyro-to-video synchronization, Sony lens/IBIS integration.
- Chris Hocking: Lead for Gyroflow Toolbox (Final Cut Pro Plugin).
- And many others who contributed to translations, testing, and feature refinement.
Acknowledgements and Closing Thoughts
Gyroflow represents a thoughtful blend of motion data usage, cutting-edge GPU processing, and a strong emphasis on open collaboration. Its ability to stabilize footage using gyroscope data, combined with support for an extensive list of gyro sources and camera metadata, makes it a versatile tool for anyone looking to turn shaky footage into smooth, professional-looking video. The integration with popular video editors through plugins extends its reach from standalone stabilization to integrated workflows, reducing friction for content creators.
The project’s ongoing development, community involvement, and transparent roadmap mean that Gyroflow remains a living, evolving platform. Whether you’re a hobbyist stabilizing a home video, a drone operator refining flight footage, or a professional editor aiming for pixel-perfect stabilization, Gyroflow offers a rich set of features and a path to further customization and enhancement.
For those who want to dive in, the project’s GitHub repository, documentation, and community channels provide a welcoming entry into the world of gyro-based stabilization. The combination of robust algorithms, platform versatility, and editor integration promises continued improvements and new capabilities in the months and years to come.
Visuals and Resources
- Logo and branding: Gyroflow logo (resources/logo_black.svg)
- UI and results: Screenshot illustrating the interface and workflow (resources/screenshot.jpg)
- Stabilization comparisons: Visuals showing before/after stabilization (resources/comparison1.gif, resources/comparison2.gif)
If you’re curious to see live demonstrations, you can explore the trailer and results video linked in the project notes to witness Gyroflow's stabilization in action.
And if you decide to explore, remember that Gyroflow’s strength lies not only in its sophisticated stabilization algorithms but in its community-driven approach, inviting developers and users to contribute, translate, and improve the tool for a wide array of shooting environments.
Enjoying this project?
Discover more amazing open-source projects on TechLogHub. We curate the best developer tools and projects.
Repository:https://github.com/gyroflow/gyroflow
GitHub - gyroflow/gyroflow: Video Stabilization Using Gyroscope Data
Gyroflow is an open‑source project that stabilizes video by using motion data captured from camera gyroscopes (and optional accelerometers). It offers real‑time...
github - gyroflow/gyroflow
