gyroflow

gyroflow

先进的视频稳定技术 利用陀螺仪数据实现精确平滑

Gyroflow是一款开源视频稳定应用程序,利用陀螺仪和加速度计数据实现精确稳定。支持多种相机内置运动数据,提供实时预览、GPU处理和滚动快门校正。通过OpenFX插件和Final Cut Pro效果,可在编辑软件中直接应用稳定。Gyroflow跨平台兼容,支持多种视频格式和高帧率,适合各类视频创作需求。

Gyroflow视频稳定陀螺仪数据开源项目跨平台Github
<p align="center"> <h1 align="center"> <a href="https://github.com/gyroflow/gyroflow#gh-light-mode-only"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/a9abc23f-b693-4317-82fc-c37504375d2a.svg" alt="Gyroflow标志" height="100"> </a> <a href="https://github.com/gyroflow/gyroflow#gh-dark-mode-only"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/91c03e9e-8472-410a-b41e-383064973e69.svg" alt="Gyroflow标志" height="100"> </a> </h1> <p align="center"> 使用陀螺仪数据进行视频稳定 <br/> <br/> <a href="https://gyroflow.xyz">主页</a> • <a href="https://github.com/gyroflow/gyroflow/releases">下载</a> • <a href="https://docs.gyroflow.xyz">文档</a> • <a href="https://discord.gg/WfxZZXjpke">Discord</a> • <a href="https://github.com/gyroflow/gyroflow/issues">报告问题</a> • <a href="https://github.com/gyroflow/gyroflow/issues">请求功能</a> </p> <p align="center"> <a href="https://github.com/gyroflow/gyroflow/releases"> <img src="https://img.shields.io/github/downloads/gyroflow/gyroflow/total" alt="下载量"> </a> <a href="https://github.com/gyroflow/gyroflow/graphs/contributors"> <img src="https://img.shields.io/github/contributors/gyroflow/gyroflow?color=dark-green" alt="贡献者"> </a> <a title="Crowdin" target="_blank" href="https://crowdin.com/project/gyroflow"><img src="https://yellow-cdn.veclightyear.com/0a4dffa0/8723c5d5-7b40-46c2-a566-597f28d2ef7d.svg"> </a> <a href="https://github.com/gyroflow/gyroflow/issues/"> <img src="https://img.shields.io/github/issues/gyroflow/gyroflow" alt="问题"> </a> <a href="https://github.com/gyroflow/gyroflow/blob/master/LICENSE"> <img src="https://img.shields.io/github/license/gyroflow/gyroflow" alt="许可证"> </a> </p> </p>

关于项目

Gyroflow是一个应用程序,它可以使用来自陀螺仪和可选的加速度计的运动数据来稳定你的视频。现代相机内部会记录这些数据(GoPro、Sony、Insta360等),而这个应用程序通过使用这些数据来精确地稳定捕获的画面。它还可以使用来自外部源的陀螺仪数据(例如来自Betaflight黑匣子的数据)。

预告片/效果视频

截图

<p align="center"> <a href="resources/comparison1.mp4"><img src="https://yellow-cdn.veclightyear.com/0a4dffa0/0c3d5c54-bcf3-4c00-8d5e-65fbabb37fec.gif" height="200"></a> <a href="resources/comparison2.mp4"><img src="https://yellow-cdn.veclightyear.com/0a4dffa0/6ba7e89a-d775-49e6-a30a-a59cd50296cb.gif" height="200"></a> </p>

