Apollo README

The project's README from github.com/ClassicOldSong/Apollo. As one markdown file: README.md.

Apollo

Apollo is a self-hosted desktop stream host for Artemis(Moonlight Noir). Offering low latency, native client resolution, cloud gaming server capabilities with support for AMD, Intel, and Nvidia GPUs for hardware encoding. Software encoding is also available. A web UI is provided to allow configuration and client pairing from your favorite web browser. Pair from the local server or any mobile device.

Major features:

Usage

Refer to LizardByte's documentation hosted on Read the Docs for now.

Currently Virtual Display support is Windows only, Linux support is planned and will be implemented in the future.

About Permission System

Check out the Wiki

[!NOTE] The FIRST client paired with Apollo will be granted with FULL permissions, then other newly paired clients will only be granted with View Streams and List Apps permission. If you encounter Permission Denied error when trying to launch any app, go check the permission for that device and grant Launch Apps permission. The same applies to the situation when you find that you can't move mouse or type with keyboard on newly paired clients, grant the corresponding client Mouse Input and Keyboard Input permissions.

About Virtual Display

[!WARNING] It is highly recommend to remove any other virtual display solutions from your system and Apollo/Sunshine config, to reduce confusions and compatibility issues.

[!NOTE] TL;DR Just treat your Artemis/Moonlight client like a dedicated PnP monitor with Apollo.

Apollo uses SudoVDA for virtual display. It features auto resolution and framerate matching for your Artemis/Moonlight clients. The virtual display is created upon the stream starts and removed once the app quits. If you do not see a new virtual display added or removed when the stream starts or stops, there may be a driver misconfiguration, or another persistent virtual display might still be active.

The virtual display works just like any physically attached monitors with SudoVDA, there's completely no need for a super complicated solution to "fix" resolution configurations for your devices. Unlike all other solutions that reuses one identity or generate a random one each time for any virtual display sessions, Apollo assigns a fixed identity for each Artemis/Moonlight client, so your display configuration will be automatically remembered and managed by Windows natively.

Configuration for dual GPU laptops

Apollo supports dual GPUs seamlessly.

If you want to use your dGPU, just set the Adapter Name to your dGPU and enable Headless mode in Audio/Video tab, save and restart your computer. No dummy plug is needed any more, the image will be rendered and encoded directly from your dGPU.

About HDR

HDR starts supporting from Windows 11 23H2 and generally supported on 24H2. Some systems might not have HDR toggle on 23H2 and you just need to upgrade to 24H2. Any system lower than 23H2/Windows 10 will not have HDR option available.

[!NOTE] The below section is written for professional media workers. It doesn't stop you from enabling HDR if you know what you're doing and have deep understanding about how HDR works.

Apollo and SudoVDA can handle HDR just fine like any other streaming solutions.

If you have had good experience with HDR previously, you can safely ignore this section.

If you're curious, read on, but don't blame Apollo for poor HDR support.

Whether HDR streaming looks good, it depends completely on your client.

In short, ICC color correction should be totally useless while streaming HDR. It's your client's job to get HDR content displayed right, not the host. But in fact, it does affect the captured video stream and reflect changes on devices that can handle HDR correctly. On other devices that can't, the info is not respected at all.

It's very complicated to explain why HDR is a total mess, and why enabling HDR makes the image appear dark/yellow. If it's your first time got HDR streaming working, and thinks HDR looks awful, you're right, but that's not Apollo's fault, it's your device that tone mapped SDR content to the maximum of the capability of its screen, there's no headroom for anything beyond that actual peak brightness for HDR. For details, please take a look here.

For client devices, usually Apple products that have HDR capability can be trusted to have good results, other than that, your luck depends.

DEPRECATION ALERT

Enabling HDR is generally not recommended with ANY streaming solutions at this moment, probably in the long term. The issue with HDR itself is huge, with loads of semi-incompatible standards, and massive variance between device configurations and capabilities. Game support for HDR is still choppy.

SDR actually provides much more stable color accuracy, and are widely supported throughout most devices you can imagine. For games, art style can easily overcome the shortcoming with no HDR, and SDR has pretty standard workflows to ensure their visual performance. So HDR isn't that important in most of the cases.

How to run multiple instances of Apollo for multiple virtual displays

Follow the instructions in the Wiki.

FAQ

Moved to WiKi

Stuttering Clinic

Here're some common causes and solutions for stutters: WiKi.

Device specific setups

System Requirements

Warning: This table is a work in progress. Do not purchase hardware based on this.

Minimum Requirements

Component Description
GPU AMD: VCE 1.0 or higher, see: obs-amd hardware support
Intel: VAAPI-compatible, see: VAAPI hardware support
Nvidia: NVENC enabled cards, see: nvenc support matrix
CPU AMD: Ryzen 3 or higher
Intel: Core i3 or higher
RAM 4GB or more
OS Windows: 10+ (Windows Server requires manual installation for gamepad support)
macOS: 12+
Linux/Debian: 11 (bullseye)
Linux/Fedora: 39+
Linux/Ubuntu: 22.04+ (jammy)
Network Host: 5GHz, 802.11ac
Client: 5GHz, 802.11ac

4k Suggestions

Component Description
GPU AMD: Video Coding Engine 3.1 or higher
Intel: HD Graphics 510 or higher
Nvidia: GeForce GTX 1080 or higher
CPU AMD: Ryzen 5 or higher
Intel: Core i5 or higher
Network Host: CAT5e ethernet or better
Client: CAT5e ethernet or better

