2019-12-05 00:11:09 +00:00
|
|
|
Requirements:
|
2019-12-06 15:34:22 +00:00
|
|
|
Ubuntu 19.10: cmake libssl-dev libavdevice-dev libboost-thread-dev libpulse-dev libopus-dev libfixes-dev libxtst-dev libx11-dev libevdev-dev
|
2019-12-05 00:11:09 +00:00
|
|
|
|
|
|
|
Compilation:
|
|
|
|
* git clone <repository> --recurse-submodules
|
|
|
|
* mkdir build && cd build
|
2019-12-21 23:05:00 +00:00
|
|
|
* cmake ..
|
2019-12-05 00:11:09 +00:00
|
|
|
* make
|
|
|
|
|
|
|
|
|
2019-12-08 18:21:48 +00:00
|
|
|
Setup:
|
|
|
|
* assets/sunshine.conf is an example configuration file. Modify it as you see fit and use it by running: "sunshine path/to/sunshine.conf"
|
|
|
|
* assets/sunshine.service is used to start sunshine in the background:
|
|
|
|
* cp sunshine.service $HOME/.config/systemd/user/
|
|
|
|
* Modify $HOME/.config/systemd/user/sunshine.conf to point to the sunshine executable
|
|
|
|
* systemctl --user start sunshine
|
|
|
|
|
2019-12-16 21:39:50 +00:00
|
|
|
* assets/apps.json is an example of a list of applications that are started just before running a stream:
|
|
|
|
* See below for a detailed explanation
|
2019-12-08 18:21:48 +00:00
|
|
|
|
2019-12-05 00:11:09 +00:00
|
|
|
Usage:
|
2019-12-08 18:21:48 +00:00
|
|
|
* run "sunshine"
|
2019-12-05 00:11:09 +00:00
|
|
|
* In Moonlight: Add PC manually
|
|
|
|
* When Moonlight request you insert the correct pin on sunshine:
|
|
|
|
wget xxx.xxx.xxx.xxx:47989/pin/xxxx -- where the final 4 x'es are subsituted by the pin
|
|
|
|
or
|
|
|
|
Type in the URL bar of your browser: xxx.xxx.xxx.xxx:47989/pin/xxxx -- where the final 4 x'es are subsituted by the pin
|
2019-12-05 00:12:48 +00:00
|
|
|
* Click on one of the Applications listed
|
2019-12-05 00:11:09 +00:00
|
|
|
* Have fun :)
|
|
|
|
|
2019-12-08 18:21:48 +00:00
|
|
|
|
2019-12-05 00:11:09 +00:00
|
|
|
Note:
|
|
|
|
* The Windows key is not passed through by Moonlight, therefore Sunshine maps Right-Alt key to the Windows key
|
2019-12-21 23:05:00 +00:00
|
|
|
* If you set Video Bitrate to 0.5Mb/s:
|
|
|
|
* Sunshine will use CRF or QP to controll the quality of the stream. (See example configuration file for more details)
|
|
|
|
* This is less CPU intensive and it has lower average bandwith requirements compared to manually setting bitrate to acceptable quality
|
|
|
|
* However, it has higher peak bitrates, forcing Sunshine to drop entire frames when streaming 1080P due to their size.
|
|
|
|
* When this happens, the video portion of the stream appears to be frozen.
|
|
|
|
* This is rare enough that using this for the desktop environment is tolerable (in my opinion), however for gaming not so much.
|
2019-12-08 18:28:14 +00:00
|
|
|
|
|
|
|
|
|
|
|
Credits:
|
|
|
|
* Simple-Web-Server [https://gitlab.com/eidheim/Simple-Web-Server]
|
|
|
|
* Moonlight [https://github.com/moonlight-stream]
|
2019-12-16 21:39:50 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Application List:
|
|
|
|
* You can use Environment variables in place of values
|
|
|
|
* $(HOME) will be replaced by the value of $HOME
|
|
|
|
* $$ will be replaced by $ --> $$(HOME) will be replaced by $(HOME)
|
|
|
|
* env: Adds or overwrites Environment variables for the commands/applications run by Sunshine.
|
|
|
|
* "Variable name":"Variable value"
|
|
|
|
* apps: The list of applications
|
|
|
|
* name: Self explanatory
|
|
|
|
* output <optional>: The file where the output of the command is stored
|
|
|
|
* If it is not specified, the output is ignored
|
|
|
|
* prep-cmd: A list of commands to be run before/after the application
|
|
|
|
* If any of the prep-commands fail, starting the application is aborted
|
|
|
|
* do: Run before the application
|
|
|
|
* If it fails, all 'undo' commands of the previously succeeded 'do' commands are run
|
|
|
|
* undo <optional>: Run after the application has terminated
|
|
|
|
* This should not fail considering it is supposed to undo the 'do' commands.
|
|
|
|
* If it fails, Sunshine is terminated
|
|
|
|
* cmd <optional>: The main application
|
|
|
|
* If not specified, a processs is started that sleeps indefinitely
|
|
|
|
|
|
|
|
When an application is started, if there is an application already running, it will be terminated.
|
|
|
|
When the application has been shutdown, the stream shuts down as well.
|
|
|
|
In addition to the apps listed, one app "Desktop" is hardcoded into Sunshine. It does not start an application, instead it simply starts a stream.
|