moonlight-qt:基于 Qt 的游戏串流客户端项目

用户可通过该项目在 PC 上远程串流游戏,支持 NVIDIA GameStream 和 Sunshine。具备硬件加速解码、多 codec 支持、HDR 及 7.1 环绕声,支持游戏手柄与多点触控,兼顾游戏与远程桌面场景。【此简介由AI生成】

分支1Tags1
文件最后提交记录最后更新时间
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前

Moonlight PC

Moonlight PC 是一款专为 NVIDIA GameStream 和 Sunshine 设计的开源 PC 客户端。

Moonlight 还提供移动端版本,支持 AndroidiOS

您可以通过我们的 Discord 服务器 关注开发动态,或在 Weblate 上协助将 Moonlight 翻译成您的语言。

AppVeyor 构建状态
下载量
翻译进度

功能特性

  • Windows、Mac 和 Linux 平台的硬件加速视频解码
  • 支持 H.264、HEVC 和 AV1 编解码器(AV1 需 Sunshine 及兼容的主机 GPU)
  • YUV 4:4:4 支持(仅限 Sunshine)
  • HDR 流媒体支持
  • 7.1 环绕声音频支持
  • 10 点触控支持(仅限 Sunshine)
  • 游戏手柄支持,最多 16 名玩家的力反馈与体感控制
  • 同时支持指针捕获(游戏场景)和直接鼠标控制(远程桌面场景)
  • 可传递系统级键盘快捷键(如 Alt+Tab)至主机

下载

特别鸣谢

托管方:Cloudsmith

Moonlight 的 Debian 和 L4T 软件包仓库由 Cloudsmith 免费提供托管支持。

构建指南

Windows 构建要求

  • Qt 6.7 SDK 或更高版本(早期版本可能兼容但不官方支持)
  • Visual Studio 2022(社区版即可)
  • 安装 Qt 时选择 MSVC 选项(不支持 MinGW)
  • 7-Zip(仅限为非开发机构建安装包时需要)
  • 图形工具(仅调试构建需要)
    • 在 Windows 设置的"可选功能"页面安装"图形工具"
    • 或运行 dism /online /add-capability /capabilityname:Tools.Graphics.DirectX~~~~0.0.1.0 后重启

macOS 构建要求

  • Qt 6.7 SDK 或更高版本
  • Xcode 14 或更高版本
  • create-dmg(仅限为非开发 Mac 构建 DMG 时需要)

Linux/Unix 构建要求

  • 推荐 Qt 6,但 Qt 5.9 及以上版本也支持(使用 Qt 5 时将 qmake6 替换为 qmake
  • GCC 或 Clang
  • FFmpeg 4.0 或更高版本
  • 安装依赖包:
    • Debian/Ubuntu:
      • 基础依赖:libegl1-mesa-dev libgl1-mesa-dev libopus-dev libsdl2-dev libsdl2-ttf-dev libssl-dev libavcodec-dev libavformat-dev libswscale-dev libva-dev libvdpau-dev libxkbcommon-dev wayland-protocols libdrm-dev
      • Qt 6(推荐):qt6-base-dev qt6-declarative-dev libqt6svg6-dev qml6-module-qtquick-controls qml6-module-qtquick-templates qml6-module-qtquick-layouts qml6-module-qtqml-workerscript qml6-module-qtquick-window qml6-module-qtquick
      • Qt 5:qtbase5-dev qt5-qmake qtdeclarative5-dev qtquickcontrols2-5-dev qml-module-qtquick-controls2 qml-module-qtquick-layouts qml-module-qtquick-window2 qml-module-qtquick2 qtwayland5
    • RedHat/Fedora(需 RPM Fusion 仓库):
      • 基础依赖:openssl-devel SDL2-devel SDL2_ttf-devel ffmpeg-devel libva-devel libvdpau-devel opus-devel pulseaudio-libs-devel alsa-lib-devel libdrm-devel
      • Qt 6(推荐):qt6-qtsvg-devel qt6-qtdeclarative-devel
      • Qt 5:qt5-qtsvg-devel qt5-qtquickcontrols2-devel
  • 构建 Vulkan 渲染器需 libplacebo-dev/libplacebo-devel 版本不低于 v7.349.0 且 FFmpeg 6.1 或更高
  • 构建系统中已克隆 Steam Link SDK
  • 设置 STEAMLINK_SDK_PATH 环境变量指向 Steam Link SDK 路径

构建步骤

  1. https://www.qt.io/download 安装最新 Qt SDK(可选安装 Qt Creator IDE)
    • macOS 可通过 Homebrew 安装 Qt,但需使用 brew install qt --with-debug 以支持调试构建
    • Linux 发行版若提供 Qt 5.9 及以上版本包,可直接使用系统包管理器安装
    • Steam Link 构建无需此步骤,因其 SDK 已包含 Qt 5.14
  2. moonlight-qt/ 目录运行 git submodule update --init --recursive
  3. 使用 Qt Creator 打开项目或通过命令行 qmake 构建
    • 为非开发机构建:使用 scripts 文件夹中的脚本
      • Windows:在 Qt 命令行中执行 scripts\build-arch.batscripts\generate-bundle.bat,需确保 7-Zip 可执行目录在 %PATH%
      • macOS:执行 scripts/generate-dmg.sh,确保 Qt 的 bin 目录在 $PATH
      • Steam Link:执行根目录的 scripts/build-steamlink-app.sh
    • macOS/Linux 开发构建:运行 qmake6 moonlight-qt.pro 后执行 make debugmake release
    • 嵌入式设备专用构建:使用 qmake6 "CONFIG+=embedded" moonlight-qt.pro 后正常构建
      • 此构建将移除窗口模式、Discord/帮助链接等嵌入式设备不需要的功能
      • GPU 性能较弱平台可添加 "CONFIG+=gpuslow" 优先使用 KMSDRM 直接渲染(而非 GL/Vulkan 渲染器),利用专用 YUV/RGB 转换和缩放硬件加速

贡献指南

  1. 复刻项目
  2. 编写代码
  3. 提交合并请求

访问我们的官方网站获取项目链接与详细信息。

项目介绍

用户可通过该项目在 PC 上远程串流游戏,支持 NVIDIA GameStream 和 Sunshine。具备硬件加速解码、多 codec 支持、HDR 及 7.1 环绕声,支持游戏手柄与多点触控,兼顾游戏与远程桌面场景。【此简介由AI生成】

定制我的领域