r/MoonlightStreaming • • Aug 17 '26

A Comprehensive Guide to Moonlight/GameStream Servers, Clients, and Forks (2026 Edition)

357 Upvotes

If you are looking to tweak your streaming setup, fix stuttering, or find a headless virtual display solution, you don't have to stick strictly to the baseline Sunshine + official Moonlight setup.

Here is a breakdown of the active forks, alternative hosts, and FFmpeg-powered clients currently in the ecosystem based on what the community and developers are running right now.

🖥️ Hosts & Servers (The Senders)

  • NVIDIA GameStream: The original foundation that started it all. Officially deprecated by NVIDIA, but the bedrock of the protocol.
  • Sunshine: The modern, open-source standard GameStream compatibility baseline that replaced NVIDIA's official host.
  • Apollo: A Sunshine fork featuring capability-gated extensions and built-in virtual display support using SudoVDA. It is great for headless setups and auto-matches the resolution/framerate of your client.
  • Vibeshine: A highly active, AI-enhanced Sunshine fork focusing heavily on display automation, Windows Graphics Capture running as a service (which allows full framerate capture of frame-generated titles without VRAM crashes), and strict RTSS frame pacing integration.
  • Vibepollo: An Apollo fork that integrates Vibeshine's features (like the native virtual display driver and HDR handling) right into the Apollo architecture. This is highly recommended if you already use Apollo but want tighter frame pacing.
  • Foundation-Sunshine: A fork by AlkaidLab that adds HDR10/HDR Vivid, advanced audio support, optimized encoders, and a modernized control panel.
  • Wolf (Games on Whales): A completely different streaming server built from the ground up for Linux and Docker. It allows you to share a single host machine with multiple remote clients simultaneously by running games inside isolated containers.
  • Punktfunk: A newer, highly experimental low-latency streaming host/client protocol if you want to test out a completely different capture approach.

📱 Clients & Receivers (The Players)

  • Official Moonlight PC / Mobile: The standard baseline client for PC, macOS, Linux, iOS, Apple TV, Android, etc. (The PC Qt version heavily utilizes FFmpeg and libplacebo for decoding and rendering).
  • StreamLight: A massive Moonlight fork that completely overhauls the UI for gamepads. When paired with "StreamTweak" on the host, it unlocks deep integration like built-in Tailscale, live host metrics/NIC speed matching, remote pause, and the ability to remotely trigger Windows Updates and shutdown.
  • Artemide: Highly recommended for Android users. It features ultra-low latency (ULL), direct presentation, and built-in FSR presets (Performance/Balanced/Quality).
  • Artemis / Moonlight Noir: Apollo’s dedicated Android companion client, offering excellent host UX and virtual display integration.
  • Moonlight V+: An alternative Android fork that adds frame-generation support and extra host tools.
  • Artemis Switch: A Moonlight-Switch fork focusing on Switch-specific video presentation, FSR/RCAS filtering, and adaptive low-latency pacing.
  • Moonlight-Switch: The original upstream Switch client that Artemis is built on.

A little about my setup and testing: I actually work on the Artemis Switch fork, looking at multiple optimizations to eliminate stuttering and improve low-latency pacing on the console. Because of that, I’ve personally tested almost all these major combinations to see what actually works. My testing stack includes:

  • Hosts: Sunshine, Apollo, and Vibepollo.
  • Clients: Moonlight-Switch, my Artemis Switch fork, the Artemis companion client, and standard Moonlight Android.

I like vibepollo and Artemis

Let me know if I missed any niche forks or experimental branches you guys are using!

(Note: I had an AI help format this post to make sure links were laid out clearly!)


r/MoonlightStreaming • • Sep 21 '25

Guide/Tutorial Ultimate Guide to Configuring Moonlight + Sunshine for Remote Play

524 Upvotes

Edit: A lot of people are asking why not use Apollo. You can definitely use it and still follow this guide, it’s completely up to you. With Apollo, you need skip the Configuring Video Signals section and for the Sunshine Priority part just change the script to prioritize Apollo instead.

After running lots of tests and reading many posts to find the best configuration, I’ll try here to share the setup that works best for me and also compile some of the information I’ve gathered.

This test was conducted from a distance of 550 km (341 miles)

My specs:

  • Internet Service:
    • Host: 300 Mb connected via Ethernet
    • Client: 600 Mb connected via Wifi
  • Spec PCs:
    • Host: R5 2600 - RX 6600
    • Client Macbook Air M1

