Oct 31, 2017 Nvidia has finally brought its MacOS game streaming service to Europe and, best of all, it’s free. GeForce Now, Nvidia’s effort to bring Full HD gaming to Mac users who previously haven’t.
In this guide:
Host Gaming PC Requirements
- Jan 05, 2017 Nvidia announced a new way for PC and Mac users to play the latest games without the need for powerful hardware. A new version of the company’s GeForce Now service gives subscribers cloud-based.
- Subscribe to the MacRumors YouTube channel for more videos. GeForce Now is a streaming gaming service that lets you play GPU and CPU intensive games on Macs that might not be able to natively.
- NVIDIA GeForce GTX/RTX 600+ series GPU (GT-series and AMD GPUs aren't supported by NVIDIA GameStream)
- NVIDIA GeForce Experience (GFE) 2.1.1 or higher
- 720p or higher display (or headless display dongle) connected to the GeForce GPU
- 5 Mbps or higher upload speed (only required for streaming outside your house)
Quick Setup Instructions
On your gaming PC, install the GeForce Experience software from NVIDIA. Your PC may need a reboot after installation to finish setup.
Start GeForce Experience and click on the Settings 'gear' button. Then choose the SHIELD option. Make sure the GameStream switch is in the 'on' position (green). If the SHIELD tab is not present, see the troubleshooting steps here.
Start Moonlight and make sure your client is connected to the same network as your PC. In most cases, your gaming PC will show up automatically in the PC list after a few seconds. Click the entry in the PC list to start pairing.
On your PC, enter the PIN displayed in Moonlight and accept the pairing dialog. If you don't see a pairing dialog, try the troubleshooting steps here.
Try streaming a game or app to make sure everything is working. If you encounter issues, try the troubleshooting steps here.
Streaming over the Internet
Automatic configuration (recommended for most users)
For the easiest possible setup process, we highly recommend that you first pair Moonlight with your gaming PC while connected to your home network before trying to use Moonlight over the Internet.
If your gaming PC is already paired with Moonlight:
- Install the Moonlight Internet Hosting Tool on your gaming PC.
- Run 'Moonlight Internet Streaming Tester' via the Start Menu to confirm it's working properly.
If your gaming PC is not already paired with Moonlight:
- Install the Moonlight Internet Hosting Tool on your gaming PC.
- Run 'Moonlight Internet Streaming Tester' via the Start Menu.
- Type the IP address that is displayed on the tester's success dialog into the Add PC dialog of Moonlight.
- You must ensure your Moonlight client is not connected to the same network as your gaming PC during this step or the connection may not be successful.
Having trouble?
Ensure UPnP is enabled in your router settings and delete any older Moonlight port forwarding entries.
Try streaming from a different network. Some corporate or public WiFi networks block streaming applications like Moonlight. If that happens, you may have success with the ZeroTier setup steps below.
Run the 'Moonlight Internet Streaming Tester' found in the Moonlight Internet Hosting Tool and ask for help on our Discord server. Be sure to have the tester log handy.
ZeroTier
ZeroTier which is a service that acts similar to a VPN, but with better performance in most cases.
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.
You should use ZeroTier if you are in one of the following situations:
- The automatic tool above says you're behind a Carrier-Grade NAT, that you have two routers connected together, or otherwise doesn't work and you can't resolve it yourself.
- You have multiple gaming PCs on your network that you'd like to stream from over the Internet.
- Moonlight is blocked on the network you want to use for streaming.
To set it up:
- Create an account on the ZeroTier website. The free service is perfectly fine for Moonlight.
- Download the Windows version for your PC from the Downloads page and install it on your host gaming PC.
- Install ZeroTier on your client device.
- If using Moonlight on a PC or Mac, download and install the appropriate version from the Downloads page.
- If using Moonlight on Android or iOS, the apps are available on the Google Play Store and Apple App Store.
- Go to the Networks tab then create a new network.
- Uncheck all checkboxes in the 'IPv6 Auto-Assign' section (if checked)
- Under the 'IPv4 Auto-Assign' section, ensure 'Auto-Assign from Range' is checked, click the 'Easy' button, then choose '10.147.17.*'
- Copy the Network ID from that page and type it into the ZeroTier app's Join Network dialog (or use the e-mail invite system).
- If you get a prompt from Windows about asking for the network type/location, choose Private or Home network to avoid firewall issues.
- After joining the network on each device (including your client running Moonlight!), go back to the ZeroTier Network page and check the Auth checkbox for each member of your network to allow the devices to connect with each other. ZeroTier should show up as connected on all devices.
- With ZeroTier connected on your client and host PC, open Moonlight and click/tap the Add PC button, then type the 'Managed IP' of your host PC as shown on the ZeroTier Network page.
To connect additional clients or host PCs, just download ZeroTier on the device, then complete steps 5-7.
Don't forget to connect to your ZeroTier network when you want to stream over the Internet!
Manual port forwarding (advanced)
If the automatic tool doesn't work, you can try manually forwarding the following ports through your router to your host gaming PC's IP address for streaming to work over the Internet:
- TCP 47984, 47989, 48010
- UDP 47998, 47999, 48000, 48010
Nvidia Game Stream To Mac Windows 10
If your router has separate options for 'internal port' and 'external port', you should set them to the same values. For example, your port forward for TCP 47989 would be set as internal port 47989 and external port 47989.
To verify the basic port forwarding was done correctly, visit http://www.canyouseeme.org/ 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 Moonlight already found your gaming PC automatically while on the same network, it should connect to your PC over the Internet without any additional steps. If you're not on the same network as your PC, go to http://www.whatsmyip.org/ from your gaming PC, then enter the IP address you get there into Moonlight. If you don't get an error, you should be all set.
IPv6 (advanced - certain ISPs only)
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.
Navigate to http://test-ipv6.com/ on both your host gaming PC and client device/PC to check their IPv6 test scores. You may need to disable Chrome's Data Compression option to get accurate results on mobile.
If your host PC scores 0/10, check your router settings for an IPv6 option. Make sure it's enabled and set to 'Native', 'Automatic', 'DHCPv6', or similar. Avoid '6to4' or 'Teredo' options. Restart your router and try the IPv6 test again. If you can't find an IPv6 option or it's not working, contact your ISP and ask whether they support IPv6.
If you can't get your host gaming PC to 10/10, you won't be able to use this method for streaming over the Internet with your ISP.
If your client device doesn't score 10/10 but your host PC does, you can try the Cloudflare 1.1.1.1 app for iOS and Android with the free 'WARP' feature to gain IPv6 connectivity on networks that don't natively support it.
Install the GameStream IPv6 Forwarder on your host gaming PC (same PC that runs GeForce Experience). This step is only required if you do not have the Moonlight Internet Hosting Tool already installed.
If Moonlight already found your gaming PC automatically while on the same network, it should connect to your PC over IPv6 without any additional steps. If you haven't already paired to your gaming PC while on the same network, click Add PC and type the IPv6 address of your host gaming PC.
All officially supported Moonlight clients (iOS/tvOS, PC, Android) support streaming from servers over IPv6. Unofficial clients (Embedded, Vita) may not.
Firewall setup
If you are not able to stream when connected to the same network as your gaming PC, you may need to add firewall rules to stream successfully. First, try disabling the firewall software on your gaming PC (usually Windows Firewall or a firewall integrated into your anti-virus software) to confirm it's a firewall-related problem.
Windows Firewall
GeForce Experience should create rules for Windows Firewall automatically, but in the event that they don't work, you can create the rules required to host streaming by using the following steps:
- Open a Command Prompt or PowerShell window as administrator
- Run the following 2 commands:
- Ensure your PC now appears online in Moonlight
Other firewall software
For other firewall products, you should follow their instructions to create exceptions for the following ports:
- TCP 47984, 47989, 48010
- UDP 5353, 47998, 47999, 48000, 48002, 48010
Moonlight Client Setup Instructions
Client Requirements
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.
iOS: An iOS device running iOS 8.0 or later.
tvOS: An Apple TV device running tvOS 12.0 or later.
PC: Windows 7+, macOS 10.13+, or Linux. Your PC should be new enough that it supports hardware-accelerated H.264 video decoding, otherwise it will have to use CPU decoding. Most PCs made since around 2010 should work fine, though older PCs may not be able to stream at 60 FPS without lag.
ChromeOS: All ChromeOS devices should have the required hardware.
Internet and Network Requirements
To have a good experience, you need a mid to high-end wireless router with a good wireless connection to your client device (5 Gigahertz (GHz) highly recommended, Wireless-N (802.11n) or better strongly recommended) and a good connection from your PC server to your router (Ethernet/wired connections highly recommended).
Keyboard/Mouse/Gamepad Input Options
PC client
PC clients support keyboard, mouse, and touchscreen input and up to 4 game controllers (with mappings for most common gamepads included).
- Ctrl+Alt+Shift+Z - Toggle mouse pointer capture
- Ctrl+Alt+Shift+X - Toggle between full-screen and windowed mode
- Ctrl+Alt+Shift+Q - Quit the streaming session (leaving the game running on the host PC)
- Ctrl+Alt+Shift+S - Open performance stats overlay
Touchscreen controls
Moonlight for Android, iOS, and PC use the touch screen as a way of controlling the mouse cursor. Multi-touch devices can emulate more mouse functions than single-touch devices.
- Swiping across the screen moves the mouse cursor in the direction of the swipe.
- Tap once with one finger to left-click.
- Tap and hold in the same place to start a click and drag. After a short while, swipe the finger to drag in the direction of the swipe.
- Hold one finger down and tap a second finger to right-click.
- Tap with three fingers to open the on-screen keyboard (Android and iOS only).
- Scroll vertically by dragging with 2 fingers (iOS only for now).
Android client
Moonlight supports gamepads that use the standard Android button mapping. It also supports some popular non-Android controllers like the Xbox 360, Xbox One, PS3, and PS4 controllers. However, we recommend testing these with your specific Android device first, because some controllers have latency or disconnection issues (particularly with PlayStation controllers over Bluetooth).
For non-SHIELD devices and devices running Android 7.1 (Nougat) or earlier, using an external mouse with proper mouse capture on Android requires a rooted device. If you want to use an external mouse on your rooted device, you should download app-root-release.apk
from the GitHub releases page. NVIDIA SHIELD devices and Android 8.0 (Oreo) have mouse capturing built-in that Moonlight uses without needing root. Moonlight for Rooted Devices is not available for Android 8.0, since the non-root version contains all features that required root using the new Android Oreo APIs.
To toggle capturing the mouse cursor on Moonlight for Rooted Devices, press Ctrl+Alt+Z.
If you don't have a mouse connected to your Android device, you can emulate one using a game controller. Press and hold the Start button to toggle mouse emulation. When mouse emulation is on, you can use either analog stick to move the cursor. The A button left clicks and the B button right clicks.
iOS/tvOS client
If your device is running iOS/tvOS 13 or later, you can use Xbox One S and PS4 controllers with your device over Bluetooth. Moonlight supports all physical buttons on these controllers, including Select, L3, and R3. You can also still use MFi controllers if you want, but they may not have all of the buttons that an Xbox or PS4 controller has.
Devices running iOS/tvOS 12 or earlier are limited to MFi controllers. We recommend the 'extended layout' controllers which have most buttons present on a typical Xbox controller. Notably lacking on most MFi controllers are the L3 and R3 buttons and the Select button. When using the Auto setting for on-screen controls on iOS, an overlay will be displayed containing the buttons that your physical controller is missing.
You can use the Apple TV remote as a touchpad to move the mouse cursor and click.
To disconnect from your PC while streaming on iOS, swipe from the left edge of the screen. To disconnect on tvOS, double-tap the Menu button on your Apple TV Remote or press the Xbox/PS button on your gamepad.
iCade gamepads (old iOS gamepads that fake a Bluetooth keyboard) are not supported by Moonlight.
Nvidia Stream App
Adding custom programs that are not automatically found
You can stream any almost any game or app by adding the EXE file to GFE manually (if it's not found by the automatic app scan). Open GeForce Experience, click the Settings (gear) button, click SHIELD on the sidebar, then click the Add button on the right. Browse to the app or file you want to add and click OK. You can rename the app using the Edit button.
The next time the client opens and displays the App List, the newly added programs and games should be displayed and ready to stream.
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.
Using Moonlight to stream your entire desktop
Follow the steps above for adding a custom program, but for the path use: C:windowssystem32mstsc.exe
You can rename the remote desktop entry using the Edit button. When you click this entry, you will see your full desktop where you can run whatever you want.
Even though the mstsc.exe executable is typically used for Microsoft Remote Desktop, this is only an indicator to GeForce Experience that you want to stream your desktop. It does not actually launch mstsc.exe or use RDP to stream.
Troubleshooting
See our dedicated troubleshooting wiki page for detailed steps for resolving a variety of issues.
If the information on the wiki doesn't help you, you can join our Discord server to get help from the developers and the community. This is the recommended way to get the fastest help, since many people can answer your questions.
If you don't want to use Discord, you can email info@moonlight-stream.org but be aware that responses may be delayed, since this only goes to core developers. Please ensure you include all necessary information, including GeForce Experience and driver versions, specifications of your client device, streaming settings, etc.
By Malcolm Owen
Thursday, March 15, 2018, 11:25 am PT (02:25 pm ET)
As newer games are released, the specifications needed to play them smoothly continue to rise, and can end up being unplayable on some desktops. In the event that there happens to be a second computer that's more powerful and more suitable for gaming, the obvious answer is to use that one, but there are situations where it is unfeasible.
For example, the more powerful computer could be in a completely different place in the house to where you would prefer to play the game. Maybe there's a Mac mini connected to a large living room TV that isn't great at displaying games, but a Mac Pro in the home office which can easily do the job, but you don't want to move.
Valve Software's answer to this is built into the app for the Steam online game marketplace: Steam In-Home Streaming.
Using two computers over the same network, the powerful host computer can play the game and send a video stream to a client desktop, which displays the image. Inputs taken from peripherals, like keyboards and game controllers, are fed back from the client computer to the host, which then performs the commands in-game.
The feature also offers the benefit of not having to install the game on the client desktop at all, only the host, minimizing the amount of storage used up by game files. It also expands the Mac's game collection, as the stream works across Windows and Mac desktops, meaning Windows games are playable on a Mac in this way.
Requirements
Two computers are needed for In-Home Streaming: the host and the client. Originally the host was limited to Windows PCs, but it has since been updated to work with Mac desktops, and Linux.
In terms of hardware, Valve recommends a minimum of a quad-core processor for the host. Client desktops can be lower-powered but must be capable of H.264 decoding, preferably using hardware acceleration.
For Mac specifically, the host needs to run OS X 10.8 at a bare minimum.
Both systems need to be on the same network for In-Home Streaming to function. It is recommended to use a wired network due to the high amount of bandwidth required, but there are also claims it will work on wireless N and AC networks and some powerline networking equipment.
As it is a feature of Steam, the software itself has to be installed on both the host and client, which can be downloaded from the store's website. It is also expected that the user has an account set up with Steam, has games they want to play on the account, and has already installed them on the host.
Setting up on Mac
Launch Steam on both the client and the host systems, and log in to the same account on each desktop. For Mac users, the Steam client can be accessed within the Applications folder in the Finder.
On both computers, select Steam in the Menu then Preferences. In the Preferences Window, select In-Home Streaming in the left-hand column, then click the tickbox next to Enable streaming if one is not present.
This window will show other Mac and PC desktops on the network that are logged into the same account, as well as whether they are enabled for In-Home Streaming or not.
Host Mac Settings
To fine tune the host's settings, click the Advanced Host Options button midway down the window.
This new window will offer up a number of ways to change how the stream is generated on the host desktop, with the default options usually fine for most users. If you are familiar with the specifications of the client Mac, you could select or disable the hardware-encoding and capture options to suit your hardware, but it isn't essential.
The top option, 'Change desktop resolution to match streaming client,' will aim to match the resolution of the client system for a better experience, but this could potentially cause performance issues if the host is not capable of rendering the game at that level. Keeping this switched off will instead send the same resolution as the game is already set to run at on the host.
The 'Dynamically adjust capture resolution to improve performance' setting is self explanatory, and is generally a good idea to keep enabled. The stream will try to reduce in resolution if issues occur, like network lag, instead of stopping completely or stuttering at a higher resolution.
If software encoding is employed but it is choking the gameplay, you can limit the number of threads used in the Number of software encoding threads dropdown box instead of allowing Steam to automatically manage it for you.
Lastly, it is highly advised to enable 'Prioritize network traffic,' as for newer routers with network traffic prioritization features, this will limit the impact of other network users on the stream's connection.
Close this window by clicking OK.
Client Mac Settings
The main Preferences window includes three basic options for how users want the stream to appear from the host on the client. Balanced is the default, while Fast will prioritize speed rather than picture quality when decoding the stream, and Beautiful opts for higher quality images but potentially lower frame rates.
More settings are available by clicking Advanced Client Options.
In cases where the network is being used for other tasks or bandwidth needs to be preserved for various reasons, the Limit bandwidth dropdown box can restrict the stream's bandwidth usage. Generally, the more bandwidth is used, the better the stream will appear on the client.
The 'Limit Resolution' dropdown gives the client the ability to limit the stream's resolution, which can reduce the overall bandwidth used or sacrifice the resolution in favor of higher frame rates. The stream can go as low as 480p, with the upper limit being the display resolution of the client system.
There is support for multiple speaker configurations in the menu, allowing clients to request stereo, quadrophonic, and 5.1 surround sound from the host, if available from the game and usable on the client. It is usually advised to stick to Stereo to preserve bandwidth usage for the visual element of the stream.
A tickbox is also available to enable hardware decoding on the client, if it has supporting hardware. If it does not, this is instead performed in software, and may be more taxing to the client Mac overall.
Lastly, the 'Display performance information' tickbox will show data relating to the stream on the client's screen, making it useful for diagnosing a poor quality video feed from the host.
Click OK to close the window.
Starting the stream
Ensure Steam is running on both the client and the host desktops.
On the client, select Library in the main Steam window, and select the game you wish to play from the left-hand column. Available to play games will be brighter on this menu, regardless of whether it is installed locally or streamable.
In the selected game's screen, click the arrow next to Play to bring up a dropdown box, and select the host system from the list. Click the now-renamed Stream button to launch the game.
On the first occasion the Host will be used, the client will show a notification that actions need to be carried out on the Host. This refers to drivers that need to be installed by Steam in order to stream.
On the Host, click Install on the Gamepad Driver Update window, and pass through the installation process for Steam Input. Typically this requires clicking Continue, Install, entering your macOS account's password, authorizing it in the Security & Privacy settings menu following the 'Allow' notification, Ok on the notification, then Close once the installation completes.
Attempt to run the game stream again on the client. A second host actions notice will be displayed, this time for audio drivers.
On the Host, click Install on the Audio Driver Update window, and go through its installation process. This time the path for the default installation of Ambrosia AudioSupport will be Continue on the package installation determination notice, Continue on the welcome screen, Install, enter the Mac account's password, Continue Installation at the restart notice, and authorizing the Security and Privacy settings to allow it to continue.
At the successful installation screen, click Restart to reboot the Mac.
Once it has booted and been logged in, load Steam again on the Host, and reattempt to load the stream from the client. On this third attempt, the host should start up the game and commence the stream, which will then be displayed and playable on the client, if everything is installed correctly.
Note that this process is shorter for future play sessions, as the drivers only need to be installed once.
A Word on Windows
As games can be streamed from a Windows host to a Mac client and vice versa, it is worth covering how to perform this in Windows. Handily, the basic instructions are the same for both platforms.
Once installed on Windows, launch Steam, click the Steam menu item in the top-left corner, then Settings. In the new window, select In-Home Streaming in the left-hand column, then follow the rest of the Mac guide above.
The main difference is in the driver installation for the host, as while the initial notice window will be the same for both GamePad and Audio drivers, the process of installing the drivers themselves will differ. Unless there is something specific to the host's particular Windows installation that needs attention, the default options will work fine.
Starting the game stream using Windows as a client is identical to Mac, once signed into Steam.