功能

  • 实时预览、参数调整和所有计算
  • GPU处理和渲染,所有算法都是多线程的
  • 卷帘快门校正
  • 支持已经稳定的GoPro视频(使用Hypersmooth拍摄)(Hero 8及以上)
  • 支持并渲染10位视频(常规编解码器最高支持16位4:4:4:4,OpenEXR支持32位浮点 - 直接在YUV数据上工作以保持最高质量)
  • 可自定义镜头校正强度
  • 渲染队列
  • 关键帧
  • 能够创建自定义设置预设
  • OpenFX插件(例如用于DaVinci Resolve),允许你在视频编辑器中应用稳定而无需任何转码
  • Gyroflow Toolbox - 一个Final Cut Pro效果,允许你导入Gyroflow项目而无需转码
  • 带有陀螺仪数据的可视化图表(可以显示陀螺仪、加速度计、磁力计和四元数)
  • 平滑四元数的可视化显示
  • 现代响应式用户界面,带有深色和浅色主题
  • 自适应缩放(动态裁剪)
  • 支持图像序列(PNG、OpenEXR、CinemaDNG)
  • 基于telemetry-parser - 开箱即支持所有陀螺仪源
  • 陀螺仪低通滤波器、任意旋转(俯仰、横滚、偏航角度)和方向
  • 多种陀螺仪积分方法用于确定方向
  • 多种视频方向平滑算法,包括地平线水平和每轴平滑度调整
  • 跨平台 - 适用于Windows/Linux/Mac/Android/iOS
  • 多种UI语言
  • 支持可变和高帧率视频,所有计算都基于时间戳进行
  • H.264/AVC、H.265/HEVC、ProRes、DNxHD、CineForm、PNG和OpenEXR输出,H.264和H.265完全GPU加速(ProRes在Apple Silicon上也加速)
  • 自动镜头校准过程
  • 完全零拷贝GPU预览渲染
  • 核心引擎是一个没有外部依赖的独立库(无Qt、无ffmpeg、无OpenCV),可用于创建OpenFX和Adobe插件(在待办事项列表中)
  • 自动更新镜头配置文件数据库
  • 内置官方镜头配置文件,适用于GoPro:HERO 6、7、8、9、10、11、12;RunCam:Thumb、ThumbPro、5 Orange;Insta360:GO 2、GO 3的所有拍摄模式

支持的陀螺仪数据源

  • GoPro (HERO 5及以后机型)
  • 索尼 (a1, a7c, a7r V, a7 IV, a7s III, a9 II, a9 III, FX3, FX6, FX9, RX0 II, RX100 VII, ZV1, ZV-E10, ZV-E1, a6700)
  • Insta360 (OneR, OneRS, SMO 4k, Go, GO2, GO3, Caddx Peanut, Ace, Ace Pro)
  • 大疆 (Avata, Avata 2, O3 Air Unit, Action 2, Action 4)
  • Blackmagic RAW (*.braw)
  • RED RAW (V-Raptor, KOMODO) (*.r3d)
  • Betaflight黑匣子 (*.bfl, *.bbl, *.csv)
  • ArduPilot日志 (*.bin, *.log)
  • Gyroflow .gcsv日志
  • iOS应用: Sensor Logger, G-Field Recorder, Gyro, GyroCam
  • Android应用: Sensor Logger, Sensor Record, OpenCamera Sensors, MotionCam Pro
  • Runcam CSV (Runcam 5 Orange, iFlight GOCam GR, Runcam Thumb, Mobius Maxi 4K)
  • Hawkeye Firefly X Lite CSV
  • XTU (S2Pro, S3Pro)
  • WitMotion (WT901SDCL二进制和*.txt)
  • Vuze (VuzeXR)
  • KanDao (Obisidian Pro)
  • CAMM格式

未列出相机的信息

  • 对于内置陀螺仪的相机,请联系我们,我们将实现对该相机的支持。有关陀螺仪日志记录过程的信息,请参阅文档
  • 对于没有内置陀螺仪的相机,请考虑使用Betaflight飞控或查看我们的flowshutter项目。

安装

Windows

  • Releases页面下载Gyroflow-windows64.zip,将文件解压到某个位置,然后运行Gyroflow.exe
  • 如果显示有关VCRUNTIME140.dll的错误,请安装VC运行库

MacOS

  • Releases页面下载Gyroflow-mac-universal.dmg,运行下载的文件,并将Gyroflow应用拖放到应用程序文件夹(或任何你想要的位置,比如桌面)
  • 你也可以使用brew安装:brew install gyroflow。要升级Gyroflow,运行brew update然后brew upgrade gyroflow

Linux

  • Releases页面下载Gyroflow-linux64.tar.gz,将文件解压到某个位置,然后在终端中运行./Gyroflow
  • 如果不行,你可以尝试Gyroflow-linux64.AppImage,但首选.tar.gz版本。
  • 确保安装了最新的显卡驱动
  • 可能需要的包:sudo apt install libva2 libvdpau1 libasound2 libxkbcommon0 libpulse0 libc++-dev libvulkan1
  • GPU特定包:
    • NVIDIA:nvidia-opencl-icd nvidia-vaapi-driver 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

每日构建

最新开发版本始终可在此处获得:https://gyroflow.xyz/devbuild/。

最低系统要求:

  • Windows 10 64位(1809或更高版本)
    • 如果你使用Windows "N"版本,请转到设置 -> 应用 -> 可选功能 -> 添加功能 -> 启用媒体功能包
  • macOS 10.14或更高版本(Intel和Apple Silicon都原生支持)
  • Linux:
    • .tar.gz包(推荐):Debian 10+,Ubuntu 18.10+,CentOS 8.2+,openSUSE 15.3+。其他发行版需要glibc 2.28+(使用ldd --version检查)
    • .AppImage应该可以在任何地方运行
  • Android 6+

