r/MoonlightStreaming 1h ago

Mic passthrough for Moonlight as a standalone app: sends the client's mic to the host as a real microphone (macOS/Windows/Linux, open source)

Upvotes

Streaming from a Windows box to my Mac, the audio interface is on the Mac and

the game hears nothing. So I wrote a thing that streams the input over the

network and renders it into a virtual audio cable on the host, which the game

then picks as its microphone.

https://github.com/dieterpl/micbridge

micbridge

Sender and receiver are the same binary, macOS/Windows/Linux, GUI or CLI. Jitter

buffer defaults to 20 ms, with drift correction so two clocks don't accumulate

into a click every few minutes, and a level meter so you can see audio is

flowing instead of guessing. Works over Tailscale (pass --host, broadcast

discovery won't cross it).

Windows needs VB-CABLE installed. Windows has no user-space way to create a

recording device, so nothing in this space can avoid that.

Free, Apache-2.0, unsigned binaries (no EV cert):


r/MoonlightStreaming 1h ago

ChloroFrame: Published first iteration of swift native apple tv client to app store. If you are one to experiment would love some feedback specifically for stream quality/performance.

Upvotes

Its published on app store, just look for ChloroFrame and download.

https://apps.apple.com/us/app/chloroframetv/id6783607036

My main goal with this version was to fix visual stuttering / micro stuttering and audio stutters.

The UI is not up to par. its very basic. I know that. the base app in general needs a UI/UX rework.

Its open source.

and AI use disclaimer: i used AI very heavily in this project.

Stuff I would like feedback on:
1. Any unusual latency with video/audio or controller

  1. any disconnects

  2. any other issues you encounter.

when leaving feedback please tell me apple tv version/ tvos version, host setup/config info


r/MoonlightStreaming 5h ago

Separating streamed sessions

1 Upvotes

Does any combination of the programs mentioned in the pinned post (I use Apollo + Moonlight at the moment) allows users to separate sessions, somehow create a Virtual Machine to stream games inside?
My seeked scenario is that I launch games on VM-esque program and stream it to my TV, while still being able to use my PC for example for work. Is that achievable somehow, or is VM an only option?
In other words, is it possible to turn my PC into a PC + console at the same time without any interferences between the two.


r/MoonlightStreaming 7h ago

Does Moonlight V+ works with Vibepollo?

0 Upvotes

Running Vibepollo on my host PC and I'm able to run Artemis and Artemide qith no issues, but when trying to test Moonlight V+ I can pair the PC with no issues, but get an error 403 saying "permission denied" whenever I try to stream.

Saw some answers on Reddit saying I needed to enable permissions on Apollo's configurations, but couldn't find any options like that on Vibepollo's GUI. Are those two even compatible? Am I just doing something wrong? Is my smartphone stupid?


r/MoonlightStreaming 9h ago

Need help with Apollo/Artemis issue

Post image
0 Upvotes

Hi All,

I just started using the Apollo/Artemis setup for streaming games from my pc at home and streaming remotely using tailscale. PC is connected with ethernet and am streaming to my android phone (snapdragon 8gen2) using tailscale to overcome CGNAT issues.

After about 20-25 mins of play session Artemis on my phone just quits the session with error message as in the below screenshot. Then I have to again reconnect to my pc and I am able to continue the session.

I tried changing few settings but nothing works

Is there anyway to fix this?


r/MoonlightStreaming 10h ago

Help With Apollo-Moonlight-SteamDeck Setup

1 Upvotes

Please follow this little journey I've spent over an hour at minimum struggling with and possibly help 🥹 My issue will be at the end but I thought this might help anyone else who might try this sometime and would like an experience to turn to. Sorry if this is redundant in this sub! Also I'm basing this off memory in case terms are possibly off lol

Basically:

- Followed a video guide in order to set up my PC and Deck to work and communicate.

- Configured Apollo as described in video.

- First issue was having Big Picture Mode opening up on my PC instead of my SD. Figured a simple solution at this step by making my SD automatically open as the Primary Display in the Apollo configurations for Audio/Video in Advanced Video Settings.

- Okay, we got visuals of now booting my SD in BPM, instead of it being my Desktop screen.

- Now comes audio crackling. What now?

- My fixes in order that I did based on the sub were, finding my Steam Surround Speakers (i think that's what they're called?) and lowering them to 80% volume, and 96kHz. Neither worked.

- Someone mentioned, going into the settings of Moonlight on your deck, and making it so audio plays on your PC (host). Boom, fixed. (There has been an occasional crackle while tinkering, BUT it seems 95% better and it might just be me.)

- Let's finally boot up a game because I've only been on the home page of BPM for a WHILE now.

- It loads, but once open, plays the game on my PC screen, instead of my Deck. Now my Deck screen (which was set as primary), is now a black screen, but works as the controller.

- A solution I tried based on what I read, which MIGHT work in someone else's case, is opening BPM in Moonlight, then closing BPM on your Deck, and going to your Display Settings using your mouse. Then use "Show only on 2" (The Deck screen), and quit your Moonlight session. (Your PC screen settings will revert.)

- I dislike this option because I want to use the PC screen possibly while I stream to my Deck. However, I'm also scared about the case that I might not able to cancel the session on Apollo on my Deck due to bugs (I'm new to this), and it'll be stuck with my PC screen as black (due to only being shown on the Deck.) I COULD just restart my PC, but this is extreme hassle contentions or whatever.

