ClassicOldSong/Apollo

GitHub: ClassicOldSong/Apollo

一个自托管的低延迟流媒体主机,支持硬件编码与虚拟显示器,解决本地网络内高质量云游戏与投屏需求。

Stars: 8996 | Forks: 264

# Apollo Apollo 是一个自托管桌面流媒体主机,用于 [Artemis(Moonlight Noir)](https://github.com/ClassicOldSong/moonlight-android)。提供低延迟、原生客户端分辨率,支持 AMD、Intel 和 Nvidia GPU 的硬件编码以实现云游戏服务器功能,同时也提供软件编码选项。提供网页 UI,允许通过您喜爱的网页浏览器进行配置和客户端配对。可从本地服务器或任何移动设备进行配对。 主要功能: - [x] 内置虚拟显示器,支持 HDR,并自动匹配客户端的分辨率/帧率配置 - [x] 客户端权限管理 - [x] 剪贴板同步 - [x] 客户端连接/断开命令(查看 [自动暂停/恢复游戏](https://github.com/ClassicOldSong/Apollo/wiki/Auto-pause-resume-games)) - [x] 仅输入模式 ## 用法 目前请参考 LizardByte 在 [Read the Docs](https://docs.lizardbyte.dev/projects/sunshine) 上托管的文档。 目前虚拟显示器支持仅限于 Windows,Linux 支持计划中,未来将实现。 ## 关于权限系统 查看 [Wiki](https://github.com/ClassicOldSong/Apollo/wiki/Permission-System) ## 关于虚拟显示器 Apollo 使用 SudoVDA 作为虚拟显示器。它具备自动分辨率和帧率匹配功能,适用于您的 Artemis/Moonlight 客户端。虚拟显示器在流媒体启动时创建,应用退出时移除。**如果在流媒体开始或停止时没有看到新的虚拟显示器添加或移除,可能是驱动配置错误,或者仍有其他活动的虚拟显示器存在。** 虚拟显示器的工作方式与任何物理连接的显示器相同,使用 SudoVDA 完全无需依赖复杂的方案来“修复”设备分辨率配置。与所有复用同一标识或每次生成随机标识的虚拟显示解决方案不同,**Apollo 为每个 Artemis/Moonlight 客户端分配固定标识,因此您的显示配置将被 Windows 原生记忆和管理。** ## 双 GPU 笔记本电脑配置 Apollo 支持双 GPU 无缝切换。 若要使用独立显卡(dGPU),请将 `Adapter Name` 设置为您的 dGPU 并启用 `Audio/Video` 选项卡中的 `Headless mode`,保存并重启计算机。不再需要虚拟插头,图像将直接从独立显卡渲染和编码。 ## 关于 HDR HDR 支持从 Windows 11 23H2 开始,通常在 24H2 上得到支持。部分系统在 23H2 上可能没有 HDR 切换选项,您只需升级到 24H2。任何低于 23H2/Windows 10 的系统将无法使用 HDR 选项。 HDR 流媒体效果是否良好,完全取决于客户端。 简而言之,在流媒体 HDR 时,色彩校正(ICC)应完全无用。HDR 内容正确显示是客户端的责任,而非主机。但实际上,它会影响到捕获的视频流,并在能够正确处理 HDR 的设备上反映变化。在无法正确处理的设备上,这些信息会被完全忽略。 为什么 HDR 是个大麻烦,以及为何开启 HDR 会让图像看起来发暗/发黄,解释起来非常复杂。如果您第一次成功获得 HDR 流媒体体验,但觉得效果糟糕,那是正确的,但这并非 Apollo 的错,而是您的设备将 SDR 内容进行了色调映射,以匹配屏幕的最大亮度能力,超出实际峰值亮度后就没有余量来呈现 HDR。对于详细说明,请参考 [这里](https://github.com/ClassicOldSong/Apollo/issues/164)。 对于客户端设备,通常具备 HDR 能力的 Apple 产品可以信赖会有良好效果,除此之外,效果如何就看运气了。
DEPRECATION ALERT 目前**不推荐**在任何流媒体解决方案中启用 HDR,可能是长期趋势。HDR 本身问题巨大,存在大量半兼容标准,且设备配置与能力差异显著。游戏对 HDR 的支持仍不稳定。 SDR 实际上能提供更稳定的色彩准确性,并在大多数设备上得到广泛支持。对于游戏,艺术风格可以在没有 HDR 的情况下轻松弥补短板,SDR 有标准化的工作流程来确保视觉表现。因此,HDR 并不是那么重要。
## 如何为多个虚拟显示器运行多个 Apollo 实例 请遵循 [Wiki](https://github.com/ClassicOldSong/Apollo/wiki/How-to-start-multiple-instances-of-Apollo) 中的说明。 ## 常见问题解答 已移至 [WiKi](https://github.com/ClassicOldSong/Apollo/wiki/FAQ) ## 卡顿诊所 以下是一些常见卡顿原因及解决方案:[WiKi](https://github.com/ClassicOldSong/Apollo/wiki/Stuttering-Clinic)。 ## 设备特定设置 - Pixel 设备可能无法使用原生分辨率: - 将设备分辨率更改为最大: https://github.com/ClassicOldSong/Apollo/issues/700 ## 系统要求 **最低要求** | **组件** | **描述** | |---------------|-----------------| | GPU | AMD: VCE 1.0 或更高版本,参见:[obs-amd 硬件支持](https://github.com/obsproject/obs-amd-encoder/wiki/Hardware-Support) | | | Intel: VAAPI 兼容,参见:[VAAPI 硬件支持](https://www.intel.com/content/www/us/en/developer/articles/technical/linuxmedia-vaapi.html) | | | Nvidia: 启用了 NVENC 的显卡,参见:[nvenc 支持矩阵](https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new) | | CPU | AMD: Ryzen 3 或更高版本 | | | Intel: Core i3 或更高版本 | | RAM | 4GB 或更多 | | OS | Windows: 10+(Windows Server 需要 [手动安装](https://github.com/nefarius/ViGEmBus/issues/153) 以支持游戏手柄) | | | macOS: 12+ | | | Linux/Debian: 11 (bullseye) | | | Linux/Fedora: 39+ | | | Linux/Ubuntu: 22.04+ (jammy) | | Network | 主机:5GHz,802.11ac | | | 客户端:5GHz,802.11ac | **4K 建议** | **组件** | **描述** | |---------------|-----------------| | GPU | AMD: 视频编码引擎 3.1 或更高版本 | | | Intel: HD Graphics 510 或更高版本 | | | Nvidia: GeForce GTX 1080 或更高版本 | | CPU | AMD: Ryzen 5 或更高版本 | | | Intel: Core i5 或更高版本 | | Network | 主机:CAT5e 以太网或更优 | | | 客户端:CAT5e 以太网或更优 | **HDR 建议** | **组件** | **描述** | |---------------|-----------------| | GPU | AMD: 视频编码引擎 3.4 或更高版本 | | | Intel: UHD Graphics 730 或更高版本 | | | Nvidia: Pascal 架构 GPU(GTX 10 系列)或更高版本 | | CPU | AMD: todo | | | Intel: todo | | Network | 主机:CAT5e 以太网或更优 | | | 客户端:CAT5e 以太网或更优 | ## 集成 SudoVDA:虚拟显示适配器驱动程序,用于 Apollo [Artemis](https://github.com/ClassicOldSong/moonlight-android):从客户端侧集成虚拟显示选项控制 **注意**:Artemis 目前仅支持 Android,其他平台后续将支持。 ## 支持 目前仅通过 GitHub Issues/Discussions 提供支持。 不会为 Apollo 和 Artemis 提供实时聊天支持,包括但不限于: - Discord - Telegram - Whatsapp - QQ - WeChat ## 下载 ### 直接下载 **推荐** [发行版](https://github.com/ClassicOldSong/Apollo/releases) ### WinGet **注意**:社区维护 在提升权限的 PowerShell 窗口中运行 ``` winget install ClassicOldSong.Apollo ``` 您需要先安装 WinGet。 ### Chocolatey **注意**:社区维护 您也可以通过 Chocolatey 安装 Apollo 流媒体服务器。 如果您尚未安装 Chocolatey,请先安装,然后在一个提升权限的 PowerShell/CMD 窗口中运行以下命令: ``` choco upgrade apollo -y ``` 相同的命令可用于升级,并添加到计划任务以自动化更新。 更多关于 Chocolatey 包的详细信息请参考[这里](https://community.chocolatey.org/packages/apollo)。 ## 免责声明 我因帮助他人而被 Moonlight 和 Sunshine 的 Discord 服务器踢出,并被 Sunshine 的 GitHub 仓库实际禁止。 这就是我因为发现一个错误、打开一个问题、得不到回应、自行排查并修复问题、通过 PR 将成果共享到主仓库、希望我的努力能帮助他人渡过维护空窗期而得到的回报。 是的,我要离开了。[Apollo](https://github.com/ClassicOldSong/Apollo) 和 [Artemis(Moonlight Noir)](https://github.com/ClassicOldSong/moonlight-android) 最终将不再兼容 OG Sunshine 和 OG Moonlight,但它们将具备更精心设计的特性效果会更好。 Moonlight 仓库已保持沉默 5 个月,没有人真正回应问题,除了 Discord 服务器中有限的 FAQ 外,用户得不到任何帮助。我曾尝试回答问题、解决力所能及的问题,但仅仅因为帮助他人就被踢出。 **欢迎提交功能改进的 PR,这与主仓库不同,您的想法更有可能受到重视,您的努力也会真正得到尊重。我们欢迎那些能够并且愿意分享自己努力的人,帮助自己,也帮助其他有需要的人。** **更新**:他们联系了我并为此道歉,但这一事件的发生仍然促使我启动了自己的分支。 ## 许可证 GPLv3
标签:AMD, Apollo, Artemis, GPU编码, HDR, Intel, Moonlight, Nvidia, SudoVDA, Sunshine fork, TCP SYN 扫描, Web UI, 云端游戏, 低延迟, 分辨率匹配, 剪贴板同步, 可视化界面, 客户端配对, 屏幕投射, 权限管理, 桌面流主机, 模型越狱, 流媒体, 硬件加速, 自托管, 虚拟显示器, 软件编码