• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!

Game streaming to other Android devices or PCs with Moonlight and GeForce Experience

Search This thread

cgutman

Senior Member
Aug 14, 2010
485
428
Please don't ask for Moonlight help on Nvidia's forums! It's not their responsibility to support this app. Ask on this forum, another non-Nvidia forum, by email, etc

What happened to Limelight?/Why did you change your name?
On April 21, 2015, we received a Cease and Desist letter from Limelight Networks, Inc. They also do streaming services and were concerned about confusion between this project and their company trademarks. To comply with the terms of their C&D, we've decided to rename our project to Moonlight.

Quick Links
Main website: https://moonlight-stream.org
Help: https://github.com/moonlight-stream/moonlight-docs/wiki/Setup-Guide
Discord: https://moonlight-stream.org/discord
PC GitHub project: https://github.com/moonlight-stream/moonlight-qt
iOS GitHub project: https://github.com/moonlight-stream/moonlight-ios
Android GitHub project: https://github.com/moonlight-stream/moonlight-android
Android GitHub releases page (APKs): https://github.com/moonlight-stream/moonlight-android/releases
Embedded port (for Raspberry Pi and other embedded devices): https://github.com/irtimmer/limelight-embedded
GearVR port (for GearVR devices): http://sideloadvr.com/detail.php?id=14

iOS version
The iOS port of Moonlight is now on the App Store: https://itunes.apple.com/us/app/moonlight-game-streaming/id1000551566

Windows, Mac, and Linux port
PC port binaries: https://github.com/moonlight-stream/moonlight-qt/releases
PC port source: https://github.com/moonlight-stream/moonlight-qt

Moonlight for Chrome OS
Download the latest version from the Chrome Web Store.

General Streaming Latency Information
The latency of streaming is dependent on the device you're streaming to and the network you're streaming over. Different devices have different H.264 hardware decoding latency. After streaming, a toast will show up with latency numbers. It will show the total client latency and the portion of the total client latency spent waiting for the hardware decoder. Note that the total client latency does NOT include network latency, so the real latency is higher than the number you see. The total client latency is a measure of the time that the first packet in a frame is received to the time that the frame is released for rendering on screen.

Anecdotal Hardware Decoder Latency Numbers
These are some latency numbers (from memory) I've seen on my test devices as of Moonlight Android 4.0.1. I'll try to keep updating this as I test.

Tier 1 devices:
Tegra 4 - Nvidia Shield - 5 ms - 1080p60 supported
Intel Atom/Bay Trail/Moorefield - Nexus Player - 8 ms - 1080p60 supported (may need a USB OTG Ethernet adapter for consistent performance)
Razer Forge TV - 10 ms - 1080p60 supported - H.265 supported
Tegra X1 - SHIELD Android TV - 10 ms - 4K60 supported - H.265 supported in hardware but needs changes in Moonlight to work well
Tegra K1 - Nexus 9 - 15 ms - 1080p60 supported
Tegra 3 - OUYA and Nexus 7 (2012) - 17 ms - 1080p60 supported

Tier 2 devices:
Broadcom VideoCore IV - Fire TV Stick - 20 ms - 720p60/1080p30 supported
Exynos 7420 - Galaxy S6 - 20 ms - 1080p60/4K30 supported - H.265 supported
Snapdragon S4 Pro (rebranded 600) - Nexus 7 (2013) - 20 ms - 720p60/1080p30 supported
Snapdragon 801 - HTC One M8 GPE - 20 ms - 1080p60 supported
Snapdragon 800 - Nexus 5 - 20 ms - 1080p60 supported
Snapdragon 600 - Fire TV (2014) - 30 ms - 720p60/1080p30 supported

Tier 3 devices:
MediaTek devices - Fire TV (2015) - 55 ms - 1080p60 supported - H.265 supported

Adding games/apps that aren't 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 Preferences tab, click GameStream 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 on the right (near the add button).

Using Moonlight as a remote desktop solution
You can stream the entire Windows desktop via Moonlight. Follow step 2 from this guide

Streaming over the Internet
Install the Moonlight Internet Streaming Helper on your host gaming PC to enable streaming over the Internet. If your router supports UPnP, you won't need to make any manual changes.