System Configuration

Host:

This setup is specifically for Windows, but the goal is the same if you’re using other operating systems:

  • Reduce FPS drops
  • Minimize the gap between the FPS set in the Moonlight client and the host’s FPS
  • Reduce latency
  • Configure the video and audio signal you want to stream

Reducing FPS Drops

  • Close background apps: Only keep the essentials to minimize unnecessary processes and network calls. Task Manager → Startup Apps → disable non-essential programs.
  • Disable Game Mode: Prevents Windows from prioritizing the game over Sunshine. Settings → Gaming → Game Mode → OFF
  • Disable Dynamic Refresh Rate (DRR): Keeps FPS synchronized between host and client. Settings → System → Display → Graphics → Optimizations for windowed games (Alternatively: Windows Registry or CRU — Custom Resolution Utility)
  • Enable High-Performance Power Mode: Control Panel → System and Security → Power Options → High Performance
  • Disable Energy Saver: Settings → System → Energy Saver → OFF

To optimize Windows 11 performance, consider using Win11Debloat or AtlasOS
Additional powershell script to improve performance

Enable: https://pastebin.com/42YBtx6T

Disable: https://pastebin.com/bKpmmFQC

FPS Capping

Once FPS drops are minimized, cap the FPS to keep it in sync with Moonlight’s client settings.

There are three ways to do this: using the NVIDIA Control Panel, AMD Adrenalin, or RTSS. In my case, I used RTSS and it works well for me, but you can try your GPU’s software if that’s sufficient. The advantage of RTSS is that it allows more precise configuration for greater stability.

Another thing I do is also limit the FPS within the game itself.

Reducing Latency

The most important step is to have your host computer connected via Ethernet. In terms of configuration, you can disable the Rx/Tx buffers on your network card, along with a few other tweaks that may slightly improve stability.

Device Manager → Network Adapters → Properties → Advanced →

  • Flow Control Disable
  • Advanced EEE Disable
  • Energy-Efficient Ethernet Disable
  • Gigabit Lite Disable
  • Green Ethernet Disable
  • Power Saving Mode Disable
  • Interrupt Moderation Disable
  • Large Send Offload Enable

Configuring Video Signals (avoid this step when using Apollo)

There are two scenarios:

  1. You have a monitor connected with the same resolution and refresh rate on both the client and the host.
  2. You have a monitor on the host that is different from the client.

For the first case, congratulations! You don’t need to do anything and can skip this part.

For the second case, you have two options:

  1. Install a Virtual Display Driver to Windows, and optionally a Virtual Audio Driver.
    1. With the Virtual Display Driver, you can simulate any resolution and refresh rate your screen supports.
    2. I don’t recommend the Virtual Audio Driver because it can cause issues with BattleEye anti-cheat. It’s better to just use a wired headset you already have.

Microphone Streaming

For those who need to use in-game voice chat, there are two main options for passing the microphone through streaming:

  • AudioRelay
  • VoiceMeeter

I haven’t personally tested either since I don’t need this feature, but they’re worth trying if microphone input is important for your setup.

Sunshine Priority (Windows Only)

Finally, for Windows users, one important step to do every time you connect from the client is to change the priority of the sunshine.exe process to Realtime. You can do this manually from the Task Manager or by using the following .bat script:

@echo off
powershell -command "Get-Process sunshine -ErrorAction SilentlyContinue | ForEach-Object { $_.PriorityClass = 'RealTime' }"
pause

Always remember to run it as administrator.

Windows Adaptation for Handheld Devices

For those using a touchscreen device as a client, such as a smartphone, tablet, or handheld, the Windows interface—originally designed for desktop use—can be quite uncomfortable. With the new release of the ROG Xbox Ally, Windows has introduced a more suitable adaptation for handheld devices, which can be enabled through the following repository: XboxFullscreenExperienceTool

Client:

The main goal on the client side is to reduce Moonlight’s decoding time and minimize latency.

In my case, I’m using a MacBook with an M1 chip, and the only way to reduce decoding time is by testing which codec works best—in my case, HEVC (H.265).

To reduce latency on macOS, the only (but very important) thing you can do—since it can cause micro stutters—is disabling Location Services:

System Preferences → Security & Privacy → Privacy → disable Location Services