HDR Suggestions

Component Description
GPU AMD: Video Coding Engine 3.4 or higher
Intel: UHD Graphics 730 or higher
Nvidia: Pascal-based GPU (GTX 10-series) or higher
CPU AMD: todo
Intel: todo
Network Host: CAT5e ethernet or better
Client: CAT5e ethernet or better

Integrations

SudoVDA: Virtual Display Adapter Driver used in Apollo

Artemis: Integrated Virtual Display options control from client side

NOTE: Artemis currently supports Android only. Other platforms will come later.

Support

Currently support is only provided via GitHub Issues/Discussions.

No real time chat support will ever be provided for Apollo and Artemis. Including but not limited to:

When there's a chat, there're dramas. -- Confucius

Downloads

Direct Download

Recommended

Releases

WinGet

Note: Community maintained

In an elevated PowerShell window, run

winget install ClassicOldSong.Apollo

You'll need WinGet installed first.

Chocolatey

Note: Community maintained

You can also install the apollo streaming server with chocolatey.

Install Chocolatey if you don't have it, then run the following command in an elevated PowerShell/CMD window:

choco upgrade apollo -y 

Same command can be used to upgrade, add to a scheduled task to automate updates.

See more details on the chocolatey package here

Disclaimer

I got kicked from Moonlight and Sunshine's Discord server and banned from Sunshine's GitHub repo literally for helping people out.

This is what I got for finding a bug, opened an issue, getting no response, troubleshoot myself, fixed the issue myself, shared it by PR to the main repo hoping my efforts can help someone else during the maintenance gap.

Yes, I'm going away. Apollo and Artemis(Moonlight Noir) will no longer be compatible with OG Sunshine and OG Moonlight eventually, but they'll work even better with much more carefully designed features.

The Moonlight repo had stayed silent for 5 months, with nobody actually responding to issues, and people are getting totally no help besides the limited FAQ in their Discord server. I tried to answer issues and questions, solve problems within my ability but I got kicked out just for helping others.

PRs for feature improvements are welcomed here unlike the main repo, your ideas are more likely to be appreciated and your efforts are actually being respected. We welcome people who can and willing to share their efforts, helping yourselves and other people in need.

Update: They have contacted me and apologized for this incident, but the fact it happened still motivated me to start my own fork.

License

GPLv3

Apollo (ClassicOldSong/Apollo)

Searching Database…

11.3K ·GitHub
这是什么?Apollo 是一款可自行部署的桌面游戏串流主机,基于 Sunshine 派生而来,用于搭配 Artemis(Moonlight Noir)客户端。它借助 GPU 硬件编码,能以设备的原生分辨率实现低延迟串流。
它和 Sunshine 或 Moonlight 有什么不同?Apollo 是 Sunshine 的硬分叉项目。作者因在帮助用户时被原版 Sunshine/Moonlight 社区封禁,才创建了它。Apollo 会随时间逐渐与上游产生差异,并且拥有自己的客户端 Artemis、为每个客户端固定的虚拟显示器标识,以及原版 Sunshine 所没有的权限系统。
我该如何让它运行起来?可以直接从 GitHub 下载预编译版本。在 Windows 上也可以通过 WinGet 安装,或使用社区维护的 Chocolatey 软件包。安装完成后,用浏览器打开网页界面来配置设置,并与你的 Artemis/Moonlight 客户端完成配对。
要流畅运行,需要什么硬件?需要支持编码的 GPU(AMD VCE 1.0+、Intel VAAPI 或 Nvidia NVENC)、至少 Ryzen 3 / Core i3 级别的 CPU、4GB 以上内存,以及主机和客户端两端都支持 5GHz 802.11ac 的 Wi-Fi 连接。如果没有受支持的 GPU,也可以使用软件编码。
虚拟显示器功能在 macOS 和 Linux 上也能用吗?不能。内置的虚拟显示器(由 SudoVDA 驱动)目前仅支持 Windows,Linux 支持已在计划中,但尚未实现。另外,HDR 串流的画质很大程度上取决于客户端自身的 HDR 处理,而不是 Apollo 本身。
我可以在 macOS 或 Linux 上运行主机,还是只能用 Windows?主机软件本身可在 Windows 10+、macOS 12+,以及 Linux(Debian 11+、Fedora 39+、Ubuntu 22.04+)上运行。不过,双 GPU 和虚拟显示器功能目前仅限 Windows。
什么是 Artemis?我需要它吗?Artemis 是 Apollo 的配套客户端,基于 Moonlight Noir 分支开发。目前仅支持 Android,其他平台正在计划中。你需要将它与 Apollo 配对后才能进行串流。
新配对的客户端默认拥有哪些权限?第一个与 Apollo 配对的客户端会自动获得全部权限。之后配对的每个客户端默认只有 'View Streams' 和 'List Apps' 权限,因此你需要手动为新设备授予 Launch Apps、Mouse Input、Keyboard Input 等权限。
我能同时运行多个虚拟显示器吗?可以。你可以运行多个 Apollo 实例来管理多个虚拟显示器,具体设置步骤请参阅项目 Wiki。
What are similar projects?Sunshine, moonlight-qt, neko, bloodborne_pc, QtScrcpy, pyrowave, srs, d4r
Size
34.4 MB
Stars
11.3K
Age
2y
Commits · 90 Days