# If no external IP address is given, the local IP address is used # external_ip = 123.456.789.12 # The private key must be 2048 bits # pkey = /dir/pkey.pem # The certificate must be signed with a 2048 bit key # cert = /dir/cert.pem # The name displayed by Moonlight # If not specified, the PC's hostname is used # sunshine_name = Sunshine # The minimum log level printed to standard out # # none -> no logs are printed to standard out # # verbose = [0] # debug = [1] # info = [2] # warning = [3] # error = [4] # fatal = [5] # none = [6] # # min_log_level = info # The origin of the remote endpoint address that is not denied for HTTP method /pin # Could be any of the following values: # pc|lan|wan # pc: Only localhost may access /pin # lan: Only those in LAN may access /pin # wan: Anyone may access /pin # # origin_pin_allowed = lan # The file where current state of Sunshine is stored # file_state = sunshine_state.json # How long to wait in milliseconds for data from moonlight before shutting down the stream # ping_timeout = 2000 # The file where configuration for the different applications that Sunshine can run during a stream # file_apps = apps.json # 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 # # The value must be greater than 0 and lower than or equal to 100 # fec_percentage = 10 # When multicasting, it could be usefull 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 # channels = 1 # 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 # back_button_timeout = 2000 # 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: # !! Linux only !! # pacmd list-sources | grep "name:" # audio_sink = alsa_output.pci-0000_09_00.3.analog-stereo.monitor # # !! Windows only !! # tools\audio-info.exe # audio_sink = {0.0.0.00000000}.{FD47D9CC-4218-4135-9CE2-0C195C87405B} # !! Windows only !! # You can select the video card you want to stream: # The appropriate values can be found using the following command: # tools\dxgi-info.exe # adapter_name = Radeon RX 580 Series # output_name = \\.\DISPLAY1 ############################################### # FFmpeg software encoding parameters # Honestly, I have no idea what the optimal values would be. # Play around with this :) # 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 # crf = 0 # Quantitization Parameter # Higher value means more compression, but less quality # If crf != 0, then this parameter is ignored # qp = 28 # 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. # min_threads = 1 # 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. # If set to 0 (default), Sunshine will specify support for HEVC based on encoder # If set to 1, Sunshine will not advertise support for HEVC # If set to 2, Sunshine will advertise support for HEVC Main profile # If set to 3, Sunshine will advertise support for HEVC Main and Main10 (HDR) profiles # hevc_mode = 0 # Force a specific encoder, otherwise Sunshine will use the first encoder that is available # supported encoders: # nvenc # software # # encoder = nvenc ##################################### Software ##################################### # See x264 --fullhelp for the different presets # sw_preset = superfast # sw_tune = zerolatency # ##################################### NVENC ##################################### ###### presets ########### # default # hp -- high performance # hq -- high quality # slow -- hq 2 passes # medium -- hq 1 pass # fast -- hp 1 pass # bd # ll -- low latency # llhq # llhp # lossless # losslesshp ########################## # nv_preset = llhq # ####### rate control ##### # auto -- let ffmpeg decide rate control # constqp -- constant QP mode # vbr -- variable bitrate # cbr -- constant bitrate # cbr_hq -- cbr high quality # cbr_ld_hq -- cbr low delay high quality # vbr_hq -- vbr high quality ########################## # nv_rc = auto ###### h264 entropy ###### # auto -- let ffmpeg nvenc decide the entropy encoding # cabac # cavlc ########################## # nv_coder = auto ############################################## # Some configurable parameters, are merely toggles for specific features # The first occurrence turns it on, the second occurence turns it off, the third occurence turns it on again, etc, etc # Here, you change the default state of any flag # # To set the initial state of flags -0 and -1 to on, set the following flags: # flags = 01 # # See: sunshine --help for all options under the header: flags