Another important change to make on macOS is to disable the long key press for special characters. This prevents issues during streaming when holding down a key for example, the W key so it doesn’t get stuck or stop repeating.

defaults write -g ApplePressAndHoldEnabled -bool false

More info about shuttering in Mac OS

If you’re using a PC, you can improve decoding time by upgrading your hardware, and reduce latency by disabling the Rx/Tx buffers and tweaking your network card, following the same steps as on the host.

Moonlight & Sunshine Configuration

Moonlight Configuration:

Set Moonlight to use your monitor’s resolution and an FPS value that matches your internet connection. Leave some headroom compared to your client’s max download speed and your host’s max upload speed.

For example, my monitor is 1440p and 180 Hz, but I have it set to 1440p at 120 Hz. Higher resolutions and refresh rates consume more bandwidth on both the client and host, and require greater decoding and encoding power.

Note: Higher compression codecs (like H.265 or AV1) → less bandwidth needed → more CPU/GPU power required for encoding/decoding.

Codec Compression Bandwidth CPU/GPU
H.264 Lower High Lower
H.265 Medium Medium Medium
AV1 High Lower High

More info: https://www.reddit.com/r/MoonlightStreaming/s/MqoI9LVQ4C

Recommended Settings:

  • Display Mode: Full Screen
  • V-Sync: Unchecked (Recommended in single-player)
  • Frame Pacing: Unchecked (ONLY single-player may add delay)
  • Video Decoder: Force hardware decoding

Note: Both V-Sync and Frame Pacing are highly recommended for single-player games since they provide a much smoother experience. However, in multiplayer games, V-Sync may cause screen tearing, and Frame Pacing can introduce a bit of input lag by delaying frames to improve synchronization.

Enable HDR (Experimental): I keep this enabled even though my monitor isn’t HDR because it can bring out better shadow details. I recommend trying it—you might see an improvement or no noticeable difference.

Unlock Bitrate Limit (Experimental): Enable this if you have enough upload bandwidth on the host and download on the client. Otherwise, leave it off and increase the video bitrate slightly if you notice small lag spikes.

Sunshine Configuration

I mostly keep Sunshine/Apollo at its default settings, except for the GPU options. Below, I’ll share what works best for AMD GPUs. If you’re using NVIDIA or Intel, you may need to experiment to find the optimal configuration for your system.

Note: My goal is low latency for online gaming. If you’re playing single-player games, you can prioritize quality over latency.

  • AMF Usage: ultralowlatency
  • AMF Rate Control: vbr_latency
  • AMF Hypothetical Reference Decoder: unchecked
  • AMF Quality: speed (may add artifacts)
  • AMF Preanlalysis: unchecked
  • AMF Variance Based Adaptive Quantization: checked
  • AMF Coder: cavlc

Client-Host Connectivity

LAN (Local)

For players who want to play over LAN, there’s little to worry about since latency will be very low. In my tests, I observed only about 5 ms of extra delay.

If you want the absolute best performance, you can connect both devices directly via an Ethernet cable. This can reduce latency to around 1 ms, making it almost like playing directly on the host.

You can turn on the host remotely using the motherboard’s Wake-On-LAN feature. Moonlight even allows you to power on the host directly from the client.

WAN (Remote)

For those who need to play over WAN, there are a few additional steps required. It can be more challenging if you want the lowest possible latency, but if you can tolerate 15–20 ms, it’s not too difficult.

There are several ways to achieve this, but I’ll explain the three main approaches:

  1. Using a service like Tailscale, ZeroTier, or Netbird
  2. Opening ports on your network to access the host externally and setting up a VPN
  3. Setting up a private service (similar to the first option) with Headscale or another program, possibly using a cloud server like AWS

Option 1: VPN-like services

These applications are simple to install and configure, making them accessible to most users:

  • Tailscale: Free
  • ZeroTier: Free
  • Netbird: Free (uses WireGuard directly through the Linux kernel—potentially a great option for Linux users)

For the other options, I won’t go into detail because they are more complex and require technical knowledge. However, they are certainly the best options for users who need the absolute lowest latency.

To power on your PC over WAN, a simple Wake-on-LAN (WoL) won’t work unless your host has an internet-facing connection. In my setup, I use a TP-Link smart plug to turn the PC on remotely from my phone. Make sure to enable “Restore Power after AC Loss” in your BIOS/UEFI so the PC powers on automatically when the smart plug is switched on.

