Gyroflow is an application that can stabilize your video by using motion data from a gyroscope and optionally an accelerometer

Overview

Gyroflow logo Gyroflow logo

Video stabilization using gyroscope data

HomepageDownloadDocumentationDiscordReport bugRequest feature

Downloads Contributors Issues License

About the project

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).

Trailer / results video

Screenshot

Features

  • Real time preview, params adjustments and all calculations
  • GPU processing and rendering
  • Fully multi-threaded
  • Rolling shutter correction
  • Supports already stabilized GoPro videos (captured with Hypersmooth enabled) (Hero 8 and up)
  • Supports and renders 10-bit videos (and higher, up to 16-bit 4:4:4, direct YUV rendering with no data loss - no conversion to RGB)
  • Visual chart with gyro data (can display gyro, accel, magnetometer and quaternions)
  • Visual display of smoothed quaternions
  • Real time offset adjustments
  • Two optical flow methods
  • Two offsets calculation methods
  • Modern responsive user interface with Dark and Light theme
  • Adaptive zoom (dynamic cropping)
  • Based on telemetry-parser - supports all gyro sources out of the box
  • Gyro low pass filter, arbitrary rotation (pitch, roll, yaw angles) and orientation
  • Multiple gyro integration methods for orientation determination
  • Multiple video orientation smoothing algorithms, including horizon levelling and per-axis smoothness adjustment.
  • Cross-platform - currently works on Windows/Linux/Mac, with Android and iOS apps coming
  • Multiple UI languages
  • Supports variable and high frame rate videos, all calculations are done on timestamps
  • x264, x265, ProRes and PNG outputs, with x264 and x265 fully GPU accelerated
  • Automatic lens calibration process
  • Fully zero-copy GPU preview rendering is possible, implemented and almost working ( ?? )
  • Core engine is a separate library without external dependencies (no Qt, no ffmpeg, no OpenCV), and can be used to create OpenFX and Adobe plugins (on the TODO list)
  • Automatic updates of lens profile database
  • Built-in lens profiles for GoPro HERO 6, 8, 9 and 10 in all shooting modes

Supported gyro sources

  • GoPro (HERO 5 and later)
  • Sony (a1, a6600, a7c, a7r IV, a7 IV, a7s III, a9 II, FX3, FX6, RX0 II, RX100 VII, ZV1, ZV-E10)
  • Insta360 (OneR, SMO 4k, GO2)
  • Betaflight blackbox (CSV and binary)
  • Mobile apps: Sensor Logger, G-Field Recorder, Gyro
  • Runcam CSV (Runcam 5 Orange, iFlight GOCam GR)
  • WitMotion (WT901SDCL binary and *.txt)

Info for cameras not on the list

  • For cameras which do have built-in gyro, please contact us and we will implement support for that camera. Refer to the documentation for information about the gyro logging process.
  • For cameras which don't have built-in gyro, please consider using Betaflight FC or check out our flowshutter project.

Minimum system requirements:

  • Windows 10 64-bit (1809 or later)
  • macOS 10.14 or later (both Intel and Apple Silicon are supported natively)
  • Linux:
    • .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 everywhere
    • Make sure you have latest graphics drivers installed
    • Possibly needed packages: sudo apt install libva2 libvdpau1 libasound2 libxkbcommon0 libpulse0 libc++-dev vdpau-va-driver libvulkan1
    • GPU specific packages:
      • NVIDIA: nvidia-opencl-icd nvidia-vdpau-driver nvidia-egl-icd nvidia-vulkan-icd libnvcuvid1 libnvidia-encode1
      • Intel: intel-media-va-driver i965-va-driver beignet-opencl-icd intel-opencl-icd
      • AMD: mesa-vdpau-drivers mesa-va-drivers mesa-opencl-icd libegl-mesa0 mesa-vulkan-drivers
  • Android 6+

Help and support

For 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].

Roadmap

See the open issues for a list of proposed features and known issues.

Video editor plugins

Adobe After Effects and Davinci Resolve plugins are planned, but not ready yet

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributors are greatly appreciated.

  • If you have suggestions for adding or removing features, feel free to open an issue to discuss it.
  • If you want to implement a feature, you can fork this project, implement your code and open a pull request.

Translations

Currently Gyroflow is available in:

  • English (base language)
  • Chinese Simplified (by DusKing1)
  • Chinese Traditional (by DusKing1)
  • Danish (by ElvinC)
  • Finnish (by Jesse Julkunen)
  • French (by KennyDorion)
  • German (by Grommi and Nicecrash)
  • Italian (by Rosario Casciello)
  • Norwegian (by MiniGod and alexagv)
  • Polish (by AdrianEddy)
  • Slovak (by Radovan Leitman)
  • Ukrainian (by Artem Alexandrov)

Help us translate Gyroflow to your language! We use crowdin to manage translations and you can contribute there: https://crowdin.com/project/gyroflow

I want to contribute but I don't know Rust or QML

Development

Used languages and technologies

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.

Code structure

  1. Entire GUI is in the src/ui directory
  2. src/controller.rs is a bridge between UI and core, it takes all commands from QML and calls functions in core
  3. src/core contains the whole gyroflow engine and doesn't depend on Qt or ffmpeg, and OpenCV is optional
  4. src/rendering contains all FFmpeg related code for rendering final video and processing for synchronization
  5. src/core/gpu contains GPU implementations of the undistortion
  6. src/qt_gpu contains zero-copy GPU undistortion path, using Qt RHI and GLSL compute shader, but this method is experimental and buggy for now
  7. src/gyroflow.rs is the main entry point and contains a TODO list of things that still need to be done. Also there's a ton of TODO comments throughout the code
  8. mod.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)

Dev environment

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.

Building on Windows

  1. Get latest stable Rust language from: https://rustup.rs/
  2. Clone the repo: git clone https://github.com/gyroflow/gyroflow.git
  3. Install dependencies to the ext directory: cd gyroflow/ext
  4. Update dependencies paths in __env.ps1 if needed.
  5. Setup the environment in powershell (or set the same variables in cmd): ./__env.ps1 - I do this in VS Code built-in terminal
  6. Compile and run: cargo run --release

Building on MacOS

  1. Get latest stable Rust language from: https://rustup.rs/
  2. Install Xcode command line tools: xcode-select --install
  3. Clone the repo: git clone https://github.com/gyroflow/gyroflow.git
  4. Install dependencies: cd gyroflow/ext && ./install-deps-mac.sh
  5. Update PROJECT_DIR in __env-macos.sh
  6. Setup the environment in terminal: source __env-macos.sh - I do this in VS Code built-in terminal
  7. Compile and run: cargo run --release
  8. If it fails to run, do: ./_deployment/deploy-macos.sh once

Building on Linux

  1. Get latest stable Rust language from: https://rustup.rs/
  2. Clone the repo: git clone https://github.com/gyroflow/gyroflow.git
  3. Install dependencies: cd gyroflow/ext && ./install-deps-linux.sh (Debian based apt)
  4. Update PROJECT_DIR in __env-linux.sh
  5. Setup the environment in terminal: source __env-linux.sh - I do this in VS Code built-in terminal
  6. Compile and run: cargo run --release

