# Pretty self-explanatory # 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 # Pretty self-explanatory unique_id = 03904e64-51da-4fb3-9afd-a9f7ff70fea4 # The file where info on paired devices is stored # file_devices = devices.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 max_b_frames # 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 fec_percentage = 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 ############################################### # FFmpeg software encoding parameters # Honestly, I have no idea what the optimal values would be. # Play around with this :) max_b_frames = 16 gop_size = 24 # 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 # Number of threads used by ffmpeg to encode the video threads = 8 # See x264 --fullhelp for the different presets profile = baseline preset = superfast tune = zerolatency