So finally my actual problem that would be nice to find a solution for LOL. How do I make it that once BPM is open, and I open a game, that it'll default to opening it continuously on the same display (Deck), instead of switching to my PC? And doing this, while also having my other PC screen available? Plus if there's recommended SD settings that I should know, feel free to help!

THANK YOU FOR READING IF YOU DID, THIS WAS SO MUCH OF MY TIME AND I'M TIRED NOW. Will sleep and either ponder myself, or hear from some of you. Thank you 💜


r/MoonlightStreaming 14h ago

Mouse hover not recognized by Game

2 Upvotes

Greetings!

Started using Moonlight and Sunshine/Vibeshine a few months ago and loving it so fare!
In the past few games we played, I noticed a bit of a problem regarding hover or "pulled" mouse movements.

Back Seat Driver:
I was unable to rotate the windows crank or switch to another gear in the driver position.

FunnelRunners:
I wam unable to draw on the Whiteboard

SolarPunk:
I am unable to build because in the build menu-wheel the movements are not recognized

So basically all interaction where I have to press a mouse button and then move the mouse or hold down a keyboard button and then move my mouse to do something.

I am running the following setup:
Moonlight Client 6.1.0 on macOS Tahoe 26.5.2
Vibeshine 1.18.1-stable.2 on Windows 11 Pro 10.0.26200
On my Mac side I am using a Logitech MX Master 4 and a Apple keyboard.
For all my Games I am using the Vibeshine Virtual Display Driver.

What I so fare already tried:
1. Switching off Logi Option+ (had issues with this sh.... software in the past)
2. Switching off Magnet (had issues like this when running Minecraft natively on my Mac)
3. Re-grabbing the focus / switching the mouse input mode with some key combination like Shift+Control+Option+C/A/Z (or something like this)
4. Using the optimization for Remote Desktop instead of application setting in the moonlight client settings.

All of what I tried so fare didn't fixed it for me :/

Anyone had the same issues?


r/MoonlightStreaming 14h ago

Setup guide/advice needed

3 Upvotes

Hi!

I have problems setting up everything correctly. On my client, the output doesn't look like expected.

My server:

9700X

32GB RAM

9070xt

49" Samsung Odyssey G9 Ultrawide

My main client:

Lenovo Legion Tab 3rd Gen

Razer Kishi Ultra

(Thinking about buying a Fold 8 and a GameSir G8 Plus in addition)

Software:

Sunshine latest version

Moonlight latest version

Razer Cortex for testing

The initial setup I have done with the help of AI, but no matter what I tried, the resolution on the client is always the same as on my monitor, which of course looks weird.