帮助和支持

对于一般支持和讨论,你可以在Gyroflow Discord服务器上找到开发人员和其他用户。

对于希望与团队私下联系以进行合作的公司或个人:devteam@gyroflow.xyz

测试数据

你可以从这里下载一些带有陀螺仪数据的视频片段:https://drive.google.com/drive/folders/1sbZiLN5-sv_sGul1E_DUOluB5OMHfySh?usp=sharing

路线图

查看未解决的问题列表,了解提议的功能和已知问题。 代码中还有大量的TODO注释。

视频编辑器插件

Gyroflow OpenFX插件可在这里获得。OpenFX插件已在DaVinci Resolve中测试。

Gyroflow Toolbox允许你将Gyroflow项目导入Final Cut Pro效果中。

计划开发Adobe After Effects插件,但尚未就绪。

贡献

贡献是开源社区成为如此令人惊叹的学习、激励和创造之地的原因。我们非常感谢任何贡献者。

  • 如果您对添加或删除功能有建议,欢迎开启一个议题来讨论。
  • 如果您想实现某个功能,可以fork这个项目,实现您的代码并开启一个拉取请求。

翻译

目前Gyroflow提供以下语言版本:

  • 英语(基础语言)
  • 简体中文(由DusKing1翻译)
  • 繁体中文(由DusKing1翻译)
  • 捷克语(由Jakub Ešpandr、VitroidFPV、davidazarian、Michael Kmoch翻译)
  • 丹麦语(由ElvinC翻译)
  • 芬兰语(由Jesse Julkunen翻译)
  • 法语(由KennyDorion翻译)
  • 加利西亚语(由Martín Costas翻译)
  • 德语(由GrommiNicecrash翻译)
  • 希腊语(由Stamatis Galiatsatos翻译)
  • 印度尼西亚语(由Aloysius Puspandono翻译)
  • 意大利语(由Rosario Casciello翻译)
  • 日语(由井上康翻译)
  • 韩语(由EP45翻译)
  • 挪威语(由MiniGodalexagv翻译)
  • 波兰语(由AdrianEddy翻译)
  • 巴西葡萄牙语(由KallelGaNewk翻译)
  • 葡萄牙语(由Ricardo Pimentel翻译)
  • 俄语(由Андрей Гурьянов、redstar01和lukdut翻译)
  • 斯洛伐克语(由Radovan Leitman和Eduard Petrovsky翻译)
  • 西班牙语(由Pelado-Mat翻译)
  • 土耳其语(由Metin Oktay Yılmaz翻译)
  • 乌克兰语(由Artem Alexandrov翻译)

帮助我们将Gyroflow翻译成您的语言!我们使用crowdin管理翻译,您可以在这里贡献:https://crowdin.com/project/gyroflow

我想贡献但不懂Rust或QML

开发

使用的语言和技术

Gyroflow使用Rust编写,UI使用QML编写。主程序使用QtffmpegOpenCVmdk-sdk外部依赖,但核心库是纯Rust编写的,没有任何外部依赖。

OpenCV的使用保持最小化,仅用于镜头校准和光流(src/core/calibration/mod.rssrc/core/synchronization/opencv.rs)。核心算法和去畸变不使用OpenCV。

GPU支持得益于Qt RHIwgpu,支持DirectXOpenGLMetalVulkan。 对于GPU处理,我们使用OpenCLwgpu,并有高度并行化的CPU实现作为后备。

代码结构

  1. 整个GUI在src/ui目录中
  2. src/controller.rs是UI和核心之间的桥梁,它接收来自QML的所有命令并调用核心中的函数
  3. src/core包含整个gyroflow引擎,不依赖于QtffmpegOpenCV是可选的
  4. src/rendering包含所有用于渲染最终视频和同步处理的FFmpeg相关代码
  5. src/core/gpu包含去畸变的GPU实现
  6. src/qt_gpu包含使用Qt RHI和GLSL计算着色器的零拷贝GPU去畸变路径
  7. src/gyroflow.rs是主入口点
  8. 每个目录中的mod.rslib.rs作为模块的主入口(目录名是模块名,mod.rs是入口点)

开发环境

Visual Studio Code配合rust-analyzer扩展。

