Jump to content

Moonlight Project for Raspberry Pi 3/4

shadowownz

Well, it's not old news per se but those who know the Moonlight Project, know how great it is! Similar to steam link, moonlight project allows you to stream ALL your games on your magnificent desktop to your "less enthusiastic" machine. Like an old RPi laying around without a purpose/project. Moonlight is what you need! I would like very much if Linus could do a video about it, i think it's a cool and simple project to play with.

 

Moonlight Project:

https://moonlight-stream.org/

 

Install from scratch on Raspbian Buster:

(skipping the flash the microSD, initial setup of Pi and possible OC)

sudo apt-get update

sudo apt-get install git libopus0 libexpat1 libasound2 libudev1 libavahi-client3 libcurl4 libevdev2 libenet7 libssl-dev libopus-dev libasound2-dev libudev-dev libavahi-client-dev libcurl4-openssl-dev libevdev-dev libexpat1-dev libpulse-dev uuid-dev libenet-dev cmake gcc g++ fakeroot debhelper
(commonly installed but still...)
sudo apt-get install libraspberrypi-dev
git clone https://github.com/irtimmer/moonlight-embedded.git
cd moonlight-embedded
git submodule update --init
mkdir build
cd build/
cmake ../
make
sudo make install
sudo ldconfig

Reboot and Done!

 

Go to Geforce Experience -> Options (the little wheel on top right)-> Shield -> And Enable GameStream. "Server" side, you're set!

 

Now on the pi:

moonlight list (it will error out but still scan for enabled gamestreams and that's how you get the IP for your machine. Either that or you'll just need to check the IP of your server.)

moonlight pair XXX.XXX.XXX.XXX (IP address of the server)

Take note of the Pin code generated by the Pi, go to your server and insert the pin. And DONE! Now you're paired with your gaming machine!

To start a moonlight session just type on terminal:

moonlight stream -1080 -app "(App_Name_In_Your_GFExperience_Machine)"

Enjoy!

 

P.S. - App_Name_In_Your_GFExperience_Machine is the list of games Geforce Experience detects. You can add them manually on GFE -> Shield and pressing add. Bonus tip: it also works with mstsc if you want :)

Pro Tip: It also works from internet access like if you have your low budget laptop and want to kill some time while waiting for a doctors appointment. You just need a 5mbps connection (at least!)

LINUS, PUT ANTHONY ON THE LINE!!! We got some serious work to do!!

(been tested with RPi 2/3 and i was actually surprised how low latency it was!!)

Link to comment
Share on other sites

Link to post
Share on other sites

Oh, from the moonlight options page:

 

Usage: moonlight [action] (options) [host]
       moonlight [configfile]

 Actions

        pair                    Pair device with computer
        unpair                  Unpair device with computer
        stream                  Stream computer to device
        list                    List available games and applications
        quit                    Quit the application or game being streamed
        map                     Create mapping for gamepad
        help                    Show this help

 Global Options

        -config <config>        Load configuration file
        -save <config>          Save configuration file
        -verbose                Enable verbose output
        -debug                  Enable verbose and debug output

 Streaming options

        -720                    Use 1280x720 resolution [default]
        -1080                   Use 1920x1080 resolution
        -4k                     Use 3840x2160 resolution
        -width <width>          Horizontal resolution (default 1280)
        -height <height>        Vertical resolution (default 720)
        -fps <fps>              Specify the fps to use (default -1)
        -bitrate <bitrate>      Specify the bitrate in Kbps
        -packetsize <size>      Specify the maximum packetsize in bytes
        -codec <codec>          Select used codec: auto/h264/h265 (default auto)
        -remote                 Enable remote optimizations
        -app <app>              Name of app to stream
        -nosops                 Don't allow GFE to modify game settings
        -localaudio             Play audio locally on the host computer
        -surround               Stream 5.1 surround sound (requires GFE 2.7)
        -keydir <directory>     Load encryption keys from directory
        -mapping <file>         Use <file> as gamepad mappings configuration file
        -platform <system>      Specify system used for audio, video and input: pi/imx/aml/rk/x11/x11_vdpau/sdl/fake (default auto)
        -unsupported            Try streaming if GFE version or options are unsupported
        -quitappafter           Send quit app request to remote after quitting session
        -viewonly               Disable all input processing (view-only mode)

 WM options (SDL and X11 only)

        -windowed               Display screen in a window

 I/O options (Not for SDL)

        -input <device>         Use <device> as input. Can be used multiple times
        -audio <device>         Use <device> as audio output device

Use Ctrl+Alt+Shift+Q or Play+Back+LeftShoulder+RightShoulder to exit streaming session

 

Beware that as for now, i think only RPi 4 supports HW decoding for h.265 and even that, despite being able, is not totally implemented. Other versions of pi can use h.265 but it's SW decoded and might be very CPU intensive and thus, the pi may struggle. Don't forget to set GPU memory to at least 256M!!

Link to comment
Share on other sites

Link to post
Share on other sites

Doesn't 'moonlight' require a NVidia video card? Unfortunately, I have a AMD card but 'parsec' is a pretty good alternative.

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, steelo said:

Doesn't moonlight require a NVidia video card?

unfortunately yes, you're right. But i read somewhere that AMD support is being developed. In that case, Steam Link from Raspbian repos is also viable. You just need to add your non-steam games to your steam lib :)

Link to comment
Share on other sites

Link to post
Share on other sites

3 minutes ago, shadowownz said:

unfortunately yes, you're right. But i read somewhere that AMD support is being developed. In that case, Steam Link from Raspbian repos is also viable. You just need to add your non-steam games to your steam lib :)

I've tried steam link on a rpi zero and it wasn't pretty. Maybe I'll give it a try with a rpi3 once it's not being used for a halloween project ?

 

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, steelo said:

I've tried steam link on a rpi zero and it wasn't pretty. Maybe I'll give it a try with a rpi3 once I'm done with my halloween project

Sure mate, give it a try! I was actually impressed how smooth it was on a Pi 2 (OC of course :D )!! Just remember to plug it via cable (ethernet) instead of wireless to have a better performance. Steam Link i knew and tested once, but moonlight is a couple of steps ahead IMO.

Link to comment
Share on other sites

Link to post
Share on other sites

12 minutes ago, shadowownz said:

Sure mate, give it a try! I was actually impressed how smooth it was on a Pi 2 (OC of course :D )!! Just remember to plug it via cable (ethernet) instead of wireless to have a better performance. Steam Link i knew and tested once, but moonlight is a couple of steps ahead IMO.

Yeah, a rpi2/3 is probably the minimum...rpi zero's really don't have the CPU/GPU horsepower to process and display full HD at reasonable frame rates AND be responsive to user inputs...also, wifi speeds on the zero suck.

 

Have you had a chance to try 'Parsec'? I don't know how it compares to 'Moonlight' as I've never tried it, but it seemed to provide a much smoother experience than steam link for raspbian.

Link to comment
Share on other sites

Link to post
Share on other sites

14 minutes ago, steelo said:

Yeah, a rpi2/3 is probably the minimum...rpi zero's really don't have the CPU/GPU horsepower to process and display full HD at reasonable frame rates AND be responsive to user inputs...also, wifi speeds on the zero suck.

 

Have you had a chance to try 'Parsec'? I don't know how it compares to 'Moonlight' as I've never tried it, but it seemed to provide a much smoother experience than steam link for raspbian.

Heard of it, havent tested yet :D will be on my to do list this weekend! I got the feeling that moonlight is a tad better than steam link but i have no clue about Parsec. Let me investigate :D will keep you posted mate!

Link to comment
Share on other sites

Link to post
Share on other sites

RPi zero still uses the puny SoC of the very first Pi from 2012, it's at least 10 times less powerful than a Pi3.

They really should release a version in same form factor but with a current chip... a lot of people have been wanting that for years already.

F@H
Desktop: i9-13900K, ASUS Z790-E, 64GB DDR5-6000 CL36, RTX3080, 2TB MP600 Pro XT, 2TB SX8200Pro, 2x16TB Ironwolf RAID0, Corsair HX1200, Antec Vortex 360 AIO, Thermaltake Versa H25 TG, Samsung 4K curved 49" TV, 23" secondary, Mountain Everest Max

Mobile SFF rig: i9-9900K, Noctua NH-L9i, Asrock Z390 Phantom ITX-AC, 32GB, GTX1070, 2x1TB SX8200Pro RAID0, 2x5TB 2.5" HDD RAID0, Athena 500W Flex (Noctua fan), Custom 4.7l 3D printed case

 

Asus Zenbook UM325UA, Ryzen 7 5700u, 16GB, 1TB, OLED

 

GPD Win 2

Link to comment
Share on other sites

Link to post
Share on other sites

10 minutes ago, Kilrah said:

RPi zero still uses the puny SoC of the very first Pi from 2012, it's at least 10 times less powerful than a Pi3.

They really should release a version in same form factor but with a current chip... a lot of people have been wanting that for years already.

It would be sweet if they did...read on the RPFoundation forums that it's on the roadmap to upgrade the Pi Zero with a beefier SoC and perhaps more RAM but there are a few engineering constraints that won't be overcome soon. Still, i use a Pi Zero W for a lot of things! It's a very nice SBC for surveillance for instance. Or to have an entry point to a network or even a VPN for a couple of clients :) But for the hardcore stuff, nah! It even struggles with Buster's GUI let alone anything heavy! But still, lots of use cases and tune ups for this little marvel!

Link to comment
Share on other sites

Link to post
Share on other sites

  • 8 months later...
On 10/25/2019 at 1:03 PM, shadowownz said:

Sure mate, give it a try! I was actually impressed how smooth it was on a Pi 2 (OC of course :D )!! Just remember to plug it via cable (ethernet) instead of wireless to have a better performance. Steam Link i knew and tested once, but moonlight is a couple of steps ahead IMO.

It worked for me only connected via wifi thought.

When I try to run moonlight connected via cable, the application gets stuck at searching for the server.

Sadly via wifi it's very laggy.

Could the problem be with my modem?

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×