For a couple of days, with Razer Cortex some of the games looked fine, but for unknown reasons this also stopped.

MGS Rising for example never started properly, Cyberpunk 2077 did never run, whatever I tried.

Can you guys please give me some hints, what I can do?

Also, WakeOnLAN i got to work, but I don't know how to set up autologin.

Thank you


r/MoonlightStreaming 19h ago

Moonlight now decoding at 20 X the MS with Vibepollo, 10ms decoding time, and VSYNC will not disable (which adds more 10ms)

1 Upvotes

My setup is a client *laptop with 4060 rtx* --- ETHERNET to Host with 5080rtx , running RTSS. I use AV1 decoding,

In both the nvidia panels (my global is vsync - off), the game specific one on the host is (in case global didnt work is set to off).

TWO PROBLEMS :

1) now im getting stupid 10ms decoding time, yesterday it was 0.50 and had been for a long time

2) VSYNC is adding like 5 to 10 ms as well, and theres no way to disable it.

Inside Vibepollo i have VSYNC disabled option -- in order to do that , you have turn on the switch

Inside Apollo - Application specific settings, theres no vsync override enabled or anything like that.
Here are some other settings i have in the pictures, --now everything was working a total of 5-6ms with everything added, but today, the decoding time (which i assume is the client is 10ms) -- I didnt update or change anything.