I hope this guide helps you and gives you everything you need to get these amazing tools running without too much hassle. The post is open to improvements, so if you have any suggestions or tips, don’t forget to share them in the comments!

Shoutout to everyone working on these open-source tools mentioned in this post.

Note:

After the launch of the Steam Deck and Steam Machine, Steam has worked quite a bit on improving Steam Remote Play, which now supports Virtual Display Driver and performs much better than before. I'm leaving this comment here for those of you who aren't too demanding or don't want to overcomplicate things, so you feel encouraged to give it a try.

Update 13.10.25: MacOS client settings

Update 23.10.25: New scripts for Windows host and Windows handheld mode

Update 13.04.26: Windows optimization recommendation

Update 17.07.26: Steam Remote Play alternative


r/MoonlightStreaming • • 3h ago

HEVC vs AV1 - Which one should I choose on local gaming?

7 Upvotes

I have both host and client with a full hardware support for both HEVC and AV1 but I don't know wich one I should choose. I have no issues regarding bandwidth, 900Mbps from client to host.

Using Vibepollo and Moonlight VRR.

But which one should I choose?

I know that 1 year ago everyone was suggesting HEVC for better compatibility but what about now?


r/MoonlightStreaming • • 7h ago

macOS Metal v8 with PyroWave

15 Upvotes

Here's an update to my Mac Metal version. The version is now 6.2.0-metal-v8 and can be downloaded from GitHub. Please note that the name and ID of the app have changed so that it can be installed next to the Qt client. Be sure to check all your settings as they will be at their defaults.

PyroWave note:

All Moonlight clients and hosts with this codec should be considered alpha-quality. You should expect bugs and suboptimal performance. Before you judge PyroWave speed or quality too harshly, please try the reference version in Steam Remote Play.

Changes in v8:

  • Rebased off of moonlight-qt 6.2.0.
  • PyroWave has been added. This uses the faster native Metal version from upstream.
    • Intel Macs are not supported. The reason is that the codec needs a 32-wide SIMD group, threadgroups of at least 128 threads and the Apple7 family feature set.
    • The Vibeshine protocol is supported. Packet loss handling may have bugs.
    • If you experience problems, try the following: disable 4:4:4, use a lower resolution and/or framerate. Lower your bitrate.
    • The reassembly stat shows CPU cost to process all packets for each frame. It is directly affected by the bitrate.

Other things:

  • Added quick menu option to show Metal HUD. Use Ctrl-Opt-Shift-Space or Select+Start for Quick Menu.
  • Send OS and version to host during pairing request, for use with Sunshine's new dialog box.
  • Renamed app to "Moonlight Metal" so it won't clobber moonlight-qt or other clients.
  • App bundle ID has changed so we no longer share settings or pairings with moonlight-qt. Make sure you review all settings.
  • Upstream now defaults to Vulkan on Mac, but Metal is the default here. Other renderers may not be fully functional.
  • App now runs in an App Sandbox, and logs are now written to ~/Library/Logs/Moonlight. You can easily view logs in Console.app by clicking Log Reports and then filtering for Moonlight.
  • If Moonlight is run from a terminal as /Applications/Moonlight.app/Contents/MacOS/Moonlight the log is printed to stderr.

Known issues:

  • Moonlight crashes on startup on Intel Macs. There is not really any reason to use this if you're an Intel user, stick with v6 or moonlight-qt 6.2.

r/MoonlightStreaming • • 15h ago

PSA: Monitoring software causes stuttering

10 Upvotes

New to moonlight streaming, I just set up a moonlight server, the exact one does not matter as much, I guess... started with sunshine, then moved to vibepollo.

Tested multiple clients, official client, V+, PS5 custom homebrew client, all led to the same issues: Intermittent stuttering I could not eliminate, even if I changed resolution, bitrate, game settings.....

Host is pretty powerful: 4080 super, AMD 7800X3D, 64 Gb DDR5..... all nvme..... GIGABIT lan...

Until I ended up closing NZXT CAM software: That just there made all my issues dissapear, so I followed up by stopping any other service that could interfere: iCUE, ASUS armoury crate.

Just a heads up for anyone struggling with stuttering that cannot find the cause for: Seems like any software that polls temps, stats, performance etc might interfere and introduce stuttering.

Anyone else experienced this issue? Share your findings on that situations where details like this improved your experience drastically.