If the above tool isn't able to enable Internet streaming automatically or your router doesn't support it, forward these ports manually:
TCP 47984, 47989, 48010
UDP 47998, 47999, 48000, 48010

General requirements for current APK:
SoC capable of decoding H.264 High Profile in hardware (Snapdragon, Exynos, Tegra 3 or higher, Rockchip, and more)
Android 4.1 or higher
GeForce Experience with a GTX 600/700/800/900 GPU or GTX 600M/700M/800M (GT-series not supported)
Xbox, PS3 (with SixAxis app), Moga (B/HID mode), Shield, or Ouya controller (other controllers may work too in HID mode)
Mid to high-end wireless router (preferably dual-band 802.11n or better)
Good wireless connection to your Android device

Troubleshooting tips:
1. Make sure GeForce Experience is open, up-to-date, and that you've scanned for games.

2. Make sure your device is on the same network as your computer for initial pairing.

3. Try disabling any firewall software running on your machine.

4. Try rebooting your machine. Sometimes the streaming software gets into a messed up state where it won't work normally until the machine is rebooted.

5. Make sure your Android device has a strong wireless connection (and your PC too, if it's connected wirelessly).

6. For Internet streaming, make sure to install Moonlight Internet Streaming Helper on your host gaming PC, then run the Moonlight Internet Streaming Tester that it installs to troubleshoot further.

7. To check if GFE is working properly, try navigating to the following URLs on your GFE PC:
http://127.0.0.1:47989/serverinfo?uniqueid=1234
https://127.0.0.1:47984/serverinfo?uniqueid=1234

For those with latency issues, please see this post.

Device-related issues
Depending on the wireless chipset on your phone/tablet, you may have a bad streaming experience if Bluetooth is active while streaming. Unfortunately, there's nothing we can do about this. If you experience significant connection degradation with a Bluetooth controller connected, you could try connecting the controller to your PC (see the section above), a USB Ethernet adapter, or controller that connects directly to your Android device (assuming your Android device supports USB OTG)

Older Changes:

Update 12 - March 13, 2014:
Significant video quality improvements. Lower video latency. New UI that makes it easier to choose the best streaming settings. Transient messages are displayed while streaming if network or device problems are detected.

Update 11:
Tegra hardware decoding latency bug is fixed. Hardware decoding is now used by default on Tegra and Rockchip devices. Performance is vastly improved on Tegra devices (1080p60 decodes in real-time, even on Tegra 3). The parser bug causing additional artifacts and image corruption is (finally) fixed.

Update 10:
Added options to force either hardware or software decoding. Reduce audio decoding CPU usage. Fix image quality and performance regressions from update 9.

Update 9:
Reduced CPU usage of video decoding. Added options to choose target resolution (720p or 1080p) and FPS (30 or 60).

Update 8:
Added a checkbox to choose image quality vs performance (only for CPU decoding). Optimize CPU decoding further. The frame rate is now playable on the Ouya with its Tegra 3..

Update 7:
Connectivity issues should be resolved now. Update to the latest APK if you were experiencing connection failures with the last couple of releases.

Update 6:
There's now GUI feedback when connecting. The whitelist for hardware decoding (that only included Qualcomm decoders) has now been replaced with a blacklist (currently containing TI and Nvidia decoders). The Exynos decoder in Exynos 5 Octa has been confirmed to work.

Update 5:
The app will now request a new reference frame if packet loss occurs on the video stream. This means that the stream will recover from blockiness and artifacting that occur when video packets get lost. CPU decoding for non-Snapdragon devices is a bit better. Fixed back button on Shield.

Update 4:
Added multithreaded CPU H264 decoding support for non-Snapdragon devices with ffmpeg. Both landscape orientations now work. This grows the APK significantly so don't be alarmed when this download is larger than previous builds.

Tegra 4 is now very smooth in the games I've tested. Tegra 3 works significantly better than before, but still not perfect (and won't likely ever be as smooth as Snapdragon or Tegra 4).

For Qualcomm devices, a dual-core SoC (even as old as Cortex-A8 stuff) is sufficient due to the hardware decoder. For other devices, CPU decoding will now be used. These devices will need more CPU horsepower (a quad-core Tegra 3 is almost enough).

Look forward to keyboard support and a better GUI coming in the next several days.

