README.md
</a>
<a href="https://github.com/gyroflow/gyroflow#gh-dark-mode-only">
</a>
<a href="https://gyroflow.xyz">Homepage</a> •
<a href="https://github.com/gyroflow/gyroflow/releases">Download</a> •
<a href="https://docs.gyroflow.xyz">Documentation</a> •
<a href="https://discord.gg/YaUtNpWTUh">Discord</a> •
<a href="https://github.com/gyroflow/gyroflow/issues">Report bug</a> •
<a href="https://github.com/gyroflow/gyroflow/issues">Request feature</a>
</a>
<a href="https://github.com/gyroflow/gyroflow/graphs/contributors">
</a>
<a title="Crowdin" target="_blank" href="https://crowdin.com/project/gyroflow">
</a>
<a href="https://github.com/gyroflow/gyroflow/issues/">
</a>
<a href="https://github.com/gyroflow/gyroflow/blob/master/LICENSE">
</a>
<a href="https://gurubase.io/g/gyroflow">
</a>
Gyroflow is an application that can stabilize your video by using motion data from a gyroscope and optionally an accelerometer. Modern cameras record that data internally (GoPro, Sony, Insta360 etc), and this application stabilizes the captured footage precisely by using them. It can also use gyro data from an external source (eg. from Betaflight blackbox).
<p align="center"> <a href="resources/comparison1.mp4"></a> <a href="resources/comparison2.mp4"></a> </p>Sensor Logger, G-Field Recorder, GyroSensor Logger, Sensor Record, OpenCamera Sensors, MotionCam ProGyroflow-windows64.zip from the Releases page, extract the files somewhere and run Gyroflow.exeVCRUNTIME140.dll or 0xc0000142, install VC redistGyroflow-mac-universal.dmg from the Releases page, run the downloaded file, and drag & drop Gyroflow app to the Applications folder (or anywhere you want, like on Desktop)brew install gyroflow. To upgrade Gyroflow, run brew update then brew upgrade gyroflowGyroflow-linux64.tar.gz from the Releases page, extract the files somewhere and run ./Gyroflow in the terminal.Gyroflow-linux64.AppImage, but the .tar.gz one is preferred.sudo apt install libva2 libvdpau1 libasound2 libxkbcommon0 libpulse0 libc++-dev libvulkan1nvidia-opencl-icd nvidia-vaapi-driver nvidia-vdpau-driver nvidia-egl-icd nvidia-vulkan-icd libnvcuvid1 libnvidia-encode1intel-media-va-driver i965-va-driver beignet-opencl-icd intel-opencl-icdmesa-vdpau-drivers mesa-va-drivers mesa-opencl-icd libegl-mesa0 mesa-vulkan-driversLatest development version is always available here: https://gyroflow.xyz/devbuild/.
Settings -> Apps -> Optional features -> Add a feature -> enable Media Feature Pack.tar.gz package (recommended): Debian 10+, Ubuntu 18.10+, CentOS 8.2+, openSUSE 15.3+. Other distros require glibc 2.28+ (ldd --version to check).AppImage should work everywhereFor general support and discussion, you can find the developers and other users on the Gyroflow Discord server.
For companies or people wishing to get in touch with the team privately for collaborative purposes: [email protected].
You can download some clips with gyro data from here: https://drive.google.com/drive/folders/1sbZiLN5-sv_sGul1E_DUOluB5OMHfySh?usp=sharing
See the open issues for a list of proposed features and known issues. There's also a ton of TODO comments throughout the code.
Gyroflow OpenFX plugin is available here. OpenFX plugin was tested in DaVinci Resolve
Adobe Premiere and After Effects plugin is available here
Final Cut Pro plugin is available as Gyroflow Toolbox.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributors are greatly appreciated.
Currently Gyroflow is available in:
Help us translate Gyroflow to your language! We use crowdin to manage translations and you can contribute there: https://crowdin.com/project/gyroflow
Gyroflow is written in Rust, with UI written in QML. It uses Qt, ffmpeg, OpenCV and mdk-sdk external dependencies for the main program, but the core library is written in pure Rust without any external dependencies.
OpenCV usage is kept to a minimum, used only for lens calibration and optical flow (src/core/calibration/mod.rs and src/core/synchronization/opencv.rs). Core algorithms and undistortion don't use OpenCV.
GPU stuff supports DirectX, OpenGL, Metal and Vulkan thanks to Qt RHI and wgpu. For GPU processing we use OpenCL or wgpu, with highly parallelized CPU implementation as a fallback.
src/ui directorysrc/controller.rs is a bridge between UI and core, it takes all commands from QML and calls functions in coresrc/core contains the whole gyroflow engine and doesn't depend on Qt or ffmpeg. OpenCV is optionalsrc/rendering contains all FFmpeg related code for rendering final video and processing for synchronizationsrc/core/gpu contains GPU implementations of the undistortionsrc/qt_gpu contains zero-copy GPU undistortion path, using Qt RHI and GLSL compute shadersrc/gyroflow.rs is the main entry pointmod.rs or lib.rs in each directory act as a main entry of the module (directory name is the module name and mod.rs is kind of an entry point)Visual Studio Code with rust-analyzer extension.
For working with QML I recommend to use Qt Creator and load all QML files there, as it has auto-complete and syntax highlighting.
The project also supports UI live reload, it's a super quick way of working with the UI. Just change live_reload = true in gyroflow.rs and it should work right away. Now every time you change any QML file, the app should reload it immediately.
git, 7z and working powershell. If you never ran powershell scripts before, run set-executionpolicy remotesigned in powershell as adminJust by running cargo install --force justgit clone https://github.com/gyroflow/gyroflow.gitjust install-depsjust rungit, brewJust by running cargo install --force justgit clone https://github.com/gyroflow/gyroflow.gitjust install-depsjust runjust deploy once and then just run will workgit, 7z, python, apt package manager (or adjust commands inside scripts if on different distro)Just by running cargo install --force justgit clone https://github.com/gyroflow/gyroflow.gitjust install-depsjust rungit, 7z, working powershell, Android SDK and NDK. Android is not well supported yet, but the app can be built and somewhat works. Building is supported only on WindowsJust by running cargo install --force justgit clone https://github.com/gyroflow/gyroflow.git_scripts/android.justjust android install-depsjust android deploygit, brewJust by running cargo install --force justgit clone https://github.com/gyroflow/gyroflow.gitjust ios install-deps_scripts/ios.justjust ios runVisual Studio Community Editionprofile profile: just profileDebug -> Performance Profiler...
Target, open Change Target and select Running Process..., select the running gyroflow.exe processconfig.define("QT_QML_DEBUG", None); in build.rscli::run() in gyroflow.rscargo run -- "-qmljsdebugger=port:1234,block,services:CanvasFrameRate,EngineControl,DebugMessages"Analyze -> QML Profiler (Attach to Waiting Application) and enter port 1234Distributed under the GPLv3 License with App Store Exception. See LICENSE for more information.
As additional permission under section 7, you are allowed to distribute gyroflow_core through an app store, even if that store has restrictive terms and conditions that are incompatible with the GPL, provided that the source is also available under the GPL with or without this permission through a channel without those restrictive terms and conditions.