Raspberry Pi: Steam Machine Alternative mit Limelight
Valve kündigte mit den Steam Machines Spielekonsolen an, die mittels der Home Streaming Technologie Spiele vom Computer streamen können und damit grafisch aufwendige Games auf die kleinen Konsolen bringen. Die Veröffentlichung wurde jedoch verschoben und die Steam Machines sollen teils auch kein Schnäppchen werden. Aber wer braucht eine Steam Machine schon, wenn man einen Raspberry Pi hat? Mit Limelight gibt es eine freie Implementierung der NVIDIA GameStream Technologie (ursprünglich für NVIDIA Shield), die in direkter Konkurrenz zur Lösung von Valve steht. Eine für den Raspberry Pi optimierte Version namens Limelight Pi existiert ebenfalls. Damit ist es auch möglich, neben Games auch den einfachen Desktop des Windows Gerätes auf den Raspberry Pi zu streamen. Und das mit ordentlicher Performance. Wie man Limelight auf dem Raspberry Pi und einem Windows (Gaming) PC installiert und verwendet, erkläre ich im folgenden Artikel.
Voraussetzung: Raspberry Pi mit Raspbian oder vergleichbarer Distribution und ein Windows PC mit einer NVIDIA GTX 600/700 Grafikkarte, wie auch ein stabiles WLAN Netzwerk (802.11n dual-band empfohlen) oder eine Verbindung der Geräte via LAN
Zunächst sollte man auf dem Windows Computer sicherstellen, dass die aktuelle NVIDIA Grafikkarten Treiber installiert sind. Außerdem benötigen wir die Software GeForce Experience des Grafikkartenherstellers.
Auf dem Raspberry Pi benötigen wir die Oracle Java 8 Implementierung und den Audiocodec Opus zur Übertragung des Gamesounds. Diese Softwarepakete können wir über folgenden Befehl installieren. Außerdem sollte sichergestellt sein, dass die Audio Ausgabe auf dem Raspberry Pi funktioniert, was man durch das Abspielen eines Videos oder Musikstücks auf dem Raspberry Pi ausprobieren kann.
sudo apt-get install oracle-java8-jdk libopus0
Für den Raspberry Pi benötigen wir nun noch die Limelight Pi JAR-Datei. Die aktuelle Version bekommt man von der Release Page des Projektes auf Github. Zum Zeitpunkt als dieses Tutorial geschrieben wurde, war Version v0.8 aktuell.
wget https://github.com/irtimmer/limelight-pi/releases/download/v0.8/limelight-pi.jar
Auf dem Windows Rechner müssen wir nun GeForce Experience öffnen. Dort finden wir unter Mein Rig die Option NVIDIA GameStream, die wir aktivieren.
Auf dem Raspberry Pi muss nun die Limelight Pi JAR-Datei erstmalig geöffnet werden. Dabei müssen wir IP durch die interne IP-Adresse des Windows Rechners ersetzen. Diese IP-Adresse kann man, falls nicht schon bekannt, für gewöhnlich im Webinterface des Routers einfach auslesen. Nach dem Aufruf des Kommandos sollte GeForce Experience auf dem Windows Rechner fragen, ob wir die Verbindung zulassen möchten, was wir bejahen. Abschließend können wir Limelight mittels STRG + C wieder beenden.
java -jar limelight-pi.jar stream -pair IP
Um nun eine normale Verbindung zur Übertragung des Bildschirms aufzubauen, verwenden wir folgendes Kommando. Hierbei gibt 720 die Auflösung an (720p/1280×720; 1080 für Full-HD 1080p/1920×1080). Die Anzahl der FPS sollte auf 30 eingestellt sein, falls gewünscht und vom Netzwerk her möglich kann man auch 60 fps anfordern. Anschließend muss wieder IP durch die interne IP-Adresse des Windows Rechners ersetzt werden.
java -jar limelight-pi.jar stream -720 -30fps IP
Wenn alles ordentlich funktioniert hat, erhält man nun Bild und Ton des Windows Rechners auf dem Raspberry Pi.
Die Performance der Limelight Software in der Variante für den Raspberry Pi ist, wie einige Videos beweisen, exzellent. Durch eine sehr geringe Latenz sollten fast alle Games spielbar sein. Einzig bei Egoshootern könnte die minimale Latenz zu Problemen führen. Damit dies so funktioniert ist jedoch ein absolut stabiles und schnelles Netzwerk erforderlich, weshalb es ratsam ist, sowohl die Verbindung des Raspberry Pis als auch die des Windows Computers zum Router über LAN aufzubauen.
48 Kommentare. Hinterlasse eine Antwort
Nur eine kleine Verständnis Frage könnte ich dann theoretisch auf meinem Pi Gta4 spielen?
Vollkommen richtig. Du kannst damit auch AAA-Titel auf deinem Raspberry Pi spielen 🙂
‚Über‘ den Pi spielen trifft es eher.
@Jan: Limelight macht auf dem Pi vom Video her einen sehr guten Eindruck. Hätte ich nicht gedacht.
Stimmt, „über“ wäre passender 🙂 Ich war ebenfalls überrascht als ich für den Artikel recherchiert wie gut das funktioniert, da ich bereits vor ein paar Jahren nach einer geeigneten Technologie für einen vollwertigen Notebook gesucht hatte und nicht erfolgreich war.
Kann ich auch mit einem Xbox KabelCOntroller am Pi damit spielen?
Wenn du einen XBOX Controller hast, der sich er USB verbinden lässt und unter Linux/Raspbian läuft, sollte auch das gehen.
Hallo!!!
Bin absoluter PI + Linux Neuling, wie und mit was kann ich die IP in der .jar Datei ändern!!
Du musst an der *.jar gar nichts ändern. Schau doch noch einmal genau in den Artikel 😉
Danke für denn Hinweiß 🙂 🙂 hat ja ein wenig gedauert bis ich es kapiert habe. Und jetzt das nächste Problem,Wenn ich “ java -jar limelight-pi.jar -720 -30fps IP“ eingebe kommt folgendes:
Steam not found in GFE app list
Danke schon mal im voraus!!
Klingt so als hätte GeForce Experience Steam nicht gefunden, aber benötigen. Prüfe das doch mal in der Anwendungsliste von GeForce Experience.
Ganz nette Spielerei. Aber da mein Wohnzimmer nicht so groß ist habe ich einfach meinen PC mit einem längeren HDMI-Kabel an den AV-Receiver/Fernseher angeschlossen. Dazu noch wireless Tastatur, Maus und XBox360 Controller und dem Zocken auf dem 40 Zoll Fernseher von der Couch aus steht auch nichts mehr im Wege. Besser als jede Konsole 😉
Schade das dies wohl nur mit nvidea Grafikkarten gehen soll. Wäre genau das was ich suche, nur das der pc eine amd gpu hat. Gibt nicht zufällig auch hierfür eine Lösung?
Das Ding ist meiner Einschätzung nach sehr hardwarelastig, weshalb auch nur neuere Reihen von NVIDIA unterstützt werden. Folglich sehe ich da eher schwarz.
Servus, ich habe die installation befolgt. Ich bin noch ein sehr noobig, habe erst heute meinen raspberry bekommen. Ich habe deine Anleitung befolgt. Erfolgreich „gepairt“ und nach der eingabe „java -jar limelight-pi.jar -720 -30fps meine ip von monster pc“ kommt beim start eine fehlermeldung in der console: Starting app
Starting RTSP handshake
java.io.IOException: RTSP OPTIONS request failed: 505
at com.limelight.nvstream.rtsp.RtspConnection.doRtspHandshake(Unknown Source)
at com.limelight.nvstream.NvConnection.doRtspHandshake(Unknown Source)
at com.limelight.nvstream.NvConnection.establishConnection(Unknown Source)
at com.limelight.nvstream.NvConnection.access$300(Unknown Source)
at com.limelight.nvstream.NvConnection$1.run(Unknown Source)
at java.lang.Thread.run(Thread.java:744)
RTSP OPTIONS request failed: 505
Connection Error Starting RTSP handshake failed
woran liegt das?
mit dem 0.9 update ist der fehler behoben.
es lag wohl an einem update seitens nvidia
Der Guide ist echt klasse, leider hat mein Laptop eine GT 750M und diese wird nicht unterstützt.
Alternativ und universaler soll Splashtop sein. Leider müsste man das aus dem Source comilieren und das kann ich nicht.
Für die Leute die zum Beispiel World of Warcraft auf dem Ipad spielen wollen etc. Splashtop bietet auch Mobile Apps an.
Evtl. hat ja jemand von euch lust einen Guide zu schreiben wie man Splashtop zum laufen bekommt.
Splashtop habe ich auch mal ausprobiert. Hat einige Restriktionen für die man bezahlen muss und die Performance war zumindest bei mir zwar in Ordnung, aber nicht überragend.
Mal ne blöde frage, ist es normal das immer Steam startet? Würde nämlich gerne World of Tanks über Limelight spielen. Doch sobald die Verbindung steht startet Steam. Nur leider funktioniert Steam und WoT nicht.
Du setzt von der Technologie auf Home Streaming auf, was ein Teil von der Steam Software ist, weshalb es in Ordnung ist, dass es startet. Versuche doch mal WoT in Steam unter Bibliotheken als Steam-fremdes Spiel hinzuzufügen.
Habe ich leider schon vergebens versucht. WoT und Fallout 3 wollen beide nicht starten.
Wenn Fallout 3 doch mal startet, habe ich im Spiel keinen Mauszeiger!
Wenn ich WoT oder Fallout 3 aber aus Steam vom Host PC starte, dort geht’s. Naja, vielleicht tut sich da noch was.
Kann es sein, dass man seit dem neuesten GEE Update mal wieder limelight nicht zum verbinden bekommt?
So ganz stabil ist das Projekt noch nicht, weshalb dem durchaus so sein kann.
[…] Official Source: https://jankarres.de/2014/07/raspberry-pi-steam-machine-alternative-mit-limelight/ […]
Ich habe jetzt mit einer alten und aktuellen Version von GFE das ganze versucht (Limelight-Pi Version 0.9.1).
Pairing geht auch, nur sobald ich versuche die Übertragung zu starten endet es immer mit „Streaming session has failed due to a game management error. (Error Code: 522)“
Es kommen auch noch mehrere „Unknown Source“ Meldungen, zB.:
„at com.limelight.nvstream.http.NvHTTP.getXmlString(Unknown Source)“
Hatte hier jetzt zB. eine Lösungsansatzt gefunden:
https://github.com/irtimmer/limelight-embedded/issues/23
Was die Oracle VM angeht kann sich das aber doch nicht auf den Pi beziehen oder?
Wäre toll wenn du mir sagen könntest ob du eine Lösung weißt oder ob du zumindest einen Ansatzt für mich hättest, wo hier das Problem liegt, weil ich jetzt auch noch nicht so hinter die Pi-Materie gestiegen bin 😉
Danke schonmal
Ehrlich gesagt kenne ich mich mit Limelight auch nur oberflächlich aus und habe momentan keine Möglichkeit zur Replizierung des Fehlers, weshalb ich dir da leider nicht weiterhelfen kann. Sorry.
ok,
ich warte dann einfach mal auf ein Update von Limelight. Vielleicht ergibt sich da was.
Trotzdem vielen Dank 🙂
hab momentan das gleich Problem. Es wäre nett von dir, wenn du hier kurz bescheid gibst, wenn sich eine Lösung gefunden hat.
Ich versuchs derweil auch hinzugriegen …
In deinem Artikel schreibst du, dass es möglich ist auch den normalen Windows Desktop per limelight auf den Raspberry zu streamen. Ich habe dazu leider keine Referenzen gefunden und besitze (bisher) auch keine GTX 600/700 um das zu testen. Könntest du mir kurz bestätigen, dass man per limelight zum Beispiel Microsoft Office auf den Raspberry streamen kann?
(Mir ist klar, dass man dafür eher RDP verwenden würde.)
Meines Wissens nach sollte es mit jeder beliebigen Anwendung gehen.
Habe es inzwischen getestet und es funktioniert sehr gut. Man muss die Datei mstsc.exe als Anwendung zu GameStream hinzufügen und diese dann per limelight starten. Super Bild, keine Latenz, viel besser als vnc, rdp oder ähnliches.
Hallo zusammen, vielen Dank für die tolle Beschreibung. Das Streamen funktioniert bei mir super, nur muss ich jetzt noch ein Gamepad an den Pi bekommen. Sonst macht das ganze nicht wirklich Sinn. 😉 Ich habe das F710 von Logitech. Hat einer schon mal Erfahrungen damit gemacht?
Hallo alle zusammen,
ich habe die Installation komplett durchgeführt und bis zum Ende hin war auch alles gut. Wenn ich dann starten will verbindet er sich mit dem Pc und es läuft dann anscheinend auch, nur bekomme ich kein Bild.
Bleibe in den Kommandozeilen, kann auch mein Pc mit der Tastatur hinten am Pi steuern aber wie gesagt mir fehlt das Bild.
Starting app
Starting RTSP handshake
Starting control connection
Starting video stream
Starting audio stream
Starting input connection
bis da geht und dann ist schluß. Habe auch nvidia geforce experience auf 2.1.1 umgestellt und benutze Limelight Pi 0.9
Hat da vielleicht einer ne Lösung? :/
Danke 🙂
Update mal auf GF Experience 2.2.2 und benutze Limelight Embedded 1.2.1.
Mit der Kombination läuft es bei mir einwandfrei.
Starting app
com.limelight.nvstream.http.GfeHttpResponseException: GFE error: Streaming session has failed due to a game management error. (Error code: 522)
at com.limelight.nvstream.http.NvHTTP.verifyResponseStatus(Unknown Source)
at com.limelight.nvstream.http.NvHTTP.getXmlString(Unknown Source)
at com.limelight.nvstream.http.NvHTTP.getXmlString(Unknown Source)
at com.limelight.nvstream.http.PairingManager.getPairState(Unknown Source)
at com.limelight.nvstream.http.NvHTTP.getPairState(Unknown Source)
at com.limelight.nvstream.NvConnection.startSteamBigPicture(Unknown Source)
at com.limelight.nvstream.NvConnection.establishConnection(Unknown Source)
at com.limelight.nvstream.NvConnection.access$300(Unknown Source)
at com.limelight.nvstream.NvConnection$1.run(Unknown Source)
at java.lang.Thread.run(Thread.java:744)
GFE error: Streaming session has failed due to a game management error. (Error code: 522)
Connection Error Starting app failed
Was nun ?
Es klingt so als sei es nicht gelungen, dass GeForce Experience am Hauptrechner die verwendbaren Programme aufruft. Ist diese Software denn bei dir aktuell?
Habe es mehr oder weniger zum laufen gebracht:
Starting app
Limelight now requires GeForce Experience 2.1.1 or later. Please upgrade GFE on your PC and try again.
Connection Error Starting app failed
GFE Aktuellste Version 2.2.2.0
Limelight-pi.jar (ver. 0.9.1 )
Woran liegt es wenn ich ich die *.jar Datei durch eine neuere version ersetze ( z.B. 1.2.1 ) kommt immer folgende fehler meldung:
Syntax error: invalid action specified
Bitte um hilfe…
schaue ein kommentar unten da steht die lösung
^^
Stecke jetzt wie PAVLOO bei „Syntax error: invalid action specified“ fest. Hat jemand eine Antwort?
das Problem von Pavloo und dir ist leicht zu lösen.
wenn euer befehl so aussieht
java -jar limelight.jar -(Option) (IP)
müsst ihr noch hinter limelight.jar den befahl „stream“ eingeben
sieht dann so aus
java -jar limelight.jar stream -(Option) (IP)
wichtig ohne ein minus davor!!
MFG
Sl0ter
Sehr schön, das war’s. Jetzt muss ich nur noch mein WLAN auf Dual Band umstellen 🙂
Vielen Dank auf jeden Fall!
Geht das auch mit AMD Grafikkarten?
Geht nicht. Limelight geht nur mit einer Nvidia gtx 650 oder höher möglich.
Mal schauen ob Amd auch was entwickelt oder es eine SteamOS version für den RPI mal gibt.
Bei Step 5 sollte das Stream aus dem Befehl 😉 Dann funktioniert es auch *grins* Aber top Anleitung
Sicher? Zuletzt funktionierte es nur noch mit dem Ausdruck „stream„.
Hallo, tolle Sache diese Anleitung hier. Ich habe aber noch eine Frage, kann ich den Xbox 360 wireless Controller für Windows am PI betreiben und damit spielen?
Danke!
Wenn es für dieses Gerät Linux-Treiber für ARM-Prozessoren oder den Sourcecode des Treiber gibt sollte das funktionieren.
Hallo, ja so etwas gibt es xboxdrv funktioniert bei mir aber leider noch nicht richtig. Nicht alle Tasten funktionieren. Keine Ahnung ob das nun am wireless liegt… Auf jeden Fall noch mal Danke!
Wäre top wenn das Tutorial auf die neue Moonlight Version aktualisiert werden könnte.