I have played for an hour + on some games and been just fine. 60 FPS, running AMD GPU more then capable.
My issue, is that every so often i can watch the FPS start to bounce on the moonlight app itself (Steam deck has the ability to view wattage and stats, including a graph of FPS to check for drops etc.) Once this occurs it tanks the app and i get a "poor connection to PC" in the bottom left. Ive sat at my desk and seen my PC running medium usage while playing the game and no FPS drops on the PC itself. No max loads.
While GameStream was meant to push Nvidia gear, it also sparked the creation of the wonderful Moonlight software. This free, open-source app has given people access to the output of their GeForce cards from all kinds of screens since 2018. It's how I played Marvel's Midnight Suns on an iPad on my couch and Elden Ring on a Windows laptop at my in-laws' place, streaming from my own home.
With Moonlight, you can beam a game from an Nvidia card inside a Windows PC to a Windows/Mac/Linux computer, Chrome OS, iOS and Android and Amazon FireOS devices, a Raspberry Pi 4, and, if you're willing to tinker, homebrew apps on the PlayStation Vita, Wii U, LG's WebOS, and other single-board computers. It also works with a Steam Deck, as Moonlight installs fairly easily as a Linux app on that system. As noted, this device doesn't even have to be on your home network if you've set up your game-streaming PC and network as such.
This option also gives you the ability to stream from multiple PCs that are all connected via a single Internet connection. However, it requires software on your hosts and clients that must be running and connected in order to stream over the Internet, unlike the other Internet streaming options.
To verify the basic port forwarding was done correctly, visit and test port 47984 and 47989. If port forwarding is working, they should both report "Success" when you test them. The other ports are only active during streaming, so the only way to test them is via Moonlight.
If you are lucky enough to have native IPv6 connectivity to your host gaming PC, you may opt to use IPv6 for Internet streaming. This option is only recommended for those very familiar with network administration. You may combine these steps with the Moonlight Internet Hosting Tool above to stream over IPv4 or IPv6, depending on your client's connectivity.
Android: An Android device running Android 4.1 (Jelly Bean) or newer. Newer and "flagship" devices with higher processor speeds are more likely to be able to handle Moonlight well by using the hardware video system on the device to produce smooth streaming without video stuttering or freezing.
If quitting an application doesn't stop Moonlight, press Ctrl+Shift+Alt+Q on Moonlight PC to quit the streaming session. On Moonlight Android and iOS, pressing the home key will switch out of the streaming session. Choose the Quit Session option from the App List to fully quit the streaming session.
My approach uses NVIDIA's GameStream protocol to stream games, coupled with a free and open-source client implementation of GameStream called Moonlight, connected to my TV using an relatively cheap streaming device like the Google Chromecast (which is what I started with and then later upgraded to a NVIDIA Shield Pro).
In-home game streaming definitely works via wifi, but hardwiring your gaming PC with an ethernet connection can make a big difference, and even more if you can hardwire your client device to ethernet as well. In my case, I already had my gaming PC connected to my router via ethernet, and I purchased a simple gigabit network switch to network-enable the rest of the ethernet ports in my house so that I could connect other devices to the network.
I started with the Chromecast approach because I already owned the device (and if I didn't, they're relatively cheap and a great place to start). Overall, it worked really well, especially after I added the ethernet adapter. For (mostly) unrelated reasons, I later decided to upgrade to the more expensive NVIDIA Shield Pro, which is a similar but more powerful Android-based streaming device that connects to your TV (just like a Chromecast or Roku). Since Moonlight works with Android, I simply installed Moonlight on the Shield just like I did with my CCwGTV, added my PC via its IP address, and I was good to go.
Ultimately, I'm glad I upgraded from the Chromecast to the NVIDIA Shield Pro, but it was quite a bit more expensive than the Chromecast approach which kinda defeats the purpose of using it to replace a gaming console. Instead, if you're going to get something like the Shield, do it because it's an awesome media streaming device, and the 4K AI Enhanced upscaling feature is super cool, and then it's just icing on the cake that it does a great job at in-home game streaming. I haven't attempted to measure this, it definitely seems like there's less input lag when using my Xbox controller with the Shield Pro, and the built-in gigabit ethernet capability probably helps as well.
I've been messing around with getting moonlight-embedded running in a docker container on LibreELEC and thought I'd share the current state. This allows you to stream games from a PC to your HTPC device (Raspberry Pi 3B+ in my case) through the NVidia GeForce gamestream protocol. It currently supports only audio/video out and works pretty well at 1080p/60fps going from my gaming PC to my TV in another room over wifi. I have not tried to get controllers working as I just connect my controller to my PC via bluetooth.
I'll confess I haven't experimented much with controllers connected to the Kodi device but I'd like to expand that capability in the future. I just tried plugging in a USB mouse to the Kodi device and that seemed to work inside moonlight...but that's a fairly basic input device. What kind of controller are you trying to use? Is it wired or wireless? You can check this file to see if its got a registered mapping for moonlight:
Hi, thanks for creating this, I installed it just now. I notice the link you posted (moonlight-embedded-launcher-0.4.zip) was contained v0.3 inside the folder. I found v0.4 on your github so installed from there.
On the initial install of my LibreELEC, I had to adjust overscan to fit into my TV screen. But when I launch Moonlight, the streaming display doesn't seem to respect that and the edges of screen stretch beyond it. I am streaming my desktop. Also when I quit using Ctrl+Alt+Shift+Q, it doesn't seem to terminate the connection on my computer (meaning I do not get audio on the host back). I'm not sure if this is related to an issue with your code or not. I'm going to try the moonlight embedded on OSMC next. Thanks.
Oops fixed the incorrect link in the first post, thanks for pointing that out. I think the previous poster is correct, you probably need to change your TV HDMI settings to correct the overscan issue. Regarding streaming your desktop I found the -quitappafter flag that should tell the host to exit streaming if you quit on the LibreELEC device. Can you run the following command and let me know if it resolves the exit issue (seemed to work for me but just want to double check)? I'll get this incorporated into the next release.
to force stream at 1080p, 30fps. Other options are available, and you can find them by entering moonlight in the terminal. This will start Steam on the host computer, which I find is the best way to proceed since it has native support for navigation using the Xbox controller, instead of requiring a mouse and keyboard. Applications that are not bought on Steam can also be added to the library manually for easy access. However, there are some issues with the controller shortcuts, since I found that running these programs switches Steam to desktop mode instead of Big Screen mode, which means that some of the hotkeys get activated while playing the game. My solution at this time is to disable these hotkeys, which in turn necessitates a mouse to be present.
Hi. I've setup a VM, passed through one of the good GPUs, Nvidia GTX1070, Assigned 3 cores out of my 4 core gPU ?, and gave it 4 GB memory. On passthrough, Fortnite game plays very well. No lag or anything. On streaming to Raspberry Pi via Moonlight, moving the mouse alone has lag already. I did this also on Chrome browser via Moonlight, still with the same results.
Does games streaming take more toll on the host cpu? In this case, my Unraid? Cause the VM only has 4 GBs, in which if playing passthrough, works just fine. On streaming, it is not. Furthermore, my issues is mostly related to mouse and keyboard movement. Hope others can shed some light.
I a streaming to a RPi3+ with 1080p60fps and there is limited to no lag on most games. I had some issues before though. To isolate the issue, can you try 720p30fps and see whether you still have a lag?
I have moonlight setup on another PC and GFE streaming services enabled. Every game it detects works fine except for nfs payback. It launched, the origin client says the game is running and it appears in task manager for a few seconds, then it closes. The game always works when I play it normally but not when I stream it.
I'm talking about GFE streaming over lan as in nvidia shield not streaming gameplay over the internet via twicth or YouTube or whatever. I've streamed payback before, but I've gotten a new PC awhile ago and only recently started streaming games to my PC in the lounge. However nfs payback is the only game that doesn't streams and crashes.
dca57bae1f