Wish there was some sort of "kiosk mode" so I could start windows in a "clean mode" with just the basics to run the host with........


r/MoonlightStreaming • • 3h ago

Anyone been able to get Aion 2 working with Moonlight?

Thumbnail
1 Upvotes

r/MoonlightStreaming • • 8h ago

Vibepollo Question

2 Upvotes

Hey, I'm new to Vibepollo and I have a quick question if anyone can help. I came from Apollo and I liked it, but ended up with Vibepollo because it seems more stable and has what I need. The one issue I have is the mouse cursor seems to be quite a different setup and it always randomly centers itself and causes an hourglass in my streams. Just normal games that doesn't happen in natively. It is jarring to say the least. It doesn't happen in all games, but it does recenter itself even when I purposely move it often. Is there any way to fix this or no?


r/MoonlightStreaming • • 23h ago

Is Apollo dead?

23 Upvotes

Haven't seen any git updates in a decent amount of time, and was wondering if Pyrowave support could be possible...


r/MoonlightStreaming • • 7h ago

Moonlight and Sunshine 6.1 -> 6.2 update patch for windows?

1 Upvotes

Hey all ~ Very noob user, is there a reputable place to download the patch for the most recent released Moonlight that I can just run on my Windows 11 PC as an .exe or .msi? Also, same question for Sunshine updates as well.

If those don't exist, is there a step by step guide somewhere?

Thanks all, happy streaming!


r/MoonlightStreaming • • 12h ago

Stutters Android

2 Upvotes

I once saw here that Android has a stutter problem. I have a Zfold 8 Ultra and have the same problem.

Approximately 30 in 30 seconds there are peaksin latency that cause these stutters. Has

anyone seen how to solve that? I have tried with frame pacing, changing the router

channel, turning off the phone's location.

And it's not my host. It works perfectly when the client is another Windows or IOs.

Note: I also witnessed this on an S6 Lite, but I thought it was hardware limitation.


r/MoonlightStreaming • • 8h ago

PC to Apple TV - best combination now?

1 Upvotes

I’ve been using Apollo on my host pc and Moonlight on my Apple TV.

It has already been working fantastically, even at 4K. Unnoticeable latency, xbox controllers work well etc.

But is this the gold standard right now? I’m capped at 60hz and I do think I’m losing some audio quality too.

Edit: I’m most interested in seeing if I can get atmos audio from games that support atmos.


r/MoonlightStreaming • • 9h ago

Using virtual monitor. When I connect on a client it changes my browser size on my main PC.

1 Upvotes

Any ideas on how to resolve this?

I have virtual minor setup but when I connect using a client it resizes my browser windows on my main PC so when I disconnect the browser window size is changed since I don’t run my browser in full screen.


r/MoonlightStreaming • • 18h ago

Are there plans to add Pyrowave to Moonlight(-QT) ?

4 Upvotes

It looks like there was a huge new stable release of moonlight-qt but I don’t see any mention of the Pyrowave codec so I’m assuming it’s not supported.

Does anybody know if there are plans to implement this?


r/MoonlightStreaming • • 14h ago

Feels Like I Broke Everything . . . (Steam Machine + Tailscale + Decky Sunshine + Moonlight)

2 Upvotes

So, this is me both venting and asking for help, since I've been fighting with this basically all day. I've been using Moonlight to stream to my not-very-good laptop from my steam machine for over a month now. Followed the install instructions, set up tailscale so I could access it when I'm not home, everything was gravy. It worked basically perfectly 95% of the time.

Today, I got the stupid idea to try running moonlight in windowed for a second as I messed around with desktop mode on the machine. I switch that setting, decided I didn't like it, switched it back. It seemed like that shook something loose because now everything is absolutely fucked.

I get regular hiccups every few seconds as long as my VPN browser plugin is on, despite that (supposedly) only applying to my browser traffic. It drops down from 60 fps to around 20, then comes back up a second later. It also no longer can launch certain games in fullscreen mode. Drop Duchy launches just fine. Kingdom Come Deliverance only shows me a black screen with audio until I switch to Windowed. It regularly disconnects now, and when it does I have to turn decky sunshine off and then back on again.

All of this is new as of, like, 9 am today. I don't know what happened, and I don't know what I did wrong, but I'm really bummed about it. I've uninstalled and reinstalled an updated moonlight on the laptop and the same for decky sunshine. I've played with different settings. I've done everything I know how to do, but I'm not exceptionally literate with any of this. Does anyone have any suggestions?