Update 3:
Frame pacing improvements for Snapdragon and Tegra devices, although Tegra still has more latency than Snapdragon devices. If you have issues with blockiness or discoloration in the video stream, make sure that you have a good wireless connection. Moonlight doesn't currently deal with packet loss as well as the Shield streaming app.

Update 2:
PS3, Xbox, Shield, and Moga Pro controllers are working with the latest APK.

Update:
Audio is now working. Video is working pretty well on Snapdragon devices (with some lag on Tegra devices). I've attached the current APK here for those that want to test. Due to the framework we're using for video decoding, this app requires Android 4.1 or higher. This is still in alpha so expect bugs.

Original post:
Here is a demo of a WIP app that uses the same Shield streaming technology to stream to any Android device. Controller and mouse input works. Keyboard input isn't implemented yet. Video support works (minus some artifacts at rare points and minor frame pacing issues). Audio doesn't work yet (not sure what format it is).

We've had success with very low H264 decoding latency on Snapdragon S4 Pro/600 devices (like the 2013 Nexus 7 and HTC One), but the Tegra 3/4 decoder has a high latency per frame (~1 second) that makes streaming more laggy on devices like the Ouya, 2012 Nexus 7, and even the Shield itself.

The next big step to a release-ready app is audio support (and the obligatory code cleanup). I'd be happy to respond to any questions about the way the app or the GFE streaming protocol works. If there's significant interest in this, I'll try to put more time into finishing it ASAP.


Demo video (a bit old now):
http://www.youtube.com/watch?v=0VOti83qZRU

Downloads:
I'd recommend downloading the app from the Play Store. Updates are automatically applied through the Play Store when they are released. Crash reports also get to us automatically if you use the Play Store version and click the Report button if Moonlight crashes.

Google Play Link

Sometimes APKs are more convenient for sideloading and other things, so they will continue to be posted.

You can find the latest APKs on the GitHub page here: https://github.com/moonlight-stream/moonlight-android/releases
 
Last edited:

Speedy Gonzalez

Senior Member
May 4, 2011
266
75
Louisiana
Here is a demo of a WIP app that uses the same Shield streaming technology to stream to any Android device. Controller and mouse input works. Keyboard input isn't implemented yet. Video support works (minus some artifacts at rare points and minor frame pacing issues). Audio doesn't work yet (not sure what format it is).

We've had success with very low H264 decoding latency on Snapdragon S4 Pro/600 devices (like the 2013 Nexus 7 and HTC One), but the Tegra 3/4 decoder has a high latency per frame (~1 second) that makes streaming more laggy on devices like the Ouya, 2012 Nexus 7, and even the Shield itself.

The next big step to a release-ready app is audio support (and the obligatory code cleanup). I'd be happy to respond to any questions about the way the app or the GFE streaming protocol works. If there's significant interest in this, I'll try to put more time into finishing it ASAP.

http://www.youtube.com/watch?v=0VOti83qZRU

sounds very promising you should post this info over the nexus 7 forum HTC and Samsung forums you will get more interest there
I will be happy to try it on my note 3 if you get audio working :)
 
  • Like
Reactions: cctoro

nielo360

Senior Member
Mar 5, 2011
340
38
very interesting work however I think you might find this

http://forum.xda-developers.com/showthread.php?t=2506438

a better alternative to work on, maybe if you find a way to get splashtop THD algorithm for streaming, which is leaps and bounds ahead of nvidia's solution. A plus point of this is you can stream anything, your not restricted to just steam and big picture mode.
 

danielb7390

Member
Nov 3, 2013
36
4
Portugal
Really cool!
Tested on Asus TF300 its lagging a lot but i really like what you are doing!
Keep up the good job!


Some questions:
Why no pair button? I had to discover the pair url and do it by hand.
Also why the mac is not read from the android system? Had to change it before compile.

You forgotten to put the link for the code... cant post because new user
 
Last edited:

cgutman

Senior Member
Aug 14, 2010
485
428
Really cool!
Tested on Asus TF300 its lagging a lot but i really like what you are doing!
Keep up the good job!


Some questions:
Why no pair button? I had to discover the pair url and do it by hand.
Also why the mac is not read from the android system? Had to change it before compile.

