Behind limelight-pi there is a really cool concept, using your Raspberry Pi to stream games live from an Nvidia gaming PC somewhere else in your house. With steam machines coming this year, starting what could be an era of living room pc gaming, it will be interesting to see if a Raspberry Pi could do a comparable job using hardware you already own. Not to mention steam is bringing in-home streaming later on this year too. If you want to know what rig I am using, check the specs on the right 🙂
Before I get started: The Pi version of this software is a fork of the PC and Android and is not from the original developer of limelight. It was made by the community. It is extremely experimental, and there is no guarantee of stability. Also the documentation for the software is poor, bordering on non-existant, which is why I have made this install guide.
Part 1 – Downloading and Configuring PC Software
First things first, Limelight works on the same software that the Nvidia shield uses to stream across the network, so what you need to do is go fetch GeForce Experience and install it. http://www.geforce.co.uk/geforce-experience/download.
Once it has been installed, open GeForce experience, go to Preferences, SHIELD, and click “Allow this PC to stream to SHIELD devices”
That is almost it for the PC side of things, you will need to go back later but for now go to the next part.
Part 2 – Setting up the Pi
I set up my Pi using a fresh install of Raspbian, with my Pi being overclocked to 1000MHz. You need to have the optimised version of Java installed on your Pi, which is why I recommend using the latest image of Raspbian because it has Java pre-installed. Basically the first thing you need to do is get the Limelight-Pi jar file from https://github.com/irtimmer/limelight-pi/releases/download/v0.4/limelight-pi.jar. I downloaded it straight to the Pi desktop. Next thing you need to do is install some packages using the terminal. Log out of the LXDE session, and type the following into the terminal –
sudo apt-get install libopus0
Just so there is no confusion that is a 0 at the end of that code not an O.
After that set your terminal directory to wherever the Jar file is, if you put the Jar file on the desktop like I did then you will need to type the following…
Now you need to pair your Pi to your Gaming Computer. Firstly you will need to find out your gaming computers IP. To do that open command prompt and type ipconfig, and it will tell you your IP. Now go to the PI and type:
java -jar limelight-pi.jar -pair 192.168.x.xxx (x being what your IP address is)
Now back on your computer you shall see something like this. Instead of Surface-Tablet it will say raspberrypi. Press accept and head back over to your Pi, because now we are ready to get everything connected.
First thing to do is work out what the inputs are and what the Pi recognises them as. This is quite easy to do. I am showing you what it is for a keyboard and mouse although in theory controllers like the Xbox 360 controller should work too. That is in theory, I have actually heard people having issues with that, and I suspect its because the Pi cannot power the controllers. Anyway, to get the inputs you need to type:
ls -l /dev/input/by-path
And you will be confronted by something like this…
It’s ok, it does make sense. Read carefully, your looking for the tags ending in /event(x). Event 0 in my case is mouse, event1 is keyboard.
The final step here is to assemble the code to make Limelight-pi run. You can use my code as an example:
java -jar limelight-pi.jar -input /dev/input/event -input /dev/input/event1 192.168.0.5
After typing that code, the program will load and you will soon be looking at steams big picture mode being streamed to your pi.
You can add more tags like -1080 and -60fps. But when I did the program would not get past “Starting Input Connection”. Like I said before, this software is experimental. In the end I left the code as is, it streams then at 720p but the Pi barely handled that for me. I have seen people have real success with this, but I found my Pi even overclocked was laggy and could only handle a very low latency. I increased the memory to the GPU and all sorts of other tweaks and nothing seemed to help much.
If it works for you, then good on you. In all honesty for me though, I probably would plug my Mac Mini into the living room TV and use that instead of my Pi, because its faster, can handle more peripherals (like gamepad’s for example), more functionality and software support in the OS so I can also use Netflix and YouTube and the setup uses a GUI.
Sidepost – Limelight on a PC
In the interests of fairness and because of the fact I am outright curious about this, I am back, testing out how well it runs on my Surface Pro.
Install is pretty easy, the software runs inside a GUI and all you need to do is follow the instructions over here: https://github.com/limelight-stream/limelight-pc
If you read my last post, using Limelight on the Pi, you would know that it was laggy and didn’t work very well, imagine my suprise when I got consistant 60FPS smooth gameplay on my Surface Pro with minimal setup (although 1080P didn’t work? I had the same issue on the Pi). Even intensive games like CS:GO were more than playable. It was nice to use steams big picture mode, and I am confident that if you want a cheap DIY steam machine of sorts, you could use a Mini-Itx PC in the living room with this installed and get a solid gaming experience (assuming 1080p gets fixed). I even collected some sample game play for you, which you can see below.
I recommend however that to make sure you get the best performance possible you keep your host PC wired into Ethernet, because interference among other things can really kill performance. The limitations of the software at the moment are the games supported by Nvidia Shield. Some older games like Assassins Creed and GTA 4 are supported along with all of the source games (mods like the hidden do not work), but these games only work at all if they are on steam.
For the meanwhile this software is pretty damn good, but this feels to me like an unofficial preview of steam in-home streaming, it just needs a bit more optimisation for people with poor networks, and for wifi use (which lets be honest is how most people will use it. Hopefully I can try out steam in-home streaming very soon, as I have signed up for the beta, and I shall post on here my experience if and when that happens.
Thank you for reading, be sure to comment if you like and subscribe to this blog, I have a lot of cool projects on the way.
In the meanwhile, I am away to try out Steam OS, SEE YA! (UPDATE: I have been selected for In-Home Streaming, it’s fine, runs 1080p game over the network at 30FPS. Blog post may follow. )