Configuration

The name displayed by Moonlight. If not specified, the PC's hostname is used
The minimum log level printed to standard out
The origin of the remote endpoint address that is not denied for HTTP method /pin
If no external IP address is given, the local IP address is used
How long to wait in milliseconds for data from moonlight before shutting down the stream
The private key must be 2048 bits
The certificate must be signed with a 2048 bit key
The file where current state of Sunshine is stored
The file where current apps of Sunshine are stored
The back/select button on the controller.
On the Shield, the home and powerbutton are not passed to Moonlight.
If, after the timeout, the back button is still pressed down, Home/Guide button press is emulated.
If back_button_timeout < 0, then the Home/Guide button will not be emulated
Control how fast keys will repeat themselves
The initial delay in milliseconds before repeating keys
How often keys repeat every second
This configurable option supports decimals
The name of the audio sink used for Audio Loopback
You can find the name of the audio sink using the following command:
tools\audio-info.exe
The name of the audio sink used for Audio Loopback
If you do not specify this variable, pulseaudio will select the default monitor device.

You can find the name of the audio sink using the following command:
pacmd list-sources | grep "name:"
You can select the video card you want to stream:
The appropriate values can be found using the following command:
tools\dxgi-info.exe
You can select the video card you want to stream:
The appropriate values can be found using the following command:
tools\dxgi-info.exe
!! Linux only !!
Set the display number to stream. I have no idea how they are numbered. They start from 1, usually.
output_name = 1
Constant Rate Factor. Between 1 and 52. It allows QP to go up during motion and down with still image, resulting in constant perceived quality
Higher value means more compression, but less quality
If crf == 0, then use QP directly instead
Quantitization Parameter
Higher value means more compression, but less quality
If crf != 0, then this parameter is ignored
Minimum number of threads used by ffmpeg to encode the video.
Increasing the value slightly reduces encoding efficiency, but the tradeoff is usually
worth it to gain the use of more CPU cores for encoding. The ideal value is the lowest
value that can reliably encode at your desired streaming settings on your hardware.
Allows the client to request HEVC Main or HEVC Main10 video streams.
HEVC is more CPU-intensive to encode, so enabling this may reduce performance when using software encoding.
Force a specific encoder, otherwise Sunshine will use the first encoder that is available
How much error correcting packets must be send for every video.
This is just some random number, don't know the optimal value.
The higher fec_percentage, the lower space for the actual data to send per frame there is
When multicasting, it could be useful to have different configurations for each connected Client. For example:
  • Clients connected through WAN and LAN have different bitrate contstraints.
  • Decoders may require different settings for color
Unlike simply broadcasting to multiple Client, this will generate distinct video streams.
Note, CPU usage increases for each distinct video stream generated