GameStream client for Chrome
C C++ JavaScript Makefile HTML CSS
Latest commit 46a930a Dec 14, 2016 @cgutman cgutman Version 0.6.2
Permalink
Failed to load latest commit information.
h264bitstream Use h264bitstream library to mixup the SPS so OS X will use hardware … Feb 21, 2016
icons added plugin manifest and icons Feb 13, 2016
libgamestream Disable connection persistence and enable a 5 second connect timeout May 9, 2016
moonlight-common-c @ f1adbc1 Update moonlight-common-c to support GFE 3.2 Dec 14, 2016
opus @ f6f8487 loaded image grid, need to finish including google material icons and… Jul 4, 2016
ports Fix makefile and add libraries required for building Mar 11, 2016
static Remove unpair functionality because it doesn't work on modern GFE ver… Oct 30, 2016
.gitignore New message handling, and new NvAPI Feb 25, 2016
.gitmodules Add Opus library for audio decoding Feb 14, 2016
LICENSE Initial commit Feb 13, 2016
Makefile Add profiling infrastructure (currently unused) May 9, 2016
README.md Update readme for current project status Jun 12, 2016
auddec.cpp Use a wait-free algorithm for audio queueing to minimize audio hiccup… Feb 18, 2016
common-c.mk Update common-c submodule to stream from Gen 7 Mar 31, 2016
connectionlistener.cpp Implement fallback to software when hardware decoding is unavailable Jun 9, 2016
gamepad.cpp Skip counting controllers that haven't received a single event yet. T… Apr 16, 2016
h264bitstream.mk Use h264bitstream library to mixup the SPS so OS X will use hardware … Feb 21, 2016
http.cpp Fix returning binary data for box art Jul 4, 2016
index.html Remove unpair functionality because it doesn't work on modern GFE ver… Oct 30, 2016
input.cpp Add the code back to request an IDR frame when switching back to Moon… Jul 11, 2016
libchelper.c Add basic files for building common-c Feb 13, 2016
libgamestream.mk Pairing is working Feb 28, 2016
main.cpp Update to support GFE 3.0.7 Oct 6, 2016
make.bat New message handling, and new NvAPI Feb 25, 2016
manifest.json Version 0.6.2 Dec 14, 2016
moonlight.hpp Update to support GFE 3.0.7 Oct 6, 2016
opus.mk Add Opus library for audio decoding Feb 14, 2016
ports.mk Fix makefile and add libraries required for building Mar 11, 2016
profiling.cpp Improve profiling code May 9, 2016
viddec.cpp Display an error message if the video renderer fails to initialize Sep 12, 2016

README.md

Moonlight for Chrome

Moonlight for Chrome is an open source implementation of NVIDIA's GameStream, as used by the NVIDIA Shield, but built to run in the Chrome browser.

Moonlight for Chrome allows you to stream your full collection of games from your powerful desktop to another PC or laptop running Windows, Mac OS X, Linux, or Chrome OS.

Moonlight also has mobile versions for Android and iOS.

Features

  • Streams Steam Big Picture and all of your games from your PC to your Chrome browser
  • Keyboard and mouse support
  • Hardware-accelerated video decoding
  • Full support for Xbox controllers and PlayStation controllers, and some other HID gamepads
  • Use mDNS to scan for compatible GeForce Experience (GFE) machines on the network

Features to come

  • Gamepad mapping
  • Improved UI
  • Better error handling

Installation

Requirements

  • Chrome browser on Windows, Mac OS X, Linux, or Chrome OS
  • GameStream-compatible computer with GTX 600+ series desktop or mobile GPU (for the PC from which you're streaming)
  • High-end wireless router (802.11n dual-band recommended) or wired network

Building

  1. Install the Chrome Native Client SDK and download the current Pepper SDK
  2. Set the NACL_SDK_ROOT environment variable to your Pepper SDK folder. If you need more detailed instructions, see here
  3. Run git submodule update --init --recursive from within moonlight-chrome/
  4. Run make from within the moonlight-chrome/ repo

Testing

  1. Open the Extensions page in Chrome
  2. Check the 'Developer mode' option
  3. Click 'Load unpacked extension' and point it at your built moonlight-chrome repo
  4. Run Moonlight from the extensions page
  5. If making changes, make sure to click the Reload button on the Extensions page

Streaming

Simply type the hostname or IP into the textbox, pair, choose an app to run, then begin streaming. Once paired, the host will be remembered in a dropdown menu. To exit a stream, press Ctrl+Alt+Shift+Q. To remove focus from the stream, press Ctrl+Alt+Shift.

Contribute

This project is being actively developed at XDA Developers

  1. Fork us
  2. Write code
  3. Send Pull Requests

Check out our website for project links and information.