Building on Android

  1. Android is not well supported yet, but the app can be built and somewhat works. So far only building on Windows was tested
  2. Install Qt for Android: aqt install-qt windows android 6.2.3 android_arm64_v8a and aqt install-qt windows desktop 6.2.3 win64_mingw
  3. Install cargo-apk: cargo install --git https://github.com/zer0def/android-ndk-rs.git cargo-apk
  4. Add a Rust target: rustup target add aarch64-linux-android
  5. Update Cargo.toml to comment out [[[bin]] section and uncomment [lib] section
  6. Patch C:\Users\you\.cargo\registry\src\github.com-1ecc6299db9ec823\opencv-0.61.3\build.rs: Change if cfg!(target_env = "msvc") to if std::env::var("CARGO_CFG_TARGET_ENV").unwrap() == "msvc"
  7. Update paths in _deployment/build-android.ps1 and in _deployment/android/android-deploy.json
  8. Run .\_deployment\build-android.ps1 in Powershell

License

Distributed under the GPLv3 License. See LICENSE for more information.

Authors

  • AdrianEddy - Author of the Rust implementation (code in this repository), author of the UI, GPU processing, rolling shutter correction and advanced rendering features
  • Elvin Chen - Author of the first version in Python, laid the groundwork to make all this possible

Notable contributors

  • Aphobius - Author of velocity dampened smoothing algorithm
  • Marc Roeschlin - Author of adaptive zoom algorithm

Acknowledgements

Comments
  • [ubuntu] GPU encoding not possible

    [ubuntu] GPU encoding not possible

    Is there an existing issue for this?

    • [X] I have searched the existing issues

    Have you tried the latest build?

    • [X] I have tried the latest build

    Gyroflow version

    v1.0.0-rc4

    What operating system are you using?

    ubuntu 22.04.4 LTS

    What GPU are you using?

    AMD ATI Radeon R7 530 | INTEL UHD 620

    What happened?

    not possible to export using GPU rendering (x264 & x265), no gpu rendering with ProRes Bildschirmfoto von 2022-02-25 16-53-32

    Relevant log output

    15:53:25 [DEBUG] (2) gyroflow::rendering::ffmpeg_video: Converting from NV12 to VAAPI_VLD
    [swscaler @ 0x7f1ab366a1c0] 0bpp not supported by yuv2rgb
    [swscaler @ 0x7f1ab366a1c0] vaapi_vld is not supported as output pixel format
    [aac @ 0x7f1ab237a080] Qavg: nan
    15:53:45 [DEBUG] (2) gyroflow::rendering: ffmpeg_hw::supported_gpu_backends: ["vdpau", "cuda", "vaapi", "qsv"]
    15:53:45 [DEBUG] (2) gyroflow::rendering::ffmpeg_hw: [dec] codec type AV_HWDEVICE_TYPE_CUDA 0
    [AVHWDeviceContext @ 0x7f1ab000a080] Cannot load libcuda.so.1
    [AVHWDeviceContext @ 0x7f1ab000a080] Could not dynamically load CUDA
    15:53:45 [DEBUG] (2) gyroflow::rendering: Failed to create specified HW device: AV_HWDEVICE_TYPE_CUDA
    
    15:53:45 [DEBUG] (2) gyroflow::rendering::ffmpeg_hw: [dec] codec type AV_HWDEVICE_TYPE_VAAPI 1
    15:53:45 [DEBUG] (2) gyroflow::rendering: Selected HW backend AV_HWDEVICE_TYPE_VAAPI (vaapi) with format Some(AV_PIX_FMT_VAAPI_VLD)
    
    15:53:45 [DEBUG] (2) gyroflow::rendering: proc.gpu_device: Some("vaapi")
    15:53:45 [DEBUG] (2) gyroflow::rendering: Possible encoders with AMD: [("libx265", false)]
    15:53:45 [DEBUG] (2) gyroflow::rendering: video_codec: Some("libx265"), processing_order: PreConversion
    15:53:45 [DEBUG] (2) gyroflow::rendering: start_us: 0, render_duration: 271840, render_frame_count: 6796
    15:53:45 [DEBUG] (2) gyroflow::rendering::ffmpeg_processor: Codec formats: [YUV420P, YUVJ420P, YUV422P, YUVJ422P, YUV444P, YUVJ444P, GBRP, YUV420P10LE, YUV422P10LE, YUV444P10LE, GBRP10LE, YUV420P12LE, YUV422P12LE, YUV444P12LE, GBRP12LE, GRAY8, GRAY10LE, GRAY12LE]
    15:53:47 [DEBUG] (2) gyroflow::rendering::ffmpeg_video: Hardware transfer formats from GPU: Some([NV12, BGRA, ARGB, RGBA, ABGR, BGRZ, ZRGB, RGBZ, ZBGR, X2RGB10LE, GRAY8, YUYV422, UYVY422, YUV420P, YUV420P, YUV411P, YUV422P, YUV440P, YUV444P, P010LE])
    15:53:47 [DEBUG] (2) gyroflow::rendering::ffmpeg_video: Converting from NV12 to YUV420P
    15:53:47 [DEBUG] (2) gyroflow::rendering::ffmpeg_video: hw_device_type: None, encoder_pixel_format: Some(YUV420P)
    15:53:47 [DEBUG] (2) gyroflow::rendering::ffmpeg_video: Setting output pixel format: YUV420P, color range: JPEG
    15:53:47 [DEBUG] (2) gyroflow::rendering::ffmpeg_video: hw_device_type None
    
    bug linux 
    opened by nightflasher 64
  • 10bit DCI 4k from the BGH1 - Gyroflow rc4 shows a garbled image

    10bit DCI 4k from the BGH1 - Gyroflow rc4 shows a garbled image

    Is there an existing issue for this?

    • [X] I have searched the existing issues

    Have you tried the latest build?

    • [X] I have tried the latest build

    Gyroflow version

    rc4 and nightly

    What operating system are you using?

    Mojave - mackbook pro and hackintosh same issue

    What GPU are you using?

    750M and RX580

    What happened?

    Screenshot 2022-02-24 at 21 40 07 274297273_10159398657641865_4524150659771155794_n

    10bit DCI 4k from the BGH1 Garbled image - audio plays as it should. I tried with GPU encoding disabled as per a recommendation from Alexander G. Vedeler The same file plays properly in gyroflow on my Windows 10 system.

    Relevant log output

    No response

    bug mdk-sdk 
    opened by alexrjohnston 42
  • MXF files not loading into GyroFlow

    MXF files not loading into GyroFlow

    Is there an existing issue for this?

    • [X] I have searched the existing issues

    Have you tried the latest build?

    • [X] I have tried the latest build

    Gyroflow version

    RC 1.0.1

    What operating system are you using?

    12.4

    What GPU are you using?

    2.3 GHz 8-Core Intel Core i9

    What happened?

    Just installed latest 30 May '22 dev build; when I drop .mxf (Sony FX6) files in to Gyroflow, however, I am getting a long spinning wheel, but that's it. File never opens in GyroFlow. Anything changed that is doing this? Should I be using RC 1.01 instead? Will greatly appreciate any guidance as I need to hustle with this material! Thank you. Dev build is RC 1.0.1 (gh517) btw

    • Am on 15 inch 2019 8 core MBP, 32gb RAM, running latest Monterrey
    • JUST REALIZED gh519 is the very latest dev build; installed and tried with it too, but exactly same problem, unfortunately
    • And now, I also have tried with the RC 1.0.1 'official release'; same problem - just a spinning wheel and files do not open. FAST HELP OR A LINK TO VERSION YOU KNOW WILL WORK WITH MY MXF FILES WILL BE HUGELY APPRECIATED. Thank you!

    Relevant log output

    None
    
    bug 
    opened by BabaTom 25
  • [Bug]:

    [Bug]: " Sensor Logger" Android app unsupported format error.

    Gyroflow version

    1.0

    What operating system are you using?

    Mac OS 12.1

    What GPU are you using?

    M1 integrated

    What happened?

    I tried to import sensordata from the "Sensor Logger" app on android. The zip file is greyed out so it can't be imported. If I unzip I can only choose one data stream. If i choose gyroscope.csv I get the error message"An error occured: Unsupported file format". Is I export to json instead of csv it is grey out and cannot be imported.

    Relevant log output

    Sorry I don't know how to do this.
    
    bug telemetry-parser 
    opened by TirusTrinity 25
  • GPU Encoding

    GPU Encoding

    Hi, only recently started using Gyroflow, with 1.0.0-rc5, with no problems including being able to use GPU encoding. Upgraded to 1.0.0, but it could not detect my GPU, and nor could 1.0.1. Am using a Lenovo Yoga 510-141SK laptop - seems to be using Intel HD Graphics.

    opened by billjow 23
  • Allow custom FFMPEG output or FFMPEG frame serving

    Allow custom FFMPEG output or FFMPEG frame serving

    Is there an existing feature request for this?

    • [X] I have searched the existing requests

    Description

    First of all let me thank you for all your time dedication that made this project possible. It's incredible!

    Currently export codecs and configuration are limited to a few choices. Different users have different needs. Please allowing advanced users to set a custom FFMPEG line in a textbox to configure export codecs exactly the way they require.

    If that's not possible, please consider frame serving to a custom FFMPEG binary.

    Use cases for me:

    • Only rate control option currently is bitrate, which is an understandable, but IMHO a sub optimal choice. Constant Quality with custom quantization parameters make much more sense in this day and age (to me).
    • Allow lossless h264 (8bit) and lossless h256 (10) 4:2:0 and 4:4:4 output using NVENC with custom keyframe interval (-g option in FFMPEG). Such files with short GOP sizes are good to work with in Resolve, provide maximum quality and still result in 2-3x space savings over image sequences.

    So I'm envisioning a textbox where I could input

    -c:a:0 pcm_s24le -c:v hevc_nvenc -preset lossless -pix_fmt yuv444p10
    

    and hit export.

    enhancement 
    opened by User-3090 20
  • Gyroflow 1.0.0 RC5 not responding or unresponsive during Rendering/export, once Crashes or Freeze. Win 10 Pro.

    Gyroflow 1.0.0 RC5 not responding or unresponsive during Rendering/export, once Crashes or Freeze. Win 10 Pro.

    Is there an existing issue for this?

    • [X] I have searched the existing issues

    Have you tried the latest build?

    • [X] I have tried the latest build

    Gyroflow version

    v1.0.0.0-rc5 (gh379)

    What operating system are you using?

    Edition: Windows 10 Pro, Version: 21H2, OS build: 19044.1586, Experience: Windows Feature Experience Pack 120.2212.4170.0

    What GPU are you using?

    Intel(R) HD Graphics (on board)

    What happened?

    Computer Processor : Intel(R) Core(TM) i5-3330 CPU @ 3.00GHz 3.00 GHz Installed RAM : 8,00 GB (7,46 GB usable) System type : 64-bit operating system, x64-based processor . Action Camera Brand/Type : Runcam Thumb with FW v2.1.0 Video : 1080p50fps (for detail media info, please check the video file directly) . Descriptions No problem during insert video, settings, or play video/preview in Gyroflow UI. No problem export to .gyroflow file But then Gyroflow not responding or unresponsive during Rendering/export stabilize video, once Crashes or Freeze, once I have to powering off my computer and restart because my computer is not responding at all. Please watch this screen recording : Gyroflow_gulNg7hoEM.mp4 . Files to reproduce the issue (google drive):

    1. Thumb0004.MP4
    2. Thumb0004.gcsv
    3. gyroflow.log (last try)

    Relevant log output

    n/a
    please see the gyroflow.log attached
    
    bug 
    opened by gonebdg 20
  • Gyroflow v1.2.0 not opening on Windows 10 / GTX1050

    Gyroflow v1.2.0 not opening on Windows 10 / GTX1050

    Is there an existing issue for this?

    • [X] I have searched the existing issues

    Have you tried the latest build?

    • [X] I have tried the latest build

    Gyroflow version

    Gyroflow-windows64 - 120

    What operating system are you using?

    windows 10

    What GPU are you using?

    Windows 10 Enterprise

    What happened?

    need help. Gyroflow v1.2.0 not opening on my Windows 10 / GTX 1050 its always force close.

    already try the other version, but always force close.

    Relevant log output

    01:43:36 [INFO] [MDK] MDK 0.15.0 (git e8c668a) - Multimedia Development Kit. Copyright (c) 2016-2022 WangBin(QtAV author) <wbsecg1 at gmail.com>
    Build for: Windows0x0600 x86_64; MSVC1933; MSVCRT14.33.31629.0/msvcp140.dll; 15:32:35 Aug 23 2022
    01:43:36 [DEBUG] (1) mdk: [MDK] 3mdk verify key signature ok
    01:43:36 [DEBUG] (1) mdk: [MDK] 3mdk license key restrictions: OpenSource,
    01:43:36 [DEBUG] (1) mdk: [MDK] user module: D:\2_garage\Gyroflow-windows64 120\Gyroflow.exe
    01:43:36 [DEBUG] (1) mdk: [MDK] user module: D:\2_garage\Gyroflow-windows64 120\Gyroflow.exe
    01:43:36 [DEBUG] (1) mdk: [MDK] 3mdk license key for app: gyroflow
    01:43:41 [INFO] Latest version: v1.2.0, current version: 1.2.0
    01:43:41 [INFO] Lens profiles directory: "\\\\?\\D:\\2_garage\\Gyroflow-windows64 120\\camera_presets"
    01:43:41 [INFO] Loaded 3833 lens profiles in 486.951ms
    
    bug 
    opened by antokubus 19
  • MacBook Pro M1 perfomance drop on Hero 5 Session footage

    MacBook Pro M1 perfomance drop on Hero 5 Session footage

    Is there an existing issue for this?

    • [X] I have searched the existing issues

    Have you tried the latest build?

    • [X] I have tried the latest build

    Gyroflow version

    1.0.0-rc3

    What operating system are you using?

    macOS Monterey 12.2

    What GPU are you using?

    Apple Silicon M1

    What happened?

    Testing GF on my GoPro 5 Session with 2.7K 4:3 25FPS footage. After pressing Export first 7-10% of process runs pretty fast, then performance gradually slows till 1 frame per second. GPU encoding goes the same. I have to say that I use my own calibration preset for 2.7K 4by3 on Session 5. By the way GoPro Hero10 footage encodes amazingly fast. Снимок экрана 2022-02-13 в 21 08 52

    https://user-images.githubusercontent.com/99600621/153757226-5de5c9d4-887c-41a1-be40-b8368b82c93f.mov

    Relevant log output

    No response

    bug 
    opened by nogod4me 19
  • v1.3 can't open certain file on Intel Mac Pro

    v1.3 can't open certain file on Intel Mac Pro

    Is there an existing issue for this?

    • [X] I have searched the existing issues

    Have you tried the latest build?

    • [X] I have tried the latest build

    Gyroflow version

    v1.3 (dev and prod)

    What operating system are you using?

    macOS Monterey

    What GPU are you using?

    AMD Radeon Pro 580X

    What happened?

    When trying to load video files with YUV422 10bit HEVC format, Gyroflow just shows the spinner forever without loading the video.

    I noticed this is only happening on Intel Mac Pro (Xeon W + 580X Pro), but not happening on my M2 Macbook Air. Unfortunately Air's GPU doesn't seem to support the export encoding.

    Is it an known issue that this format is not supported?

    Relevant log output

    No response

    Sample video

    https://www.dropbox.com/s/ni1v9bn9j2v6can/C0223.MP4?dl=0

    bug 
    opened by AfflatusX 18
  • Fedora 36 with RTX3060 - any version newer than 1.2.0 instant crash

    Fedora 36 with RTX3060 - any version newer than 1.2.0 instant crash

    Is there an existing issue for this?

    • [X] I have searched the existing issues

    Have you tried the latest build?

    • [X] I have tried the latest build

    Gyroflow version

    1.3.0-rc

    What operating system are you using?

    Fedora Linux 36 (Workstation Edition) 64-bit

    What GPU are you using?

    NVIDIA GeForce RTX 3060

    What happened?

    Any newer version above 1.2.0 crash on start. gyroflow.log

    Relevant log output

    MDK 0.17.0 (git cc3146c) - Multimedia Development Kit. Copyright (c) 2016-2022 WangBin(QtAV author) <wbsecg1 at gmail.com>
    Build for: Linux x86_64; Clang15.0.2 GCC4.2.1; libc++15002; 12:29:34 Oct  9 2022
    mdk plugin 'mdk-braw': 0x5573977be760
    17:32:14 [DEBUG] (1) gyroflow_core::gpu::opencl: OpenCL devices: Ok("NVIDIA CUDA") Ok("OpenCL 3.0 CUDA 11.7.102") ["NVIDIA GeForce RTX 3060"]
    17:32:14 [DEBUG] (1) gyroflow_core::gpu::opencl: OpenCL devices: Ok("Portable Computing Language") Ok("OpenCL 2.0 pocl 1.8  Linux, RelWithDebInfo, RELOC, LLVM 13.0.1, SLEEF, DISTRO, POCL_DEBUG") []
    17:32:14 [DEBUG] (1) gyroflow_core::gpu::opencl: OpenCL devices: Ok("Clover") Ok("OpenCL 1.1 Mesa 22.1.7") []
    17:32:14 [INFO] OpenCL Platform: NVIDIA CUDA, ext: Extensions { inner: "cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_fp64 cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll cl_nv_copy_opts cl_nv_create_buffer cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_device_uuid cl_khr_pci_bus_info cl_khr_external_semaphore cl_khr_external_memory cl_khr_external_semaphore_opaque_fd cl_khr_external_memory_opaque_fd" } Device: NVIDIA Corporation NVIDIA GeForce RTX 3060
    17:32:14 [DEBUG] (1) gyroflow::rendering::ffmpeg_hw: create AV_HWDEVICE_TYPE_CUDA
    17:32:15 [DEBUG] (1) gyroflow::rendering::ffmpeg_hw: created ok AV_HWDEVICE_TYPE_CUDA
    17:32:15 [DEBUG] (1) gyroflow::rendering: GPU type: Nvidia, from name: nvidia corporation nvidia geforce rtx 3060
    17:32:15 [DEBUG] (1) default: QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR ""
    17:32:15 [DEBUG] (1) default: QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR ""
    17:32:15 [DEBUG] (1) default: QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR ""
    17:32:15 [DEBUG] (1) default: QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR ""
    17:32:15 [DEBUG] (1) default: QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR ""
    17:32:15 [DEBUG] (1) default: QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR ""
    17:32:15 [DEBUG] (1) default: QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR ""
    17:32:15 [DEBUG] (1) default: QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR ""
    17:32:15 [DEBUG] (1) default: QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR ""
    17:32:15 [DEBUG] (1) default: QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR ""
    17:32:15 [DEBUG] (1) default: QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR ""
    17:32:15 [DEBUG] (1) default: QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR ""
    17:32:15 [DEBUG] (1) default: QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR ""
    17:32:15 [DEBUG] (1) default: QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR ""
    17:32:15 [DEBUG] (1) default: QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR ""
    17:32:15 [DEBUG] (1) default: QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR ""
    17:32:15 [DEBUG] (1) default: QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR ""
    17:32:15 [DEBUG] (1) default: QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR ""
    17:32:15 [DEBUG] (1) default: QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR ""
    17:32:15 [DEBUG] (1) default: QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR ""
    17:32:15 [DEBUG] (1) default: QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR ""
    17:32:15 [DEBUG] (1) default: QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR ""
    17:32:15 [DEBUG] (1) default: QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR ""
    17:32:15 [DEBUG] (1) default: QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR ""
    17:32:15 [DEBUG] (1) default: QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR ""
    17:32:15 [DEBUG] (1) default: QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR ""
    17:32:15 [DEBUG] (1) default: QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR ""
    17:32:15 [DEBUG] (1) default: QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR ""
    17:32:15 [DEBUG] (1) default: QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR ""
    17:32:15 [DEBUG] (1) default: QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR ""
    17:32:15 [DEBUG] (1) default: QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR ""
    17:32:15 [DEBUG] (1) default: QT_QUICK_CONTROLS_TEXT_SELECTION_BEHAVIOR ""
    17:32:15 [ERROR] thread '<unnamed>' panicked at 'called `Option::unwrap()` on a `None` value': /root/.cargo/registry/src/github.com-1ecc6299db9ec823/khronos-egl-4.1.0/src/lib.rs:961
       0: <unknown>
       1: <unknown>
       2: <unknown>
       3: <unknown>
       4: <unknown>
       5: <unknown>
       6: <unknown>
       7: <unknown>
       8: <unknown>
       9: <unknown>
      10: <unknown>
      11: <unknown>
      12: <unknown>
      13: <unknown>
      14: <unknown>
      15: <unknown>
      16: start_thread
      17: __clone3
    
    Rayon: detected unexpected panic; aborting
    fish: Job 1, './gyroflow' terminated by signal SIGABRT (Abort)
    
    bug linux 
    opened by ales-zima 18
  • not able to creat a new lens correct file

    not able to creat a new lens correct file

    Is there an existing issue for this?

    • [X] I have searched the existing issues

    Have you tried the latest build?

    • [X] I have tried the latest build

    Gyroflow version

    v1.4.2

    What operating system are you using?

    win10

    What GPU are you using?

    1080ti

    What happened?

    camera: sony fx3 3840*2160 @ 60fps stab off, Lens: sony 14mm f 1.8 gm error number is always 999.0

    attach video files to download from baidu netdisk

    LINK:https://pan.baidu.com/s/1XZQjF_D29LGePxLU8Nkp2w?pwd=qml1 password:qml1

    Relevant log output

    No response

    bug 
    opened by ericdesigners 1
  • Add support for security scoped bookmarks

    Add support for security scoped bookmarks

    Is there an existing feature request for this?

    • [X] I have searched the existing requests

    Description

    Currently Gyroflow isn't sandboxed, so there is no need for security-scoped bookmarks. However, it would be amazing if gyroflow_core could generate document-scope security-scoped bookmarks, so that third party sandboxed macOS, iOS and iPadOS applications can still function correctly without any major additional work.

    Essentially, whenever a Gyroflow users imports a media file either via drag-and-drop or via the Open File button, you should create a document-scope security-scope bookmark, and store that bookmark data within the Gyroflow project file (as a base64 data blob) so that sandbox apps can resolve that bookmark and get sandboxed access to the media (assuming they already have sandbox access to the Gyroflow project).

    You'll have to do this bookmark generation at the time of saving the Gyroflow Project - as when you're importing the media, you might not already have a Gyroflow Project created.

    References:

    enhancement 
    opened by latenitefilms 0
  • Zero-copy rendering

    Zero-copy rendering

    Description

    In order:

    • [ ] macOS/iOS - VideoToolbox + Metal
    • [ ] Windows - D3D11 + Dx12
    • [ ] Windows - D3D11 + Vulkan
    • [ ] Windows - D3D11 -> Vulkan -> CUDA
    • [ ] Windows - CUDA + Vulkan
    • [ ] Windows - AMF
    • [ ] Windows - QSV
    • [ ] Android - MediaCodec + OpenGL
    • [ ] Linux - CUDA + OpenGL
    • [ ] Linux - CUDA + Vulkan
    • [ ] Linux - VA-API + OpenGL
    • [ ] Linux - VA-API + Vulkan
    • [ ] Linux - QSV
    • [ ] Android - MediaCodec + Vulkan
    • [ ] Windows - D3D11 + Dx11
    • [ ] Windows - DXVA + Dx12
    • [ ] Windows - DXVA + Dx11
    • [ ] Windows - DXVA + Vulkan
    • [ ] Linux - VDPAU + OpenGL
    • [ ] Linux - VDPAU + Vulkan
    enhancement 
    opened by AdrianEddy 0
  • DJI Action2 footage have some bad not smooth moves

    DJI Action2 footage have some bad not smooth moves

    Is there an existing issue for this?

    • [X] I have searched the existing issues

    Have you tried the latest build?

    • [X] I have tried the latest build

    Gyroflow version

    1.4.2

    What operating system are you using?

    macOS Ventura 13.0.1

    What GPU are you using?

    AMD Radeon Pro 5300M 4 GB

    What happened?

    https://user-images.githubusercontent.com/10632284/209819124-8abda077-acfc-41c5-abea-c8b5acc31e52.MOV

    https://user-images.githubusercontent.com/10632284/209819145-3673fbec-b394-4fe9-87b6-9f6b230d95ea.MOV

    Relevant log output

    No response

    bug 
    opened by AlexeyZatsepin 10
  • View R3D Footage

    View R3D Footage

    Is there an existing feature request for this?

    • [X] I have searched the existing requests

    Description

    Would it be able to view the R3D clips directly from RED cameras instead of having to go through the extra step of converting them to a different format prior?

    enhancement 
    opened by jim89457 5
Releases(v1.4.2)
  • v1.4.2(Dec 23, 2022)

    🐛 Bug fixes

    • Fixed rendering on MacOS before Ventura
    • Fixed startup crash on MacOS Catalina and Big Sur
    • Fixed rendering with NVIDIA on older cards
    • Fixed timeline quaternion view
    • Fixed loading of iFlight GOCAM csv gyro files
    • Fixed zooming center offset with stretched profiles
    • Updated KOMODO lens profiles to account for global shutter
    Source code(tar.gz)
    Source code(zip)
    Gyroflow-linux64.AppImage(174.66 MB)
    Gyroflow-linux64.tar.gz(49.51 MB)
    Gyroflow-mac-universal.dmg(75.79 MB)
    Gyroflow-windows64.zip(35.67 MB)
  • v1.4.0(Dec 19, 2022)

    ✨ Improvements

    • Sync points are now color-coded: green means good, red means bad. IMPORTANT! This is not a definitive indicator, it's judgement can be wrong, so if your video is stabilized correctly but the sync point is red, just ignore it
    • Added new zooming method, can look a bit more pleasing (Envelope follower)
    • Updated ffmpeg to latest version, main benefits are: Android hardware encoder, better CinemaDNG handling, VAAPI and QSV support for 10/12 bit
    • Added support for new gyro formats: OpenCamera Sensors android app, KanDao Obsidian, new WitMotion txt and VuzeXR
    • Custom encoder options gained ability to set hwaccel_device and qscale
    • Added ability to select which flight log from BlackBox file to use
    • Keyframes are now eased by default
    • Added ability to use internal Insta360 lens profiles from video metadata
    • Better calculation of elapsed time
    • Ask Windows to prefer high-performance GPU
    • Added an option to use gyro data only within the trim range
    • Added more render queue settings: export mode and default overwrite action
    • Added a shortcut to show render queue (q) and a setting to choose whether it should show with each added item
    • Improved working with project files: added ability to save changes (Ctrl+S shortcut)
    • Added a way to clear the render queue
    • Optimized compatibility with DJI Action 2 (beta firmware)
    • Allowed certain modal dialogs to be changed into small info messages ("don't show again" checkbox)
    • Automatically rename output video file when renaming project file
    • Added lens profiles for Hero 11 Black Mini and some missing ones for Hero 9
    • Added Runcam Thumb Pro Wide profiles
    • Added option to zoom in and loop the sync point (loop time is Time to analyze per sync point)
    • Show effective focal length in UI if provided in the lens
    • Added more synchronization methods, useful for longer focal lengths
    • Added more predefined sync points for Runcam cameras, especially when merging split recordings
    • Added new lens profiles submitted by the community
    • Added common shortcuts to lens profiles search box (like bmpcc, gopro6, a7s3 etc)
    • Updated Qt from 6.4.0 to 6.4.1

    🐛 Bug fixes

    • Fixed rolling shutter correction, it's now more accurate
    • Fixed H.264 and H.265 encoders bitrate on macOS Ventura
    • Fixed black rectangle on the rendered file when wgpu was used
    • Fixed loading a lens profile when video is loaded right after starting Gyroflow
    • Fixed shutdown behavior when having multiple files in the render queue, but started as a single regular export
    • Fixed BRAW playback on Intel Macs
    • Fixed initialization of wgpu instance on some devices
    • Fixed restoring the render queue
    • Fixed toggling stabilization on/off when output size is different
    • Fixed Home/End shortcuts
    • [Linux] Fixed wgpu crash on some distros
    • [Linux] Fixed .AppImage crash on some distros
    • [Linux] Fixed VA-API rendering
    • [Linux] Fixed BRAW playback
    • Fixed inconsistent UI state when loading a new video file
    • Fixed handling of asymmetrical lenses
    • Fixed warping when loading the video and in the lens calibrator
    • Fixed wgpu initialization when OpenCL fails
    • Fixed selected device for processing not respected in render queue and CLI
    • Fixed setting Margin with feather values when loading a new file or loading project file
    • Fixed detection of certain blackbox files
    • Fixed loading of certain damaged GoPro files
    • Fixed potential black frames in view when keyframing zooming speed
    • Fixed a bug where image sequence couldn't be located after moving to a new folder and using .gyroflow file
    Source code(tar.gz)
    Source code(zip)
    Gyroflow-linux64.AppImage(174.46 MB)
    Gyroflow-linux64.tar.gz(49.51 MB)
    Gyroflow-mac-universal.dmg(74.49 MB)
    Gyroflow-windows64.zip(35.66 MB)
  • v1.3.0(Oct 17, 2022)

    ✨ Improvements

    • Major performance improvements: reduced startup time, faster video loading, faster project loading
    • Full resolution preview is now enabled by default, uses zero-copy pipeline
    • Added video speed control (which can also be keyframed) and it adjusts the stabilization to the speed change
    • Added CLI interface: Can render, open file in GUI, export project, watch folder and stabilize new videos. [see here]
    • When dropping multiple files, Gyroflow now asks if you want to join them or add to render queue
    • Added GoPro Hero 11 support (official lens profiles, autoboost mode. Hyperview is not accurate yet)
    • Added support for zoom lenses, and zoom can be changing throughout the video (Sony cameras) [see here]
    • Loading gyro data from BRAW files is now much faster
    • Added a way to create a default settings preset (put default.gyroflow in camera_presets) which will be applied to every loaded video
    • Added zooming amount to the chart and renamed XYZ buttons to RPY (roll, pitch, yaw)
    • Increased max rendering resolution to 8192x8192
    • Merge .gcsv files when merging video files
    • Added jpg to detected image sequences
    • Added spectrum analyzer for gyro/accl data (mostly for diagnostics)
    • Updated icon on Windows
    • Added Czech language
    • Added Korean language

    🐛 Bug fixes

    • Fixed loading of some BRAW files
    • Fixed predefined sync points for RunCam lens profiles
    • Fixed initial movement when horizon lock was activated for Hero 8 files
    • Fixed suggested file name when exporting lens profile
    • Fixed loading gyro rotation from project file
    • Fixed Vulkan backend on Linux
    • Fixed merging certain mp4 files
    • Fixed Dx12 wgpu backend on some devices
    • Fixed crash when rendering using wgpu on some devices
    • Fixed remaining time display when rendering if loader was triggered
    Source code(tar.gz)
    Source code(zip)
    Gyroflow-linux64.AppImage(174.24 MB)
    Gyroflow-linux64.tar.gz(49.02 MB)
    Gyroflow-mac-universal.dmg(73.78 MB)
    Gyroflow-windows64.zip(34.68 MB)
  • v1.2.0(Aug 26, 2022)

    ✨ Improvements

    • New gyro sources: DJI Avata, Blackmagic RAW (.braw), RED RAW (.R3D), Ardupilot binary log (.bin)
    • Keyframes (right click on any slider and Enable keyframing, then change value)
    • Horizon lock actually locks the horizon now 🚀
    • Automatically detect and join multiple recording parts (that have been split to 4GB)
    • Blackmagic RAW (.braw) direct video playback
    • Improved lens profile search box: Show favorites, show rating, validate aspect ratio and add settings presets there (copy your preset to camera_presets directory)
    • Always save render queue (so it's preserved after Gyroflow restart)
    • Removed Velocity dampened smoothing method (same result can be now achieved in Default method)
    • Actions after render queue is done (eg. shut down the computer)
    • Show timeline in full screen mode
    • Added "Original" to export size preset
    • Added a way to specify parallel renders in the render queue
    • Save separate file dialog locations for each type (video, lens, output directory, etc)
    • Added "Default file suffix" option
    • Official lens profiles for RunCam Thumb, ThumbPro and 5 Orange, and also Insta360 GO 2/Caddx Peanut
    • Added ability to rotate accelerometer separately
    • Include autosync settings in lens profiles, and add ability to run autosync on load
    • Added ability to do the autosync in render queue, either by default in lens profile, or from a preset (if preset contains lens profile with sync params)
    • Allow to use gravity vectors also for other integration methods (GoPro 9 and later)
    • Allow custom sync points timestamps
    • Added new gyro integration method (VQF)
    • Added mute status and playback speed to project files and to presets
    • Added CinemaDNG playback (sort of, colors are wrong, but it's enough for the autosync)
    • Show a warning when file format was detected, but gyro data is empty
    • Added more keyboard shortcuts
    • Added "Lens is asymmetrical" to calibrator
    • Added more lens models: OpenCV standard, Poly3, Poly5, PTLens (not used yet though)
    • Windows: set dark title bar in dark mode
    • Automatically switch to quaternions view if file only contains quaternions but not raw gyro
    • Allow setting custom output directory (in the bottom field "Output path" before dragging files), when you drag multiple files to the render queue directly
    • Added ability to reset all settings to default (at the bottom of Advanced)
    • Added all lens profiles submitted by the community
    • Renamed x264 -> H.264/AVC, and x265 -> H.265/HEVC
    • Updated ffmpeg from 5.0 to 5.1

    🐛 Bug fixes

    • Fixed crash if OpenCL can't find any devices
    • Fixed selecting device when the preferred one is first
    • Fixed missing icons on Linux
    • Fixed random issue with zooming not updated after loading a file
    • Fixed reading corrupt blackbox files
    • Fixed drawing chessboard on OpenGL
    • Fixed zero-copy preview when using VFR videos
    • Fixed horizon lock, trim range and background when adding .gyroflow file to the render queue
    • Fixed loading image sequences that don't start at 0
    • Fixed rolling shutter correction bug
    • Better calculation of initial offset when using rs-sync with large search size
    • Stop editing sync points, when deleting all of them
    • Fixed crash when autosyncing on some devices
    Source code(tar.gz)
    Source code(zip)
    Gyroflow-linux64.AppImage(173.15 MB)
    Gyroflow-linux64.tar.gz(48.13 MB)
    Gyroflow-mac-universal.dmg(71.67 MB)
    Gyroflow-windows64.zip(33.54 MB)
  • v1.1.0(Jun 15, 2022)

    ✨ Improvements

    • New accurate synchronization algorithm (huge thanks to @vpinch4!)
    • Stabilization with external gyro sources is now more accurate
    • It is now possible to select device used for processing and rendering
    • Reduced memory usage when doing autosync
    • Improved horizon lock for GoPro Hero 8
    • Added ability to load lens profile from gyro file metadata
    • Added support for transparent videos
    • Added ability to adjust zooming center
    • Included lens profiles submitted by the community
    • Added progress bar when loading gyro data
    • Added progress bar for calculating offsets
    • Added warning if rendering falls back to CPU encoder
    • Full screen mode by double clicking the video
    • Save panel sizes and menu opened states
    • Added an option to guess IMU orientation
    • Added advanced export settings:
      • Custom encoder parameters
      • Ability to preserve other tracks in the file (like timecode)
      • Padding trim range with black frames
      • Setting keyframe distance
    • Added ability to create settings preset
    • Added ability to apply selected settings to all items in render queue
    • Added ability to export .gyroflow file with processed gyro data (eg. for VFX)
    • Improved some ffmpeg error messages
    • New calibration pattern and improved lens calibration speed
    • Bumped Qt from 6.3.0 to 6.3.1

    🐛 Bug fixes

    • Fixed stabilizing files joined by Reelsteady Joiner
    • Fixed color range when exporting DNxHD on macOS
    • Fixed lens profile when editing an render queue item
    • Fixed loading presets
    • Fixed loading .gyroflow file in some cases
    • Keep rotation and scale when toggling stabilization
    • Fixed caching optical flow
    • Fixed loader that stays on after opening a video file sometimes
    • Fixed scrolling when opening menus at the bottom
    Source code(tar.gz)
    Source code(zip)
    Gyroflow-linux64.AppImage(171.74 MB)
    Gyroflow-linux64.tar.gz(46.72 MB)
    Gyroflow-mac-universal.dmg(69.23 MB)
    Gyroflow-windows64.zip(32.13 MB)
  • v1.0.1(May 5, 2022)

    ✨ Improvements

    • Added render queue
    • Added DNxHD export codec
    • Added support for GoPro Superview
    • macOS release is now signed, so it doesn't show warning about unknown deveolper anymore
    • Prevent system from going to sleep while rendering
    • Added new background mode - Margin with feather
    • .gyroflow files can now act as presets and can be used to load only specific sections (eg. only stabilization settings, or only export settings)
    • Optimized memory usage when doing autosync
    • Added all lens profiles uploaded by users
    • Improved Default smoothing algorithm (former Default v2.0 beta)
    • Improved startup time
    • Added more keyboard shortcuts
    • Pause playback before rendering
    • Improved lens profile search field
    • Improved .gyroflow files to include more settings
    • Added more pixel formats for direct processing (results in faster rendering time in these cases)
    • Save window position and size in settings
    • Added preview while dragging trim range
    • Scroll timeline when dragging the trim range outside visible area
    • Added ability to hide rendering progress (it'll be rendered in render queue in background)
    • Bump Qt from 6.2.3 to 6.3.0

    🐛 Bug fixes

    • Fixed GPU detection on some devices
    • Fixed color issues when rendering GoPro videos to ProRes on macOS
    • Fixed YUV420P rendering with VideoToolbox
    • Fixed Horizon lock for GoPro Hero 9 and 10
    • Fixed RunCam 5 Orange XV mode
    • Fixed framerate in rendered files
    • Fixed ArduPilot log detection
    • Fixed broken audio in some rendered files
    • Fixed output bitrate with some encoders
    • Fixed artifacts on Windows with XAVC 4:2:2 10-bit videos
    • Fixed loading Insta360 OneRS files
    • Fixed stabilization for some Hero 8/9/10 videos
    • Fixed loading damaged .mp4 files
    • Fixed loading magnetometer data
    • Fixed keyboard shortcuts
    • Fixed rendering image sequence to video
    • Fixed autosync when accelerometer is empty in some videos
    • Fixed looping at the end of video
    • Loader no longer stays visible after autosyncing in some cases
    • Fixed dynamic zooming not working properly on some videos
    Source code(tar.gz)
    Source code(zip)
    Gyroflow-linux64.AppImage(171.14 MB)
    Gyroflow-linux64.tar.gz(46.10 MB)
    Gyroflow-mac-universal.dmg(68.25 MB)
    Gyroflow-windows64.zip(31.20 MB)
  • v1.0.0-rc5(Mar 8, 2022)

    🐛 Bug fixes

    • Fixed pixel artifacts in render output on some devices
    • Improved rendering speed on Intel macOS
    • Fixed inaccurate dynamic zoom with some lens profiles
    • Fixed space shortcut to play/pause
    • Zero-copy GPU preview is less experimental now
    • Fixed freeze when trying to autosync some files on macOS with GPU decoding enabled

    ✨ Improvements

    • Customizable lens distortion strength
    • Hardware accelerated ProRes encoding (macOS only)
    • Basic support for image sequences
    • Added two new background modes: Repeat or mirror edge pixels
    • Added gyro bias estimation
    • Added fps to the rendering/analyzing progress bar
    • Added OpenEXR sequence output format
    • Added output size presets
    • Added progress on taskbar on Windows
    Source code(tar.gz)
    Source code(zip)
    Gyroflow-linux64.AppImage(169.13 MB)
    Gyroflow-linux64.tar.gz(44.04 MB)
    Gyroflow-mac-universal.dmg(62.98 MB)
    Gyroflow-windows64.zip(28.89 MB)
  • v1.0.0-rc4(Feb 22, 2022)

    🐛 Bug fixes:

    • Fixed render quality
    • Fixed slow rendering of certain files
    • Fixed audio offset in the exported file when using trim range
    • Fixed audio tearing in certain files
    • Fixed fps in rendered file
    • Greatly reduced CPU usage when idle
    • Fixed crash when loading HEVC videos on Windows and older graphic cards
    • Fixed loading lens profile when GoPro was used only as motion data
    • Fixed selecting default integration method for GoPro HERO 8+
    • Fixed offset interpolation near start and end of the video
    • Fixed timeline chart gyro lines when there's little data
    • Fixed calibration of 8k videos
    • Fixed pressing space to play/pause
    • Fixed dynamic zooming when changing offsets
    • Fixed loading .gyroflow file for GoPro HERO 8+
    • Fixed loading frame readout time from .gyroflow file
    • Fixed disappearing optical flow points after preview resolution change

    ✨ Improvements

    • Better error messages
    • Added output file dialog
    • Don't show unofficial lens warning when loaded from file
    • Added new version of default smoothing algorithm
    • Added support for Insta360 Go, Runcam Thumb, Mobius Maxi 4K, Hawkeye Firefly X Lite, ArduPilot *.log files
    • Added support for more mobile apps for logging gyro
    • Added UI scaling option
    • Default LPF is 50 Hz now instead of 0
    • When GPU encoder doesn't support the input pixel format, ask if user wants to convert or use CPU
    • Added support for rendering with transparent borders to PNG and ProRes 4444
    • Double click on label to reset slider value to default
    • Don't move timeline cursor on right click near pleayhead
    • Added logging to file and automatic crash reporting
    • Updated translations

    Note: rendering will be slightly slower now because of improved render quality.

    Source code(tar.gz)
    Source code(zip)
    Gyroflow-linux64.AppImage(168.84 MB)
    Gyroflow-linux64.tar.gz(43.76 MB)
    Gyroflow-mac-universal.dmg(63.01 MB)
    Gyroflow-windows64.zip(28.63 MB)
  • v1.0.0-rc3(Feb 12, 2022)

  • v1.0.0-rc2(Feb 8, 2022)

    🐛 Bug fixes:

    • Fixed rendering issues with NVIDIA, AMD, Intel GPUs
    • Fixed OpenCL initialization errors
    • Fixed loading blackbox files
    • Fixed rendering videos where video track is not the first one (eg. DJI Air Unit)
    • Fixed setting output size when reloaded the video
    • Fixed gyro rotation fields
    • Fixed FOV scaling when output resolution is changed
    • Fixed current zoom value when output resolution is changed
    • Fixed negative estimated time
    • Fixed close confirmation dialog
    • Fixed timeline gyro chart for long videos
    • Fixed initial video orientation
    • Fixed crash when entering low pass filter without video
    • Fixed text fields in Lens calibrator on export
    • Fixed uneven video information list with certain languages

    ✨ Improvements

    • ProRes encoding is now much faster
    • Double click to clear the trim range
    • Added context menu to sliders to reset the value to default
    • Added timeline panning with middle mouse button
    • Added more keyboard shortcuts
    • Added focus indicators so you can now navigate the UI with Tab
    • Added horizon lock to every smoothing algorithm with option to change the amount of horizon-locking
    • Added .gcsv format parser
    • Updated translations
    • Gyroflow now loads system language by default if we have it

    🚧 Known issues:

    • Rendering on certain MacOS devices is still slow, will be fixed in rc3
    Source code(tar.gz)
    Source code(zip)
    Gyroflow-linux64.AppImage(168.61 MB)
    Gyroflow-linux64.tar.gz(43.53 MB)
    Gyroflow-mac-universal.dmg(62.61 MB)
    Gyroflow-windows64.zip(28.41 MB)
  • v1.0.0-rc1(Feb 4, 2022)

    First release candidate of Gyroflow v1.0.0

    Watch the trailer: https://youtu.be/QR-SINyvNyI

    Docs can be found at https://docs.gyroflow.xyz

    System requirements:

    • Windows 10 64-bit (1809 or later)
    • macOS 10.14 or later (both Intel and Apple Silicon are supported natively)
    • Linux:
      • .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 everywhere
      • Make sure you have latest graphics drivers installed
      • Possibly needed packages: sudo apt install libva2 libvdpau1 libasound2 libxkbcommon0 libpulse0 libc++-dev vdpau-va-driver libvulkan1
      • GPU specific packages:
        • NVIDIA: nvidia-opencl-icd nvidia-vdpau-driver nvidia-egl-icd nvidia-vulkan-icd libnvcuvid1 libnvidia-encode1
        • Intel: intel-media-va-driver i965-va-driver beignet-opencl-icd intel-opencl-icd
        • AMD: mesa-vdpau-drivers mesa-va-drivers mesa-opencl-icd libegl-mesa0 mesa-vulkan-drivers
    Source code(tar.gz)
    Source code(zip)
    Gyroflow-linux64.AppImage(168.49 MB)
    Gyroflow-linux64.tar.gz(43.43 MB)
    Gyroflow-mac-universal.dmg(62.43 MB)
    Gyroflow-windows64.zip(28.32 MB)
Owner
Gyroflow
Tools for Advanced Video Stabilization
Gyroflow
Lumiere is a proof-of-concept/example video player built with the Slint UI framework and libmpv

Lumiere is a proof-of-concept/example video player built with the Slint UI framework and libmpv. This was built quickly to try out Slint and it's new OpenGL underlay feature.

Valerian G. 25 Nov 21, 2022
Rust-based video player for astrophotography

Astro Video Player Rust-based video player for astrophotography videos in SER and AVI format. Supports debayering of RAW color images. Status: Works w

Andy Grove 6 May 7, 2022
Detect timestamp of all scene changes in video

detect-scene-change detect timestamp of all scene changes in video Usage

soruly 6 Feb 26, 2022
A small utility to cast video files from a desktop to a chromecast.

μCaster (mucaster) Once completed, μCaster is a cross-platform Chromecast controller that can play files directly from a host computer. This project i

Jayden Dumouchel 4 Oct 10, 2022
Yet another video to ASCII animation (in Rust)

Yet another video to ASCII tool (in Rust) Requirements opencv Installation cargo install video2ascii You may also want to add

jwnhy 42 Dec 28, 2022
Media Cleaner is a simple CLI tool to clean up your media library based on your Overseerr requests and Tautulli history, written in Rust.

Media Cleaner Media Cleaner is a simple CLI tool to clean up your media library based on your Overseerr requests and Tautulli history, written in Rust

Felix Bjerhem Aronsson 21 Mar 22, 2023
The objective of this mini-project is to create a command line application to manage a collection of multimedia files

Gestionnaire de fichiers multimédia L’objectif de ce mini-projet est de créer une application en ligne commande pour gérer une collection de fichiers

Bynawers 0 Mar 11, 2022
Plays back videos in your terminal in an insanely slow and inefficient way.

term-video I guess this is usable now... Compilation Since this project is built using Rust, install its toolchain first, for example using rustup. gi

Pascal Puffke 7 Feb 23, 2022
Play your favorite live streams from command line

Streamlib Streamlib is a meta-player for media streams. The streamlib CLI works against a curated library of video and audio streams, and enables quer

Streamlib 27 Jul 4, 2021
The fastest and safest AV1 encoder.

rav1e The fastest and safest AV1 encoder. Table of Content Overview Features Documentation Releases Building Dependency: NASM Release binary Unstable

Xiph.Org Foundation 3k Jan 3, 2023
A CLI tool that converts videos to ASCII and displays them to the terminal on the fly

A CLI tool that converts videos to ASCII and displays them to the terminal on the fly

Luke T 19 Nov 15, 2022
Xiu - A simple and secure live media server in pure Rust (RTMP/HTTP-FLV/HLS/Relay).🦀

Xiu is a simple and secure live media server written by pure Rust, it now supports popular live protocols like RTMP/HLS/HTTP-FLV (and maybe other protocols in the future), you can deploy it as a stand-alone server or a cluster using the relay feature.

HarlanC 602 Jan 2, 2023
Motion graphics creation tool in Bevy. (Highly inspired by Motion Canvas and Manim)

Bevy MotionGfx Bevy Motiongfx is a motion graphics creation tool in Bevy. It is highly inspired by Motion Canvas & Manim. Goal The goal of this tool i

Nixon 3 Nov 6, 2023
Motion detection & video recording software based on OpenCV, built for research on Bumblebees

BombusCV Motion detection & video recording software based on OpenCV, built for research on Bumblebees (hence the name). Index Use case Examples Insta

Marco Radocchia 7 Dec 27, 2022
A fast rendezvous in rust where data can optionally be swapped between the two threads.

rendezvous_swap A rendezvous is an execution barrier between a pair of threads, but this crate also provides the option of swapping data at the synchr

Erik 5 Mar 17, 2023
A video player for your terminal that generates a standalone executable that plays your video.

Szmelc Player Szmelc Player is a program that converts any video you give it to a standalone executable that plays the video in the terminal. It uses

null 1 Jan 9, 2022
This is a lightweight audio-video player built in Rust using FFmpeg libraries. It demonstrates the usage of FFmpeg with Rust to play back video files.

FFmpeg Rust Video Player This is a lightweight audio-video player built in Rust using FFmpeg libraries. It demonstrates the usage of FFmpeg with Rust

Jenin Sutradhar 3 Apr 10, 2024
CLI for video images. Generates animated video contact sheets fast.

vimg CLI for video images. Generate animated video contact sheets fast. Uses ffmpeg. Note: Support for animated avif isn't everywhere yet, try viewing

Alex Butler 4 Mar 12, 2023
Brotli compressor and decompressor written in rust that optionally avoids the stdlib

rust-brotli What's new in 3.2 into_inner conversions for both Reader and Writer classes What's new in 3.0 A fully compatible FFI for drop-in compatibi

Dropbox 659 Dec 29, 2022
A typemap for a set of known types optionally without heap allocation, and supporting iterating by traits

fixed_typemap docs.rs GitHub Sponsors Implements typemaps that support a lot of extra funcctionality using procedural macros. docs.rs has a lot more t

Austin Hicks 2 Dec 27, 2021