You forgotten to put the link for the code... cant post because new user

The pairing should take place on the first connection. When we get the /pair URL, it should prompt for pairing on the PC. The MAC wasn't read simply because this was some proof of concept code written in a hurry. I'll be fixing that (and other things) shortly.

There's also no UI feedback yet as to what's going on (since we've mostly been debugging it with ADB over the network). I might add some toasts for now to indicate what's going on. In general, it needs cleanup in the UI area along with some code cleanup of some of the early stuff we wrote. There's code in there for mDNS discovery (like the Shield's app uses) which does work but we lack the UI to display the results. We'll also eventually have a proper game selection UI (since we also know how the Shield's app requests game thumbnails), so games can be launched without using Big Picture.

The code link wasn't posted originally because it's a very early proof of concept, but since you asked: https://github.com/cgutman/limelight

EDIT: You were right about the pairing bug. I forgot that we checked if it was paired before attempting to connect. I've added a pairing button and fixed the hardcoded MAC address.
 
Last edited:

danielb7390

Member
Nov 3, 2013
36
4
Portugal
Stoped working!

Don't know what happened i cant pair...also tried the same way i did yesterday ( manually through firefox) and it doesn't accept!!!
Really don't know whats going on here!!:confused:
 
Last edited:

danielb7390

Member
Nov 3, 2013
36
4
Portugal
Got it working

Got it working after a pc reboot... stupid windows as always!
Anyways i believe theres a problem in your connection layout i can't click the pair button until i resize "mDNSResultView" because its on top of the buttons or its something else!
Also it's supposed to be working the DNS find? No pc's come up on the list.
I get 1s lag is this normal or i have some problem on my end?
 
Last edited:

cgutman

Senior Member
Aug 14, 2010
485
428
Got it working after a pc reboot... stupid windows as always!
Anyways i believe theres a problem in your connection layout i can't click the pair button until i resize "mDNSResultView" because its on top of the buttons or its something else!
Also it's supposed to be working the DNS find? No pc's come up on the list.
I get 1s lag is this normal or i have some problem on my end?

The connection layout problem was some code that someone accidentally committed because they didn't diff what they were committing. They've been publicly shamed ;)

The layout is fixed now so the pairing button should work again.

The H264 stream that is being fed to the decoders currently isn't 100% perfect. There are a few issues we're still trying to work out. The Snapdragon decoder seems to be the most lenient and fast. The Tegra decoder seems to be fairly lenient as well, but does have the 1 second lag which is common to both Tegra 3 and Tegra 4 devices. I'm not sure if the decoder is just too slow for real-time decoding or if we're doing something wrong, but I suspect the latter since I think Shield itself uses the hardware H264 decoder when streaming the normal way. Both of these decoders handle our H264 stream better than TI's hardware decoder and Google's software decoder which both crash immediately with "Decoder Failed -2". I'm working on fixing the H264 stream issues in the "av" branch.
 

danielb7390

Member
Nov 3, 2013
36
4
Portugal
If you need me to test something just say!

The stream is a standard rtsp stream or has something special?
The sound doesn't work why? Can't find the proper decoder?
 

cgutman

Senior Member
Aug 14, 2010
485
428
If you need me to test something just say!

The stream is a standard rtsp stream or has something special?
The sound doesn't work why? Can't find the proper decoder?

It's an RTP stream but it seems to have some proprietary 56-byte header between the RTP header and the media payload. It also sends both audio and video on the same RTP stream with the same packet type, so we need to find and remove the audio to parse it separately. I'm working on getting video decoding working 100% on all devices to see if I can root out the bad data causing the software decoder to fail (which might be the audio). I had originally assumed the audio was AAC since we were looking at an H264 stream and the two formats are commonly bundled together, but it appears the audio is something else. At this point, our best guess for the audio format is Opus.
 
  • Like
Reactions: danielb7390

danielb7390

Member
Nov 3, 2013
36
4
Portugal
I guess you already tried to open the stream with some player? Or capture the data and try to play it with vlc for example?
Probably saying garbage but whatever! :)
 

danielb7390

Member
Nov 3, 2013
36
4
Portugal
You need a pc that meets the requirements for shield streaming
and compile the source code using android SDK.

I don't know if i cant provide a apk.
 

