Moonlight stutters every few seconds: how to find the cause
Short answer: A stutter that comes back every few seconds usually has something periodic behind it, and Moonlight’s own docs name the usual suspects: background Wi-Fi scans and Bluetooth sharing the radio. Open the stats overlay, watch “frames dropped by network connection” during a hitch, then change one thing at a time: wire the PC, try Ethernet or 5 GHz on the client, turn Bluetooth off, and lower the bitrate.
Checked October 30, 2026 against Moonlight PC v6.2.0 and Sunshine v2026.914.233613 (latest stable releases) and their documentation. Sources are listed at the end of the page.
1. Watch the stats overlay during a hitch
Before changing anything, find out which side the hitch comes from. Moonlight has a built-in performance overlay:
- Windows, macOS and Linux (Moonlight PC): press Ctrl+Alt+Shift+S while streaming, or Select+L1+R1+X on a controller. You can also turn on “Show performance stats while streaming” in settings.
- Android, iPhone, iPad and Apple TV: turn the overlay on in Moonlight’s settings. On Apple TV it is called “Statistics Overlay”.
What the numbers mean, according to the Moonlight FAQ:
- Frames dropped by network connection should stay very close to 0%. If it jumps exactly when the picture hitches, the problem is on the network path (Wi-Fi, powerline, or a bitrate your connection can’t carry).
- Frames dropped due to network jitter means frames arrived too early or too late to show. High jitter is the usual cause, but very high values can also point to hardware or software limits on the client.
- Frame queue latency should normally stay under one frame interval (16 ms at 60 fps). If it spikes while network drops stay at 0%, look at the client device and its display settings instead of the network.
2. Rule out Wi-Fi background scans
A Wi-Fi radio can’t send or receive while it scans for networks, so scans show up as short, regular freezes. Video apps like Netflix hide this with a buffer; a real-time stream can’t buffer without adding lag.
- Mac client on Wi-Fi: macOS scans in the background for Location Services and AirDrop. Moonlight’s FAQ suggests turning both off.
- Windows client with an Intel Wi-Fi adapter: in Device Manager, open the adapter’s properties and set “Global BG scan blocking” to “On Good RSSI” (or “Always” if that option is missing).
3. Test with Bluetooth turned off
On some devices Bluetooth and Wi-Fi share an antenna, and Moonlight’s troubleshooting page calls this a hardware limitation. Stream once with Bluetooth off (use a wired or USB controller for the test). If the hitches stop, try connecting the controller to the PC instead, using a wireless adapter or Bluetooth on the host.
4. Fix the network path
- Wire the host PC to the router and put the client on Ethernet or 5 GHz Wi-Fi. Moonlight’s guide strongly recommends 5 GHz Wi-Fi and highly recommends Ethernet.
- Measure the link. Sunshine’s docs suggest a 60-second UDP test with iPerf3 from the host to the client at about your streaming bitrate. Run
iperf3 -son the host, then on the client:
Ideally packet loss stays under 5% and jitter under 1 ms. If losses come in bursts, you have found your rhythm.iperf3 -c {HostIpAddress} -t 60 -u -R -b 50M - Check for a speed mismatch. Sunshine sends each frame as a burst (every 16 ms at 60 fps). If the host has a much faster link than the slowest part of the path, for example a 2.5 Gbit/s host and a 1 Gbit/s or Wi-Fi client, router buffers can overflow and drop packets. The documented workaround is to set the host network adapter to a lower speed. Sunshine versions after 0.23.1 include networking changes meant to reduce this.
5. Check the host
- If the video gets stuck rather than just stuttering, Moonlight’s docs suggest turning off hardware-accelerated GPU scheduling on the host.
- NVIDIA hosts: Sunshine’s docs suggest disabling
vsync:fastin the NVIDIA Control Panel if you see stutter. - Make sure the GPU isn’t being underclocked, which can slow the video encoder.
- Linux: Sunshine notes that some users report stutter when the game runs inside Gamescope.
6. Lower the load to confirm
Lower the bitrate slider and see if the hitches change. If they don’t, try 720p at 30 fps, which Moonlight describes as the setting with the lowest requirements. If 720p30 is smooth, work back up one step at a time so you know which step brings the hitches back.
Keep notes as you go. Change one thing, stream for a few minutes, write down what happened, then move on. Changing three things at once tells you nothing about which one helped.
FAQ
Why does Moonlight stutter when YouTube and Netflix are smooth on the same Wi-Fi?
Video streaming apps keep a buffer that hides brief network drops. Moonlight streams in real time and can’t buffer without adding input lag, so short Wi-Fi drops, such as background scans, show up as stutter. The Moonlight FAQ explains this for macOS Wi-Fi scans.
Will a higher bitrate fix stutter?
Usually the opposite. Moonlight’s troubleshooting steps suggest lowering the bitrate to find out whether bandwidth is the problem. A bitrate your network can’t carry raises dropped frames and network latency.
Why does the frame rate fall to about 10 fps on the desktop?
That is normal with Sunshine. It encodes at a variable frame rate that follows how often the screen changes, so static content can drop to around 10 fps and rises again once things move. It isn’t stutter.
Sources
- Moonlight wiki: Video is choppy or laggy (official Moonlight docs)
- Moonlight wiki: Frequently Asked Questions (official Moonlight docs)
- Moonlight wiki: Setup Guide (official Moonlight docs)
- Sunshine docs: Troubleshooting (official Sunshine docs)
- Moonlight PC source: settings screen (SettingsView.qml) (Moonlight source, master branch)
- Moonlight for Apple TV source: settings list (Root.plist) (Moonlight source, master branch)