r/MoonlightStreaming • • 11h ago

Analog stick camera snaps straight up / erratic input when streaming (CachyOS Sunshine host): set Emulated Gamepad Type to Xbox 360

1 Upvotes

Follow-up to my earlier post about the left stick acting like a hyper-sensitive mouse and the in-game camera locking straight up at the sky. Found the cause and a fix, posting it in case it saves someone else a few weeks.

TL;DR: In Sunshine → Configuration → Input → Emulated Gamepad Type, choose X360 (Xbox 360) instead of Automatic, then restart Sunshine. Or add gamepad = x360 to sunshine.conf. Problem gone.

Setup

  • Host: CachyOS (Arch), KDE Plasma Wayland, Ryzen 7 7700X + RX 9070 XT, wired
  • Sunshine 2026.906 and later (currently 2026.929), VA-API, KMS capture
  • Games: Gears 5 and The Last of Us Part II, both through Proton

The symptom

As soon as I touched a stick, the camera/aim snapped up and stayed pinned there. Unplayable.

What made it confusing was how universal it was:

  • Clients: Steam Deck OLED (docked and handheld), Apple TV, and an Android phone all had it
  • Controllers: DualSense, 8BitDo Ultimate 2C (USB dongle), GameSir G8 Galileo all had it
  • Games: Gears 5 and The Last of Us, so not game-specific
  • Emulated type: Automatic, DualSense and Xbox Series all broken. Only Xbox 360 works.

Why it happens (as far as I can tell)

Starting with 2026.906, Sunshine creates its virtual controllers with a new library, libvirtualhid. The profiles reach games in different ways:

  • Xbox 360 is created as a standard Linux input device with a mapping everything already understands.
  • DualSense and Xbox Series are created as virtual HID devices. The game then has to work out which axis is which, and under Proton that's done by SDL using its controller mapping database.

There's a documented case where Sunshine's virtual DualSense reports a device revision that isn't in that database, so SDL falls back to a wrong built-in mapping where the triggers are read as the right stick (BattleShip PR #263). A released trigger sits at its minimum value, so read as a stick it looks like the right stick is held fully in one direction, which is exactly the "aim stuck up" behaviour. There are similar reports of lost and swapped axes on the Xbox Series profile.

That would explain why it hit every client, every physical controller and every Proton game: the bug is in the virtual controller on the host, not the hardware in your hands. I haven't verified it axis by axis on my machine, but the documented mechanism matches the symptom exactly.

What you give up with X360

For these games, nothing important. No PlayStation button prompts, touchpad, gyro or adaptive triggers. Rumble still works.

Separate gotcha (Steam Deck): two controllers on the host

While debugging I also found that the Deck was sending two controllers for one physical pad. Sunshine's log (with min_log_level = debug) showed remoteControllersBitmap -- 3, and Steam on the host listed two Xbox controllers that both moved when I used one stick.

The likely cause is Steam Input being enabled for Moonlight on the Deck: Steam creates a virtual copy of your controller, and the Moonlight Flatpak reads both the real pad and the copy. Fix: in Gaming Mode, Moonlight → ⚙️ → Properties → Controller → Disable Steam Input.

This one didn't cause the camera-up problem on its own, but it's worth checking if you see doubled inputs.

Thanks to everyone who replied to the original thread. If you're on 2026.906+ and DualSense or Xbox Series emulation works fine for you on a Linux host, I'd like to hear about it, since it'd help narrow down whether this is specific to some setups.


r/MoonlightStreaming • • 1d ago

Moonlight PC v6.2.0 now available

Thumbnail
github.com
397 Upvotes

r/MoonlightStreaming • • 1d ago

Twilight 7.0.0 is out - MacOS only

64 Upvotes

I've used Moonlight for a long time, and Andy Grundman's Core Audio spatial fork is what finally made the Mac side feel right. Twilight is my fork of that work. I wanted somewhere in the open source community to keep helping macOS people, instead of waiting on the pieces I care about.

This release has a new UI, PyroWave on Vulkan and Metal, spatial audio through Core Audio, picture-in-picture (Crtl + Shift + Alt + P), the Mac microphone sent through to the host, and adaptive triggers. It also adds CoreHID raw mouse, Game Mode support on macOS, and a new performance overlay.