cgutman

Senior Member
Aug 14, 2010
485
428
Audio is here with the latest code! Turns out that audio was coming in over UDP port 48000. I wrote a JNI binding for the Opus reference decoder and fed the data to the AudioTrack class.

You need a pc that meets the requirements for shield streaming
and compile the source code using android SDK.

I don't know if i cant provide a apk.
I've attached an APK that you can use for testing to this post.

I just bought an xperia z ultra, I would like to try this out how do I go about it.
It should work fine with the attached APK since that phone has a Snapdragon 800 which plays nice with our H264 stream.


Can this thread be moved? It's not relevant to the Shield.
Sure, ideas for the new location?
 

Attachments

  • Limelight.apk
    544 KB · Views: 96
  • Like
Reactions: danielb7390

danielb7390

Member
Nov 3, 2013
36
4
Portugal
Audio its working!
Video still has delay seems little bit better but still needs some work :p

The middle controller button the "xbox home" button doesn't work at least for me! Its needed to open the steam overlay.
 
Last edited:

cgutman

Senior Member
Aug 14, 2010
485
428
Audio its working!
Video still has delay seems little bit better but still needs some work :p

The middle controller button the "xbox home" button doesn't work at least for me! Its needed to open the steam overlay.

The xbox home button unfortunately sends key events like the Android home button which makes it problematic to intercept. Instead, I've made it so Back+Start will open the steam overlay.

The video delay issue is possibly an issue with Tegra's decoder or how we're interfacing with it. The problem with Google's software decoder and TI's hardware decoder is that the stream that we're getting is H264 high profile, while Android only requires implementing H264 baseline profile. Qualcomm's hardware decoder does high profile perfectly well. Tegra 3 and 4 also support high profile hardware decoding but they seem to decode very slowly, particularly when a large portion of the screen changes. The current plan is to look into software decoding of the H264 stream for devices that have problematic decoders, while letting the Qualcomm devices decode in hardware.

There's an updated APK attached to this post.
 

Attachments

  • Limelight.apk
    545.4 KB · Views: 47

sofakng

Senior Member
Nov 14, 2010
191
8
Where can I send you a donation?

I have an nVidia SHIELD and Nexus 7, but the only thing I don't like on the shield is the screen size so I'd LOVE to be able to play on my Nexus 7 with a 360 controller, etc so this project looks fantastic!