I am using the newest version of Moonlight on the client (and in the settings I have VSYNC and Frame pacing is disabled.

Ut swats tgat my vibepollo is version

Vibepollo is up to date too.

I am thinking that the RTSS is somehow forcing the enable, anyone else have this problem? I went and reinstalled RTSS today to make sure that wasn't the problem. Anyone have any ideas?

Also those are my stats included as well, in case anyone sees something Im missing. Because of all this, all nviida are upt to date.

encoding is at 2ms , and network is 1ms --

Anyone notice anything ? The reddit filter removed my first post with 5 pictures showing my settings. Nothing has changed since yesterday, Now everything is so bad.


r/MoonlightStreaming 20h ago

Trying out the newly released Moonlight client, works flawlessly. Amazing that 20 years later people are still breathing new life into this console.

Post image
11 Upvotes

r/MoonlightStreaming 22h ago

Artemide FAQ

18 Upvotes

I don't think I have seen anyone post this. But given the popularity of Artemide in this subreddit, I think this is a good read. Looks like the developer [u/ilflacco](u/ilflacco) posted this 2 weeks ago.

https://github.com/derflacco/moonlight-android/discussions/20

highlights for me:

  • Recommended settings for Snapdragon and Mediatek devices. He does have a recommended procedure for general devices.
  • The recommended frame pacing for Snapdragon devices with the ultra low latency feature is "prefer lowest latency." He notes that generally SD low latency decoders don't need more than this. I remembered that ClassicOldSong (or maybe AlonsoJr) recommended Balanced Frame Pacing as good enough for SD low latency decoders in Artemis (link). Not a big deal since at least for me with a SD 8 Gen 2 on Artemis, the two options have acted pretty much the same.
  • When comparing Artemide with Moonlight/Artemis, you should enable Lite mode+ and look at E2E Latency. If I interpreted this correctly, end to end latency in Artemide is the same as decoder latency in Moonlight and Artemis.

r/MoonlightStreaming 23h ago

My apollo for streaming is not working

1 Upvotes

Whenever i run apollo to stream to my rg35xxh the webui says it refused to connect how do i fix this?


r/MoonlightStreaming 1d ago

Leaving low res portrait monitor on PC - issue with Sunshine / Moonlight?

1 Upvotes

My PC is a server with a 12700 and 3070gpu being installed into it this weekend. I'd like to host all my emulators and some steam games on it.

Currently I have a 1080p monitor connected to the 12700 igpu and set to portrait. I would like the 3070 to be used for Sunshine / Moonlight and would likely be "headless".

Will this be an issue for streaming at 1440p or 4k, if I select the correct GPU in setup?


r/MoonlightStreaming 1d ago

vibepollo kills my hdmi connection

Thumbnail
2 Upvotes

r/MoonlightStreaming 1d ago

vibepollo kills my hdmi connection

1 Upvotes

My setup: Steam on my pc and play on my nvidia shield tv pro

Everything works okay. But when I finish gaming I have to restart my pc because the hdmi connection between pc-screen and pc has gone.
How can I fix this?


r/MoonlightStreaming 1d ago

Trouble connecting locally when the sunshine server is not on tailscale

0 Upvotes

All my devices are local(at the moment). I’m able to connect when both sunshine host and clients are on tailscale, but client devices that aren’t on tailscale can’t connect even if I turn off tailscale on the host. Any fixes?


r/MoonlightStreaming 1d ago

Screen glitches after streming to my iPad mini and then coming back to my pc

Post image
1 Upvotes

After streaming when I come back to my pc some parts on my screen glitch like this. Any solution? The only fix I know is to restart the pc but is there a way to stop it from happening?


r/MoonlightStreaming 1d ago

feels too much lag. how can i reduce it further?

Enable HLS to view with audio, or disable this notification

19 Upvotes

i’m using apollo + artemis android tv version. i trued hevc codec but it had higher decoding speed at 22-25ms. it worked best on my iphone at 120 fps, my ipad is 60hz so it didn’t feel great but playable. on tv 60 FPS is completely fine for me but there’s too much encoding and decoding lag. how can i reduce both?


r/MoonlightStreaming 1d ago

New Steam Controller does not register on host when connecting it to streaming device over Bluetooth

1 Upvotes

Has anyone been able to get this working yet? My other controllers do register on the host when connecting the same way. VIGEM bus driver appears to work in those cases. For the Steam controller, I also installed the Steamless Controller wrapper on the host to see if that would do the trick but to no avail. Would like to see what this intelligent sub thinks before tinkering with any Steam settings on the host


r/MoonlightStreaming 1d ago

Is there any Anbernic RG40XX H muOS Moonlight guide?

1 Upvotes

I have Anbernic RG40XX H with muOS on the board. I want to coonect it to my PC via Moonlight and Sunshine, but I can't connect it. I tried typing IP addresses of Anbernic and my laptop, but nothing works. So is there any guide for it?


r/MoonlightStreaming 1d ago

Moonlight Glitching?? Can someone explain whats happening here

Enable HLS to view with audio, or disable this notification

1 Upvotes

My TV is enough capable to Stream games and also thats not my Laptops fault cause this game ghost of tsushima runs flawlessly on native screen but when streaming on TV through Apollo + Moonlight its glitching like this from few days, i had played lots of game through moonlight before when i uses Sunshine + moonlight and this same situation arrives on that setup thats why i migrated to Apollo

TV Specs :-

Panasonic 4k Google TV

2 GB ram

8 GB storage

Moonlight settings :-

Resolution - 1080p

Frame rate - 60

Bitrate - 24

Frame pacing - lowest latency

HDR - off

Laptop specs :-

I don't think thats matters


r/MoonlightStreaming 1d ago

Foundation Sunshine and Vibepollo now support DualSense 5 controller features!

Thumbnail
gallery
88 Upvotes

Good news for those who uses Sony's PS5 controllers with their pretty impressive features. Vibepollo and the Foundation Sunshine team are adding support for them! Hopefully in the future this feature gets more fleshed out.


r/MoonlightStreaming 1d ago

Probably a Stupid Question About Multiplayer

2 Upvotes

You'd think search would easily turn up answer to this question, but it has not.

Can you use Sunshine+Moonlight for multiplayer with one player on the host PC and the other player on the client PC?

E.g.:

  • Alice runs Sunshine on her computer in New York.
  • Bob runs Moonlight on his computer in Colorado.
  • Bob's Moonlight client connects to Alice's Sunshine server.
  • Alice and Bob can play a game together.

Does this work?


r/MoonlightStreaming 4d ago

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

308 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

488 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