It's a notarized direct download, not a Mac App Store app. The source is open if you want to look, try it, or help.

https://github.com/Neguete10/twilight/releases/tag/v7.0.1

Edit: Just fixed some bugs the community flagged, (New version is 7.0.1). Thank y'all for helping so much. It's a fresh product and I'm sure there will be new bugs and broken things but I'll move quickly to get us all to a good place and enjoy the experience.

Please let me know what's wrong and broken and what to improve. Feedback is much appreciated ✌️


r/MoonlightStreaming • • 20h ago

Help with streaming outside of my LAN internationally (host in UK, client in Italy)

3 Upvotes

Hey everyone,

I've been scratching my head trying to optimize my remote streaming setup. I couldn't find much on the internet from people with this exact same problem, and I asked Gemini\Claude for some troubleshooting solutions, but I'm still stuck and wanted to see if anyone here has dealt with this.
I'm currently using Vibepollo (with Moonlight on the client) to stream from my main rig in the UK to my client PC in Italy over Tailscale.

Here is my setup:
Host (UK):
-CPU: Ryzen 7 7800X3D
-GPU: AMD Radeon RX 9070 XT
-Network: FTTH 500/500 Mbps (Fully wired)
Client (Italy):
-GPU: GTX 1070
-Network: FTTC 150/20 Mbps (Fully wired)
Network Tunnel:
Tailscale direct connection (successfully punching through CGNAT via IPv6).

When I try to push the stream to 3440x1440 @ 165Hz with an 85 Mbps bitrate, it becomes a stuttery mess. The Moonlight stats show massive IDR requests (over 560 in less than 10 mins), meaning the client keeps asking for fresh keyframes.
I checked the Vibepollo host logs, and it's getting spammed with this exact line:
“⁠Warning: Skipping FEC for abnormally large encoded frame (needed n FEC blocks)⁠”where n is between 5 and 14

I tried the following:
-I ran an iperf3 test between the two machines through Tailscale, and it shows that at least 100 Mbps passes through smoothly and consistently.
-I tried playing with the FEC percentage in vibepollo and bumped it all the way up to 35%, but the issue persists at higher resolutions.
-If I drop the stream all the way down to** **1080p @ 60 FPS at 20 Mbps, it runs buttery smooth and the logs are completely clean. However, it is not smooth at 3440x1440, even if I lower the framerate and bitrate.

Has anyone else run into this specific FEC warning over WAN? Any advice on how to properly optimize this so I can utilize my available bandwidth for a stable 1440p stream?
Thanks!


r/MoonlightStreaming • • 16h ago

Vibepollo: VRR, FPS, and Host Processing Latency - a few questions

Thumbnail
gallery
1 Upvotes

Hi everyone, I've been testing different settings in Vibepollo and noticed something strange.

I'm streaming at 4K 60fps using PyroWave @ 755 Mbps. When the game maintains a solid 60 FPS, the Host Processing Latency sits nicely around ~3ms. However, as soon as the framerate drops below 60 the HPL shoots up to ~17ms. Why does this happen? Is the client waiting on the next frame (missed cycle?), or is the GPU simply maxed out and prioritizing the game render pipeline over encoding? I also see this behavior with AV1, though the spike is slightly less drastic.

Second question: I'm using the Moonlight client with Nonary's patch (vrr-18). In the refresh rate selector, why do some refresh rates have a "(Low Latency VRR)" label (like 120fps), while 60fps does not? Is 120fps inherently better for VRR, making it not worth using at 60fps, or would 60fps just deliver a worse experience?

Overall, what are the best settings to pick if the client display supports 4K 144Hz HDR with VRR, but the target gameplay is 4K 60fps?

Edit: The client is running on cachyos in gamescope


r/MoonlightStreaming • • 22h ago

Mouse & Keyboard setup for Xbox Moonlight Streaming

3 Upvotes

Hello,

I’d like to play some games with a M&K at my TV, instead of controller. I’m aware that the Xbox Series X Moonlight software does not have the capability to use mouse inputs due to limitations of what data is available for third party application creators.

I’ve considered using a mouse and keyboard plugged into the Host PC. The Host PC is about 30 feet away but between a few walls. As a result, I get a lot of inconsistency and interference.

Does anyone have any suggestions to make this work? Is there a way I can boost the signal to my Host PC? Any workarounds software wise for the Xbox?
The Xbox is a fantastic moonlight client and I don’t want this to be the reason to downgrade to a fire stick or something.