EDIT: Also, I'm just wondering, but how does this compare to Splashtop THD? Is it using the same NVENC and RTP methods for encoding and sending data? I am thinking about purchasing an ASUS TF701T tablet but one of the main (?) purposes would be remote streaming some games from my desktop. It's confusing that you say that Tegra chips are slower because isn't Splashtop THD (made for Tegra) extremely low latency?
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 106
    Please don't ask for Moonlight help on Nvidia's forums! It's not their responsibility to support this app. Ask on this forum, another non-Nvidia forum, by email, etc

    What happened to Limelight?/Why did you change your name?
    On April 21, 2015, we received a Cease and Desist letter from Limelight Networks, Inc. They also do streaming services and were concerned about confusion between this project and their company trademarks. To comply with the terms of their C&D, we've decided to rename our project to Moonlight.

    Quick Links
    Main website: https://moonlight-stream.org
    Help: https://github.com/moonlight-stream/moonlight-docs/wiki/Setup-Guide
    Discord: https://moonlight-stream.org/discord
    PC GitHub project: https://github.com/moonlight-stream/moonlight-qt
    iOS GitHub project: https://github.com/moonlight-stream/moonlight-ios
    Android GitHub project: https://github.com/moonlight-stream/moonlight-android
    Android GitHub releases page (APKs): https://github.com/moonlight-stream/moonlight-android/releases
    Embedded port (for Raspberry Pi and other embedded devices): https://github.com/irtimmer/limelight-embedded
    GearVR port (for GearVR devices): http://sideloadvr.com/detail.php?id=14

    iOS version
    The iOS port of Moonlight is now on the App Store: https://itunes.apple.com/us/app/moonlight-game-streaming/id1000551566

    Windows, Mac, and Linux port
    PC port binaries: https://github.com/moonlight-stream/moonlight-qt/releases
    PC port source: https://github.com/moonlight-stream/moonlight-qt

    Moonlight for Chrome OS
    Download the latest version from the Chrome Web Store.

    General Streaming Latency Information
    The latency of streaming is dependent on the device you're streaming to and the network you're streaming over. Different devices have different H.264 hardware decoding latency. After streaming, a toast will show up with latency numbers. It will show the total client latency and the portion of the total client latency spent waiting for the hardware decoder. Note that the total client latency does NOT include network latency, so the real latency is higher than the number you see. The total client latency is a measure of the time that the first packet in a frame is received to the time that the frame is released for rendering on screen.

    Anecdotal Hardware Decoder Latency Numbers
    These are some latency numbers (from memory) I've seen on my test devices as of Moonlight Android 4.0.1. I'll try to keep updating this as I test.

    Tier 1 devices:
    Tegra 4 - Nvidia Shield - 5 ms - 1080p60 supported
    Intel Atom/Bay Trail/Moorefield - Nexus Player - 8 ms - 1080p60 supported (may need a USB OTG Ethernet adapter for consistent performance)
    Razer Forge TV - 10 ms - 1080p60 supported - H.265 supported
    Tegra X1 - SHIELD Android TV - 10 ms - 4K60 supported - H.265 supported in hardware but needs changes in Moonlight to work well
    Tegra K1 - Nexus 9 - 15 ms - 1080p60 supported
    Tegra 3 - OUYA and Nexus 7 (2012) - 17 ms - 1080p60 supported

    Tier 2 devices:
    Broadcom VideoCore IV - Fire TV Stick - 20 ms - 720p60/1080p30 supported
    Exynos 7420 - Galaxy S6 - 20 ms - 1080p60/4K30 supported - H.265 supported
    Snapdragon S4 Pro (rebranded 600) - Nexus 7 (2013) - 20 ms - 720p60/1080p30 supported
    Snapdragon 801 - HTC One M8 GPE - 20 ms - 1080p60 supported
    Snapdragon 800 - Nexus 5 - 20 ms - 1080p60 supported
    Snapdragon 600 - Fire TV (2014) - 30 ms - 720p60/1080p30 supported

    Tier 3 devices:
    MediaTek devices - Fire TV (2015) - 55 ms - 1080p60 supported - H.265 supported

    Adding games/apps that aren't 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 Preferences tab, click GameStream 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 on the right (near the add button).

    Using Moonlight as a remote desktop solution
    You can stream the entire Windows desktop via Moonlight. Follow step 2 from this guide

    Streaming over the Internet
    Install the Moonlight Internet Streaming Helper on your host gaming PC to enable streaming over the Internet. If your router supports UPnP, you won't need to make any manual changes.

    If the above tool isn't able to enable Internet streaming automatically or your router doesn't support it, forward these ports manually:
    TCP 47984, 47989, 48010
    UDP 47998, 47999, 48000, 48010

    General requirements for current APK:
    SoC capable of decoding H.264 High Profile in hardware (Snapdragon, Exynos, Tegra 3 or higher, Rockchip, and more)
    Android 4.1 or higher
    GeForce Experience with a GTX 600/700/800/900 GPU or GTX 600M/700M/800M (GT-series not supported)
    Xbox, PS3 (with SixAxis app), Moga (B/HID mode), Shield, or Ouya controller (other controllers may work too in HID mode)
    Mid to high-end wireless router (preferably dual-band 802.11n or better)
    Good wireless connection to your Android device

    Troubleshooting tips:
    1. Make sure GeForce Experience is open, up-to-date, and that you've scanned for games.

    2. Make sure your device is on the same network as your computer for initial pairing.

    3. Try disabling any firewall software running on your machine.

    4. Try rebooting your machine. Sometimes the streaming software gets into a messed up state where it won't work normally until the machine is rebooted.

    5. Make sure your Android device has a strong wireless connection (and your PC too, if it's connected wirelessly).

    6. For Internet streaming, make sure to install Moonlight Internet Streaming Helper on your host gaming PC, then run the Moonlight Internet Streaming Tester that it installs to troubleshoot further.

    7. To check if GFE is working properly, try navigating to the following URLs on your GFE PC:
    http://127.0.0.1:47989/serverinfo?uniqueid=1234
    https://127.0.0.1:47984/serverinfo?uniqueid=1234

    For those with latency issues, please see this post.

    Device-related issues
    Depending on the wireless chipset on your phone/tablet, you may have a bad streaming experience if Bluetooth is active while streaming. Unfortunately, there's nothing we can do about this. If you experience significant connection degradation with a Bluetooth controller connected, you could try connecting the controller to your PC (see the section above), a USB Ethernet adapter, or controller that connects directly to your Android device (assuming your Android device supports USB OTG)

    Older Changes:

    Update 12 - March 13, 2014:
    Significant video quality improvements. Lower video latency. New UI that makes it easier to choose the best streaming settings. Transient messages are displayed while streaming if network or device problems are detected.

    Update 11:
    Tegra hardware decoding latency bug is fixed. Hardware decoding is now used by default on Tegra and Rockchip devices. Performance is vastly improved on Tegra devices (1080p60 decodes in real-time, even on Tegra 3). The parser bug causing additional artifacts and image corruption is (finally) fixed.

    Update 10:
    Added options to force either hardware or software decoding. Reduce audio decoding CPU usage. Fix image quality and performance regressions from update 9.

    Update 9:
    Reduced CPU usage of video decoding. Added options to choose target resolution (720p or 1080p) and FPS (30 or 60).

    Update 8:
    Added a checkbox to choose image quality vs performance (only for CPU decoding). Optimize CPU decoding further. The frame rate is now playable on the Ouya with its Tegra 3..

    Update 7:
    Connectivity issues should be resolved now. Update to the latest APK if you were experiencing connection failures with the last couple of releases.

    Update 6:
    There's now GUI feedback when connecting. The whitelist for hardware decoding (that only included Qualcomm decoders) has now been replaced with a blacklist (currently containing TI and Nvidia decoders). The Exynos decoder in Exynos 5 Octa has been confirmed to work.

    Update 5:
    The app will now request a new reference frame if packet loss occurs on the video stream. This means that the stream will recover from blockiness and artifacting that occur when video packets get lost. CPU decoding for non-Snapdragon devices is a bit better. Fixed back button on Shield.

    Update 4:
    Added multithreaded CPU H264 decoding support for non-Snapdragon devices with ffmpeg. Both landscape orientations now work. This grows the APK significantly so don't be alarmed when this download is larger than previous builds.

    Tegra 4 is now very smooth in the games I've tested. Tegra 3 works significantly better than before, but still not perfect (and won't likely ever be as smooth as Snapdragon or Tegra 4).

    For Qualcomm devices, a dual-core SoC (even as old as Cortex-A8 stuff) is sufficient due to the hardware decoder. For other devices, CPU decoding will now be used. These devices will need more CPU horsepower (a quad-core Tegra 3 is almost enough).

    Look forward to keyboard support and a better GUI coming in the next several days.

    Update 3:
    Frame pacing improvements for Snapdragon and Tegra devices, although Tegra still has more latency than Snapdragon devices. If you have issues with blockiness or discoloration in the video stream, make sure that you have a good wireless connection. Moonlight doesn't currently deal with packet loss as well as the Shield streaming app.

    Update 2:
    PS3, Xbox, Shield, and Moga Pro controllers are working with the latest APK.

    Update:
    Audio is now working. Video is working pretty well on Snapdragon devices (with some lag on Tegra devices). I've attached the current APK here for those that want to test. Due to the framework we're using for video decoding, this app requires Android 4.1 or higher. This is still in alpha so expect bugs.

    Original post:
    Here is a demo of a WIP app that uses the same Shield streaming technology to stream to any Android device. Controller and mouse input works. Keyboard input isn't implemented yet. Video support works (minus some artifacts at rare points and minor frame pacing issues). Audio doesn't work yet (not sure what format it is).

    We've had success with very low H264 decoding latency on Snapdragon S4 Pro/600 devices (like the 2013 Nexus 7 and HTC One), but the Tegra 3/4 decoder has a high latency per frame (~1 second) that makes streaming more laggy on devices like the Ouya, 2012 Nexus 7, and even the Shield itself.

    The next big step to a release-ready app is audio support (and the obligatory code cleanup). I'd be happy to respond to any questions about the way the app or the GFE streaming protocol works. If there's significant interest in this, I'll try to put more time into finishing it ASAP.


    Demo video (a bit old now):
    http://www.youtube.com/watch?v=0VOti83qZRU

    Downloads:
    I'd recommend downloading the app from the Play Store. Updates are automatically applied through the Play Store when they are released. Crash reports also get to us automatically if you use the Play Store version and click the Report button if Moonlight crashes.

    Google Play Link

    Sometimes APKs are more convenient for sideloading and other things, so they will continue to be posted.

    You can find the latest APKs on the GitHub page here: https://github.com/moonlight-stream/moonlight-android/releases
    6
    Moonlight Chrome Test Build (Alpha 1)

    Since there seems to be some interest in this Moonlight port for Chrome, I've decided to put a binary up for testing. Please report your thoughts on it.

    Working:
    - Pairing and streaming
    - Hardware accelerated video decoding up to 1080p60
    - Game controllers (currently limited to those for which Chrome has a built-in mapping, like Xbox and DualShock controllers)
    - Keyboard and mouse input (with the caveat of Esc kicking the app out of full screen)

    Not working:
    - No feedback when starting a stream - just be patient and wait for the video stream
    - mDNS auto-discovery of PCs
    - (Very) Non-final UI
    - A few settings are missing
    - Error handling needs work
    - Controller detection can be wonky at times (try fully exiting and restarting Chrome)

    To install, drag the CRX file into the Extensions (Menu -> More Tools -> Extensions) page of Chrome.

    To launch, use Chrome App Launcher, the Extensions page, or just search for Moonlight on your PC and you should see it installed like a normal program.

    https://www.dropbox.com/s/ml92xvot25yn23x/moonlight-chrome.crx?dl=0
    6
    Good News about Qualcomm Decoder Latency

    I found by luck that the SDP attributes on the new GFE beta 2.4.0.9 allow the client to adjust video slicing parameters. I've released a new build that enables slicing on GFE 2.4 to reduce latency of Qualcomm devices (hopefully back to 2.1.3 levels). It will also improve the latency on the Fire TV as it's also a Qualcomm device.

    The build is rolling out on Play Store, waiting for review on Amazon store, and up on GitHub now.

    Remember, you MUST have GFE beta updates turned on and be running GFE 2.4.0.9 or higher with Limelight v3.1.4.

    You can enable beta updates for GFE on the Preferences tab in the General pane.
    5
    Another GFE 2.1 status update: success!

    I've figured out secure pairing and encrypted input (required for GFE 2.1) and implemented them in Limelight-common. There's just a bit more work to do for platform-specific support (certificate and private key generation and storage) on Android and PC. My PoC code was able to stream from a GFE 2.1 box over the Internet to a custom version of Limelight-PC.

    I'm off for some much needed rest (4:54 AM here), but we're on the home stretch. Expect a release for Android and PC in the next day or so.

    Update: It's done! Limelight Android version 2.3 is rolling out on the Play Store, waiting for approval on the Ouya store, and posted https://github.com/limelight-stream/limelight-android/releases. Limelight PC is released too https://github.com/limelight-stream/limelight-pc/releases
    5
    Moonlight Chrome Test Build (Alpha 2)

    Changes from Alpha 1:
    - Fixed Esc key kicking the app out of full-screen (press Ctrl-Alt-Shift-Q to quit)
    - Fixed sometimes requiring a restart of Chrome for gamepad detection to work
    - Added mDNS auto-discovery of PCs

    Working:
    - Pairing and streaming
    - Hardware accelerated video decoding up to 1080p60
    - Game controllers (currently limited to those for which Chrome has a built-in mapping, like Xbox and DualShock controllers)
    - Keyboard and mouse input
    - mDNS auto-discovery of PCs

    Not working:
    - No feedback when starting a stream - just be patient and wait for the video stream
    - (Very) Non-final UI
    - A few settings are missing
    - Error handling needs work

    To install, drag the CRX file into the Extensions (Menu -> More Tools -> Extensions) page of Chrome.

    To launch, use Chrome App Launcher, the Extensions page, or just search for Moonlight on your PC and you should see it installed like a normal program.

    https://dl.dropboxusercontent.com/u/19391088/moonlight-chrome-alpha2.crx