对于QML工作,我建议使用Qt Creator并在那里加载所有QML文件,因为它有自动完成和语法高亮功能。 该项目还支持UI实时重载,这是一种超快速的UI工作方式。只需在gyroflow.rs中将live_reload = true,它就应该立即生效。现在每次更改任何QML文件时,应用程序都会立即重新加载。

在Windows上构建

  1. 先决条件:git7z和可用的powershell。如果你从未运行过powershell脚本,请以管理员身份在powershell中运行set-executionpolicy remotesigned
  2. 从以下地址获取最新稳定版Rust语言:https://rustup.rs/
    • 请确保在从Visual Studio安装程序安装C++构建工具时选中英语语言包选项
  3. 通过运行cargo install --force just安装Just
  4. 克隆仓库:git clone https://github.com/gyroflow/gyroflow.git
  5. 进入项目目录并:
    • 安装依赖:just install-deps
    • 编译并运行:just run

在MacOS上构建

  1. 先决条件:gitbrew
  2. 从以下地址获取最新稳定版Rust语言:https://rustup.rs/
  3. 通过运行cargo install --force just安装Just
  4. 克隆仓库:git clone https://github.com/gyroflow/gyroflow.git
  5. 进入项目目录并:
    • 安装依赖:just install-deps
    • 编译并运行:just run
    • 第一次运行时可能不会成功,运行一次just deploy然后just run就可以正常工作了

在 Linux 上构建

  1. 先决条件:git7zpythonapt 包管理器(如果使用其他发行版,请调整脚本中的命令)
  2. https://rustup.rs/ 获取最新稳定版 Rust 语言
  3. 通过运行 cargo install --force just 安装 Just
  4. 克隆仓库:git clone https://github.com/gyroflow/gyroflow.git
  5. 进入项目目录并:
    • 安装依赖:just install-deps
    • 编译并运行:just run

为 Android 构建

  1. 先决条件:git7z、可用的 powershell、Android SDK 和 NDK。Android 支持尚不完善,但应用可以构建并基本运行。目前仅支持在 Windows 上构建
  2. https://rustup.rs/ 获取最新稳定版 Rust 语言
  3. 通过运行 cargo install --force just 安装 Just
  4. 克隆仓库:git clone https://github.com/gyroflow/gyroflow.git
  5. 安装 Android SDK 和 NDK r23c,并更新 _scripts/android.just 中的路径
  6. 进入项目目录并:
    • 安装依赖:just android install-deps
    • 编译 apk 并安装到设备:just android deploy

为 iOS 构建

  1. 先决条件:gitbrew
  2. https://rustup.rs/ 获取最新稳定版 Rust 语言
  3. 通过运行 cargo install --force just 安装 Just
  4. 克隆仓库:git clone https://github.com/gyroflow/gyroflow.git
  5. 进入项目目录并:
    • 安装依赖:just ios install-deps
    • _scripts/ios.just 中更新团队 ID、签名密钥和配置文件
    • 编译并在设备上运行:just ios run

在 Windows 上进行性能分析

  1. 安装并运行 Visual Studio Community Edition
  2. 使用 profile 配置文件编译并运行 Gyroflow:just profile
  3. 在 Visual Studio 中,转到 调试 -> 性能分析器...
    • 目标 下,打开 更改目标 并选择 正在运行的进程...,选择正在运行的 gyroflow.exe 进程

QML 性能分析

  1. build.rs 中取消注释 config.define("QT_QML_DEBUG", None);
  2. gyroflow.rs 中注释掉 cli::run()
  3. 在调试模式下使用 QML 调试器参数运行:cargo run -- "-qmljsdebugger=port:1234,block,services:CanvasFrameRate,EngineControl,DebugMessages"
  4. 在 Qt Creator 中转到 分析 -> QML 分析器(附加到等待中的应用程序) 并输入端口 1234

许可证

根据带有 App Store 例外的 GPLv3 许可证分发。有关更多信息,请参阅 LICENSE

作为第 7 条下的附加许可,您可以通过应用商店分发 gyroflow_core,即使该商店有与 GPL 不兼容的限制性条款和条件,前提是源代码也可以在没有这些限制性条款和条件的渠道下,根据 GPL 获得,无论是否有此许可。

作者

  • AdrianEddy - Rust 实现的作者(本仓库中的代码),UI 作者,GPU 处理、滚动快门校正和高级渲染功能的作者
  • Elvin Chen - Python 版本的第一作者,为这一切成为可能奠定了基础

主要贡献者

致谢

编辑推荐精选

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

下拉加载更多