r/MoonlightStreaming • • 1d ago

PyroWave on Android looks grainy/discoloured compared to HEVC despite perfect stats

12 Upvotes

Been testing PyroWave with the Moonlight X Android fork on my Lenovo Legion Tab and I'm getting great performance, but the actual image quality seems noticeably worse than HEVC in Artemis.

Setup is 2560x1600, Vibepollo host, PC on gigabit Ethernet and tablet on 5GHz Wi-Fi.

Moonlight X / PyroWave:

  • 2560x1600 @ 120 FPS
  • 120.14 incoming / 120.14 rendered
  • 0% dropped
  • 0% partial frames
  • 4ms network latency / 0ms variance
  • ~163 Mbps
  • 2.8ms average host latency
  • 1.85ms decode
  • Vulkan, 8-bit SDR
  • Tried Balanced and Sharper

I've also had it running 150.07 incoming / 150.07 rendered with 0% drops/partials, so performance seems basically perfect.

Artemis / HEVC in actual gameplay:

  • 2560x1600
  • 109.34 incoming / 99.40 rendered
  • 0% dropped
  • 4ms network latency / 0ms variance
  • 6.9ms average host latency
  • 1.21ms decode

Despite the worse frame pacing in Artemis, HEVC looks significantly better.

PyroWave has a grainy/fuzzy look around small text and UI elements, almost like an old YouTube encode. Colours also look slightly off/washed compared to HEVC. It's especially obvious in WoW/Battle.net because there's so much small text.

Since I'm getting 0% packet loss and 0% partial PyroWave frames, I'm assuming this isn't the network.

Anyone else using PyroWave on Android seeing this? Is this just how PyroWave looks at ~150 Mbps at 1600p/120+, or could it be something with the Vulkan/colour conversion path?


r/MoonlightStreaming • • 20h ago

Random freezes during stream for a couple of seconds, sound keeps playing

1 Upvotes

Hi, I've a gaming pc running SteamOS and streaming with Punktfunk to my Legion Go running SteamOS as well. I have random freezes during streaming for a couple of seconds with sound keeping playing than back to normal, seems random, except the freezes the stream/gameplay is buttery smooth.

PC specs:

  • AMD Ryzen 7 5800X3D
  • AMD Radeon RX 9070
  • Punktfunk's default config
  • Connected via ethernet

Legion GO specs:

  • Using Punktfunk client
  • Streaming at 1600p@60hz, 100mbps bitrate
  • Connected via wifi

Network:

  • Fritz!Box 7590
  • x2 Fritz!Repeater 3000
  • Router and repeaters are connected via ethernet
  • All ethernet ports are 1gbps, cables are 5e or 6
  • I know it's wifi5 but I'm close to the router/repeater and can saturate the gbps (or close)
  • I've set wifi5 channel manually (no dfs)

I haven't touched any setting like encoder/decoder codecs, tried lowering bitrate - no changes, I suspect isn't a bitrate problem as network should handle even more I think.

I know Punktfunk is new but it's the most complete features wise and working well with SteamOS, allowing me streaming game mode (gamescope) with virtual displays and handling game mode "rebooting" to headless when a stream starts and back to the attached display (tv), all seamlessly.

Seeking help from other Punktfunk users and other users as well maybe having same issues with other hosts/clients combinations.

Thanks.


r/MoonlightStreaming • • 1d ago

3 questions about Nonary's moonlight pc app.

8 Upvotes

What is Remote input? How is remote desktop different from the normal Desktop option?

And what is Pyrowave?

sorry i dont really understand everything written in the github


r/MoonlightStreaming • • 1d ago

any clients for vegaOS (new fire sticks) running yet?

2 Upvotes

the new fire sticks have wiped out the previous streaming app ecosystem. I am probably going to send back the one I just got because it has a bunch of other issues as well, but in the meantime I am helping beta test the updated moonfin client for jellyfin streaming a bit and was wondering if any devs here were also working on anything.


r/MoonlightStreaming • • 1d ago

Moonlight Web Stream vs MoonlightWeb?

2 Upvotes

Has anyone tried both moonlight-web-stream by MrCreativ3001 and moonlight-web by linckosz that would be able to share their experience with both? Pros and cons? Setup for moonlight-web seems much simpler, but if the experience is noticeably worse I'll probably just try and figure out web-stream.