Sunshine latest
Self-hosted game stream host for Moonlight.
Configuration

Host authority
By providing the host authority (URI + port), you can easily open each configuration option in the config UI.
Host authority:

Sunshine will work with the default settings for most users. In some cases you may want to configure Sunshine further.

The default location for the configuration file is listed below. You can use another location if you choose, by passing in the full configuration file path as the first argument when you start Sunshine.

Example

sunshine ~/sunshine_config.conf

The default location of the apps.json is the same as the configuration file. You can use a custom location by modifying the configuration file.

Default Config Directory

OS Location
Docker
/config
Linux
~/.config/sunshine
macOS
~/.config/sunshine
Windows
%ProgramFiles%\\Sunshine\\config

Although it is recommended to use the configuration UI, it is possible manually configure Sunshine by editing the conf file in a text editor. Use the examples as reference.

General

locale

Description The locale used for Sunshine's user interface.
Default
en
Example
locale = en
Choices bg Bulgarian
de German
en English
en_GB English (UK)
en_US English (United States)
es Spanish
fr French
it Italian
ja Japanese
ko Korean
pl Polish
pt Portuguese
pt_BR Portuguese (Brazilian)
ru Russian
sv Swedish
tr Turkish
uk Ukranian
zh Chinese (Simplified)

sunshine_name

Description The name displayed by Moonlight.
Default PC hostname
Example
sunshine_name = Sunshine

min_log_level

Description The minimum log level printed to standard out.
Default
info
Example
min_log_level = info
Choices verbose All logging message.
Attention
This may negatively affect streaming performance.
debug Debug log messages and higher.
Attention
This may negatively affect streaming performance.
info Informational log messages and higher.
warning Warning log messages and higher.
error Error log messages and higher.
fatal Only fatal log messages.
none No log messages.

global_prep_cmd

Description A list of commands to be run before/after all applications. If any of the prep-commands fail, starting the application is aborted.
Default
[]
Example
global_prep_cmd = [{"do":"nircmd.exe setdisplay 1280 720 32 144","undo":"nircmd.exe setdisplay 2560 1440 32 144"}]

notify_pre_releases

Description Whether to be notified of new pre-release versions of Sunshine.
Default
disabled
Example
notify_pre_releases = disabled

Input

controller

Description Whether to allow controller input from the client.
Default
enabled
Example
controller = enabled

gamepad

Description The type of gamepad to emulate on the host.
Default
auto
Example
gamepad = auto
Choices ds4 DualShock 4 controller (PS4)
Note
This option applies to Windows only.
ds5 DualShock 5 controller (PS5)
Note
This option applies to Linux only.
switch Switch Pro controller
Note
This option applies to Linux only.
x360 Xbox 360 controller
Note
This option applies to Windows only.
xone Xbox One controller
Note
This option applies to Linux only.

ds4_back_as_touchpad_click

Description Allow Select/Back inputs to also trigger DS4 touchpad click. Useful for clients looking to emulate touchpad click on Xinput devices.
Hint
Only applies when gamepad is set to ds4 manually. Unused in other gamepad modes.
Default
enabled
Example
ds4_back_as_touchpad_click = enabled

motion_as_ds4

Description If a client reports that a connected gamepad has motion sensor support, emulate it on the host as a DS4 controller.

When disabled, motion sensors will not be taken into account during gamepad type selection.
Hint
Only applies when gamepad is set to auto.
Default
enabled
Example
motion_as_ds4 = enabled

touchpad_as_ds4

Description If a client reports that a connected gamepad has a touchpad, emulate it on the host as a DS4 controller.

When disabled, touchpad presence will not be taken into account during gamepad type selection.
Hint
Only applies when gamepad is set to auto.
Default
enabled
Example
touchpad_as_ds4 = enabled

back_button_timeout

Description If the Back/Select button is held down for the specified number of milliseconds, a Home/Guide button press is emulated.
Tip
If back_button_timeout < 0, then the Home/Guide button will not be emulated.
Default
-1
Example
back_button_timeout = 2000

keyboard

Description Whether to allow keyboard input from the client.
Default
enabled
Example
keyboard = enabled

key_repeat_delay

Description The initial delay, in milliseconds, before repeating keys. Controls how fast keys will repeat themselves.
Default
500
Example
key_repeat_delay = 500

key_repeat_frequency

Description How often keys repeat every second.
Tip
This configurable option supports decimals.
Default
24.9
Example
key_repeat_frequency = 24.9

always_send_scancodes

Description Sending scancodes enhances compatibility with games and apps but may result in incorrect keyboard input from certain clients that aren't using a US English keyboard layout.

Enable if keyboard input is not working at all in certain applications.

Disable if keys on the client are generating the wrong input on the host.
Caution
Applies to Windows only.
Default
enabled
Example
always_send_scancodes = enabled

key_rightalt_to_key_win

Description It may be possible that you cannot send the Windows Key from Moonlight directly. In those cases it may be useful to make Sunshine think the Right Alt key is the Windows key.
Default
disabled
Example
key_rightalt_to_key_win = enabled

mouse

Description Whether to allow mouse input from the client.
Default
enabled
Example
mouse = enabled

high_resolution_scrolling

Description When enabled, Sunshine will pass through high resolution scroll events from Moonlight clients.
This can be useful to disable for older applications that scroll too fast with high resolution scroll events.
Default
enabled
Example
high_resolution_scrolling = enabled

native_pen_touch

Description When enabled, Sunshine will pass through native pen/touch events from Moonlight clients.
This can be useful to disable for older applications without native pen/touch support.
Default
enabled
Example
native_pen_touch = enabled

keybindings

Description Sometimes it may be useful to map keybindings. Wayland won't allow clients to capture the Win Key for example.
Tip
See virtual key codes
Hint
keybindings needs to have a multiple of two elements.
Note
This option is not available in the UI. A PR would be welcome.
Default
[
0x10, 0xA0,
0x11, 0xA2,
0x12, 0xA4
]
Example
keybindings = [
0x10, 0xA0,
0x11, 0xA2,
0x12, 0xA4,
0x4A, 0x4B
]

Audio/Video

audio_sink

Description The name of the audio sink used for audio loopback.
Tip
To find the name of the audio sink follow these instructions.

Linux + pulseaudio:
pacmd list-sinks | grep "name:"


Linux + pipewire:
pactl info | grep Source
# in some causes you'd need to use the `Sink` device, if `Source` doesn't work, so try:
pactl info | grep Sink


macOS:
Sunshine can only access microphones on macOS due to system limitations. To stream system audio use Soundflower or BlackHole.

Windows:
Enter the following command in command prompt or PowerShell.
%ProgramFiles%\Sunshine\tools\audio-info.exe
If you have multiple audio devices with identical names, use the Device ID instead.
Attention
If you want to mute the host speakers, use virtual_sink instead.
Default Sunshine will select the default audio device.
Example (Linux)
audio_sink = alsa_output.pci-0000_09_00.3.analog-stereo
Example (macOS)
audio_sink = BlackHole 2ch
Example (Windows)
audio_sink = Speakers (High Definition Audio Device)

virtual_sink

Description The audio device that's virtual, like Steam Streaming Speakers. This allows Sunshine to stream audio, while muting the speakers.
Tip
See audio_sink!
Tip
These are some options for virtual sound devices.
Default n/a
Example
virtual_sink = Steam Streaming Speakers

install_steam_audio_drivers

Description Installs the Steam Streaming Speakers driver (if Steam is installed) to support surround sound and muting host audio.
Note
This option is only supported on Windows.
Default
enabled
Example
install_steam_audio_drivers = enabled

adapter_name

Description Select the video card you want to stream.
Tip
To find the appropriate values follow these instructions.

Linux + VA-API:
Unlike with amdvce and nvenc, it doesn't matter if video encoding is done on a different GPU.
ls /dev/dri/renderD* # to find all devices capable of VAAPI
# replace ``renderD129`` with the device from above to list the name and capabilities of the device
vainfo --display drm --device /dev/dri/renderD129 | \
grep -E "((VAProfileH264High|VAProfileHEVCMain|VAProfileHEVCMain10).*VAEntrypointEncSlice)|Driver version"
To be supported by Sunshine, it needs to have at the very minimum: VAProfileH264High : VAEntrypointEncSlice

Windows:
Enter the following command in command prompt or PowerShell.
%ProgramFiles%\Sunshine\tools\dxgi-info.exe
For hybrid graphics systems, DXGI reports the outputs are connected to whichever graphics adapter that the application is configured to use, so it's not a reliable indicator of how the display is physically connected.
Default Sunshine will select the default video card.
Example (Linux)
adapter_name = /dev/dri/renderD128
Example (Windows)
adapter_name = Radeon RX 580 Series

output_name

Description Select the display number you want to stream.
Tip
To find the appropriate values follow these instructions.

Linux:
During Sunshine startup, you should see the list of detected displays:
Info: Detecting displays
Info: Detected display: DVI-D-0 (id: 0) connected: false
Info: Detected display: HDMI-0 (id: 1) connected: true
Info: Detected display: DP-0 (id: 2) connected: true
Info: Detected display: DP-1 (id: 3) connected: false
Info: Detected display: DVI-D-1 (id: 4) connected: false
You need to use the id value inside the parenthesis, e.g. 1.

macOS:
During Sunshine startup, you should see the list of detected displays:
Info: Detecting displays
Info: Detected display: Monitor-0 (id: 3) connected: true
Info: Detected display: Monitor-1 (id: 2) connected: true
You need to use the id value inside the parenthesis, e.g. 3.

Windows:
During Sunshine startup, you should see the list of detected displays:
Info: Currently available display devices:
[
{
"device_id": "{64243705-4020-5895-b923-adc862c3457e}",
"display_name": "",
"friendly_name": "IDD HDR",
"info": null
},
{
"device_id": "{77f67f3e-754f-5d31-af64-ee037e18100a}",
"display_name": "",
"friendly_name": "SunshineHDR",
"info": null
},
{
"device_id": "{daeac860-f4db-5208-b1f5-cf59444fb768}",
"display_name": "\\\\.\\DISPLAY1",
"friendly_name": "ROG PG279Q",
"info": {
"hdr_state": null,
"origin_point": {
"x": 0,
"y": 0
},
"primary": true,
"refresh_rate": {
"type": "rational",
"value": {
"denominator": 1000,
"numerator": 119998
}
},
"resolution": {
"height": 1440,
"width": 2560
},
"resolution_scale": {
"type": "rational",
"value": {
"denominator": 100,
"numerator": 100
}
}
}
}
]
You need to use the device_id value.
Default Sunshine will select the default display.
Example (Linux)
output_name = 0
Example (macOS)
output_name = 3
Example (Windows)
output_name = {daeac860-f4db-5208-b1f5-cf59444fb768}

dd_configuration_option

Description Perform mandatory verification and additional configuration for the display device.
Note
Applies to Windows only.
Default
verify_only
Example
dd_configuration_option = ensure_only_display
Choices disabled Perform no additional configuration (disables all dd_ configuration options).
verify_only Verify that display is active only (this is a mandatory step without any extra steps to verify display state).
ensure_active Activate the display if it's currently inactive.
ensure_primary Activate the display if it's currently inactive and make it primary.
ensure_only_display Activate the display if it's currently inactive and disable all others.

dd_resolution_option

Description Perform additional resolution configuration for the display device.
Note
"Optimize game settings" must be enabled in Moonlight for this option to work.
Note
Applies to Windows only.
Default
auto
Example
dd_resolution_option = manual
Choices disabled Perform no additional configuration.
auto Change resolution to the requested resolution from the client.
manual Change resolution to the user specified one (set via dd_manual_resolution).

dd_manual_resolution

Description Specify manual resolution to be used.
Note
dd_resolution_option must be set to manual
Note
Applies to Windows only.
Default n/a
Example
dd_manual_resolution = 1920x1080

dd_refresh_rate_option

Description Perform additional refresh rate configuration for the display device.
Note
Applies to Windows only.
Default
auto
Example
dd_refresh_rate_option = manual
Choices disabled Perform no additional configuration.
auto Change refresh rate to the requested FPS value from the client.
manual Change refresh rate to the user specified one (set via dd_manual_refresh_rate).

dd_manual_refresh_rate

Description Specify manual refresh rate to be used.
Note
dd_refresh_rate_option must be set to manual
Note
Applies to Windows only.
Default n/a
Example
dd_manual_resolution = 120
dd_manual_resolution = 59.95

dd_hdr_option

Description Perform additional HDR configuration for the display device.
Note
Applies to Windows only.
Default
auto
Example
dd_hdr_option = disabled
Choices disabled Perform no additional configuration.
auto Change HDR to the requested state from the client if the display supports it.

dd_wa_hdr_toggle

Description When using virtual display device as for streaming, it might display incorrect (high-contrast) color. With this option enabled, Sunshine will try to mitigate this issue.
Note
This option works independently of dd_hdr_option
Note
Applies to Windows only.
Default
disabled
Example
dd_wa_hdr_toggle = enabled

dd_config_revert_delay

Description Additional delay in milliseconds to wait before reverting configuration when the app has been closed or the last session terminated. Main purpose is to provide a smoother transition when quickly switching between apps.
Note
Applies to Windows only.
Default
3000
Example
dd_config_revert_delay = 1500

dd_mode_remapping

Description Remap the requested resolution and FPS to another display mode.
Depending on the dd_resolution_option and dd_refresh_rate_option values, the following mapping groups are available: For each of those groups, a list of fields can be configured to perform remapping:
  • requested_resolution - resolution that needs to be matched in order to use this remapping entry.
  • requested_fps - FPS that needs to be matched in order to use this remapping entry.
  • final_resolution - resolution value to be used if the entry was matched.
  • final_refresh_rate - refresh rate value to be used if the entry was matched.
If requested_* field is left empty, it will match everything.
If final_* field is left empty, the original value will not be remapped and either a requested, manual or current value is used. However, at least one final_* must be set, otherwise the entry is considered invalid.
Note
"Optimize game settings" must be enabled on client side for ANY entry with resolution field to be considered.
Note
First entry to be matched in the list is the one that will be used.
Tip
requested_resolution and final_resolution can be omitted for refresh_rate_only group.
Tip
requested_fps and final_refresh_rate can be omitted for resolution_only group.
Note
Applies to Windows only.
Default
dd_mode_remapping = {
"mixed": [],
"resolution_only": [],
"refresh_rate_only": []
}
Example
dd_mode_remapping = {
"mixed": [
{
"requested_fps": "60",
"final_refresh_rate": "119.95",
"requested_resolution": "1920x1080",
"final_resolution": "2560x1440"
},
{
"requested_fps": "60",
"final_refresh_rate": "120",
"requested_resolution": "",
"final_resolution": ""
}
],
"resolution_only": [
{
"requested_resolution": "1920x1080",
"final_resolution": "2560x1440"
}
],
"refresh_rate_only": [
{
"requested_fps": "60",
"final_refresh_rate": "119.95"
}
]
}

min_fps_factor

Description Sunshine will use this factor to calculate the minimum time between frames. Increasing this value may help when streaming mostly static content.
Warning
Higher values will consume more bandwidth.
Default
1
Range 1-3
Example
min_fps_factor = 1

Network

upnp

Description Sunshine will attempt to open ports for streaming over the internet.
Default
disabled
Example
upnp = enabled

address_family

Description Set the address family that Sunshine will use.
Default
ipv4
Example
address_family = both
Choices ipv4 IPv4 only
both IPv4+IPv6

port

Description Set the family of ports used by Sunshine. Changing this value will offset other ports as shown in config UI.
Default
47989
Range 1029-65514
Example
port = 47989

origin_web_ui_allowed

Description The origin of the remote endpoint address that is not denied for HTTPS Web UI.
Default
lan
Example
origin_web_ui_allowed = lan
Choices pc Only localhost may access the web ui
lan Only LAN devices may access the web ui
wan Anyone may access the web ui

external_ip

Description If no external IP address is given, Sunshine will attempt to automatically detect external ip-address.
Default Automatic
Example
external_ip = 123.456.789.12

lan_encryption_mode

Description This determines when encryption will be used when streaming over your local network.
Warning
Encryption can reduce streaming performance, particularly on less powerful hosts and clients.
Default
0
Example
lan_encryption_mode = 0
Choices 0 encryption will not be used
1 encryption will be used if the client supports it
2 encryption is mandatory and unencrypted connections are rejected

wan_encryption_mode

Description This determines when encryption will be used when streaming over the Internet.
Warning
Encryption can reduce streaming performance, particularly on less powerful hosts and clients.
Default
1
Example
wan_encryption_mode = 1
Choices 0 encryption will not be used
1 encryption will be used if the client supports it
2 encryption is mandatory and unencrypted connections are rejected

ping_timeout

Description How long to wait, in milliseconds, for data from Moonlight before shutting down the stream.
Default
10000
Example
ping_timeout = 10000

Config Files

file_apps

Description The application configuration file path. The file contains a JSON formatted list of applications that can be started by Moonlight.
Default
apps.json
Example
file_apps = apps.json

credentials_file

Description The file where user credentials for the UI are stored.
Default
sunshine_state.json
Example
credentials_file = sunshine_state.json

log_path

Description The path where the Sunshine log is stored.
Default
sunshine.log
Example
log_path = sunshine.log

pkey

Description The private key used for the web UI and Moonlight client pairing. For best compatibility, this should be an RSA-2048 private key.
Warning
Not all Moonlight clients support ECDSA keys or RSA key lengths other than 2048 bits.
Default
credentials/cakey.pem
Example
pkey = /dir/pkey.pem

cert

Description The certificate used for the web UI and Moonlight client pairing. For best compatibility, this should have an RSA-2048 public key.
Warning
Not all Moonlight clients support ECDSA keys or RSA key lengths other than 2048 bits.
Default
credentials/cacert.pem
Example
cert = /dir/cert.pem

file_state

Description The file where current state of Sunshine is stored.
Default
sunshine_state.json
Example
file_state = sunshine_state.json

Advanced

fec_percentage

Description Percentage of error correcting packets per data packet in each video frame.
Warning
Higher values can correct for more network packet loss, but at the cost of increasing bandwidth usage.
Default
20
Range 1-255
Example
fec_percentage = 20

qp

Description Quantization Parameter. Some devices don't support Constant Bit Rate. For those devices, QP is used instead.
Warning
Higher value means more compression, but less quality.
Default
28
Example
qp = 28

min_threads

Description Minimum number of CPU threads used for encoding.
Note
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.
Default
2
Example
min_threads = 2

hevc_mode

Description Allows the client to request HEVC Main or HEVC Main10 video streams.
Warning
HEVC is more CPU-intensive to encode, so enabling this may reduce performance when using software encoding.
Default
0
Example
hevc_mode = 2
Choices 0 advertise support for HEVC based on encoder capabilities (recommended)
1 do not advertise support for HEVC
2 advertise support for HEVC Main profile
3 advertise support for HEVC Main and Main10 (HDR) profiles

av1_mode

Description Allows the client to request AV1 Main 8-bit or 10-bit video streams.
Warning
AV1 is more CPU-intensive to encode, so enabling this may reduce performance when using software encoding.
Default
0
Example
av1_mode = 2
Choices 0 advertise support for AV1 based on encoder capabilities (recommended)
1 do not advertise support for AV1
2 advertise support for AV1 Main 8-bit profile
3 advertise support for AV1 Main 8-bit and 10-bit (HDR) profiles

capture

Description Force specific screen capture method.
Default Automatic. Sunshine will use the first capture method available in the order of the table above.
Example
capture = kms
Choices nvfbc Use NVIDIA Frame Buffer Capture to capture direct to GPU memory. This is usually the fastest method for NVIDIA cards. NvFBC does not have native Wayland support and does not work with XWayland.
Note
Applies to Linux only.
wlr Capture for wlroots based Wayland compositors via DMA-BUF.
Note
Applies to Linux only.
kms DRM/KMS screen capture from the kernel. This requires that Sunshine has cap_sys_admin capability.
Note
Applies to Linux only.
x11 Uses XCB. This is the slowest and most CPU intensive so should be avoided if possible.
Note
Applies to Linux only.
ddx Use DirectX Desktop Duplication API to capture the display. This is well-supported on Windows machines.
Note
Applies to Windows only.
wgc (beta feature) Use Windows.Graphics.Capture to capture the display.
Note
Applies to Windows only.
Attention
This capture method is not compatible with the Sunshine service.

encoder

Description Force a specific encoder.
Default Sunshine will use the first encoder that is available.
Example
encoder = nvenc
Choices nvenc For NVIDIA graphics cards
quicksync For Intel graphics cards
amdvce For AMD graphics cards
vaapi Use Linux VA-API (AMD, Intel)
software Encoding occurs on the CPU

NVIDIA NVENC Encoder

nvenc_preset

Description NVENC encoder performance preset. Higher numbers improve compression (quality at given bitrate) at the cost of increased encoding latency. Recommended to change only when limited by network or decoder, otherwise similar effect can be accomplished by increasing bitrate.
Note
This option only applies when using NVENC encoder.
Default
1
Example
nvenc_preset = 1
Choices 1 P1 (fastest)
2 P2
3 P3
4 P4
5 P5
6 P6
7 P7 (slowest)

nvenc_twopass

Description Enable two-pass mode in NVENC encoder. This allows to detect more motion vectors, better distribute bitrate across the frame and more strictly adhere to bitrate limits. Disabling it is not recommended since this can lead to occasional bitrate overshoot and subsequent packet loss.
Note
This option only applies when using NVENC encoder.
Default
quarter_res
Example
nvenc_twopass = quarter_res
Choices disabled One pass (fastest)
quarter_res Two passes, first pass at quarter resolution (faster)
full_res Two passes, first pass at full resolution (slower)

nvenc_spatial_aq

Description Assign higher QP values to flat regions of the video. Recommended to enable when streaming at lower bitrates.
Note
This option only applies when using NVENC encoder.
Warning
Enabling this option may reduce performance.
Default
disabled
Example
nvenc_spatial_aq = disabled

nvenc_vbv_increase

Description Single-frame VBV/HRD percentage increase. By default Sunshine uses single-frame VBV/HRD, which means any encoded video frame size is not expected to exceed requested bitrate divided by requested frame rate. Relaxing this restriction can be beneficial and act as low-latency variable bitrate, but may also lead to packet loss if the network doesn't have buffer headroom to handle bitrate spikes. Maximum accepted value is 400, which corresponds to 5x increased encoded video frame upper size limit.
Note
This option only applies when using NVENC encoder.
Warning
Can lead to network packet loss.
Default
0
Range 0-400
Example
nvenc_vbv_increase = 0

nvenc_realtime_hags

Description Use realtime gpu scheduling priority in NVENC when hardware accelerated gpu scheduling (HAGS) is enabled in Windows. Currently, NVIDIA drivers may freeze in encoder when HAGS is enabled, realtime priority is used and VRAM utilization is close to maximum. Disabling this option lowers the priority to high, sidestepping the freeze at the cost of reduced capture performance when the GPU is heavily loaded.
Note
This option only applies when using NVENC encoder.
Note
Applies to Windows only.
Default
enabled
Example
nvenc_realtime_hags = enabled

nvenc_latency_over_power

Description Adaptive P-State algorithm which NVIDIA drivers employ doesn't work well with low latency streaming, so Sunshine requests high power mode explicitly.
Note
This option only applies when using NVENC encoder.
Warning
Disabling this is not recommended since this can lead to significantly increased encoding latency.
Note
Applies to Windows only.
Default
enabled
Example
nvenc_latency_over_power = enabled

nvenc_opengl_vulkan_on_dxgi

Description Sunshine can't capture fullscreen OpenGL and Vulkan programs at full frame rate unless they present on top of DXGI. With this option enabled Sunshine changes global Vulkan/OpenGL present method to "Prefer layered on DXGI Swapchain". This is system-wide setting that is reverted on Sunshine program exit.
Note
This option only applies when using NVENC encoder.
Note
Applies to Windows only.
Default
enabled
Example
nvenc_opengl_vulkan_on_dxgi = enabled

nvenc_h264_cavlc

Description Prefer CAVLC entropy coding over CABAC in H.264 when using NVENC. CAVLC is outdated and needs around 10% more bitrate for same quality, but provides slightly faster decoding when using software decoder.
Note
This option only applies when using H.264 format with the NVENC encoder.
Default
disabled
Example
nvenc_h264_cavlc = disabled

Intel QuickSync Encoder

qsv_preset

Description The encoder preset to use.
Note
This option only applies when using quicksync encoder.
Default
medium
Example
qsv_preset = medium
Choices veryfast fastest (lowest quality)
faster faster (lower quality)
fast fast (low quality)
medium medium (default)
slow slow (good quality)
slower slower (better quality)
veryslow slowest (best quality)

qsv_coder

Description The entropy encoding to use.
Note
This option only applies when using H.264 with the quicksync encoder.
Default
auto
Example
qsv_coder = auto
Choices auto let ffmpeg decide
cabac context adaptive binary arithmetic coding - higher quality
cavlc context adaptive variable-length coding - faster decode

qsv_slow_hevc

Description This options enables use of HEVC on older Intel GPUs that only support low power encoding for H.264.
Note
This option only applies when using quicksync encoder.
Caution
Streaming performance may be significantly reduced when this option is enabled.
Default
disabled
Example
qsv_slow_hevc = disabled

AMD AMF Encoder

amd_usage

Description The encoder usage profile is used to set the base set of encoding parameters.
Note
This option only applies when using amdvce encoder.
Note
The other AMF options that follow will override a subset of the settings applied by your usage profile, but there are hidden parameters set in usage profiles that cannot be overridden elsewhere.
Default
ultralowlatency
Example
amd_usage = ultralowlatency
Choices transcoding transcoding (slowest)
webcam webcam (slow)
lowlatency_high_quality low latency, high quality (fast)
lowlatency low latency (faster)
ultralowlatency ultra low latency (fastest)

amd_rc

Description The encoder rate control.
Note
This option only applies when using amdvce encoder.
Warning
The vbr_latency option generally works best, but some bitrate overshoots may still occur. Enabling HRD allows all bitrate based rate controls to better constrain peak bitrate, but may result in encoding artifacts depending on your card.
Default
vbr_latency
Example
amd_rc = vbr_latency
Choices cqp constant qp mode
cbr constant bitrate
vbr_latency variable bitrate, latency constrained
vbr_peak variable bitrate, peak constrained

amd_enforce_hrd

Description Enable Hypothetical Reference Decoder (HRD) enforcement to help constrain the target bitrate.
Note
This option only applies when using amdvce encoder.
Warning
HRD is known to cause encoding artifacts or negatively affect encoding quality on certain cards.
Default
disabled
Example
amd_enforce_hrd = disabled

amd_quality

Description The quality profile controls the tradeoff between speed and quality of encoding.
Note
This option only applies when using amdvce encoder.
Default
balanced
Example
amd_quality = balanced
Choices speed prefer speed
balanced balanced
quality prefer quality

amd_preanalysis

Description Preanalysis can increase encoding quality at the cost of latency.
Note
This option only applies when using amdvce encoder.
Default
disabled
Example
amd_preanalysis = disabled

amd_vbaq

Description Variance Based Adaptive Quantization (VBAQ) can increase subjective visual quality by prioritizing allocation of more bits to smooth areas compared to more textured areas.
Note
This option only applies when using amdvce encoder.
Default
enabled
Example
amd_vbaq = enabled

amd_coder

Description The entropy encoding to use.
Note
This option only applies when using H.264 with the amdvce encoder.
Default
auto
Example
amd_coder = auto
Choices auto let ffmpeg decide
cabac context adaptive binary arithmetic coding - faster decode
cavlc context adaptive variable-length coding - higher quality

VideoToolbox Encoder

vt_coder

Description The entropy encoding to use.
Note
This option only applies when using macOS.
Default
auto
Example
vt_coder = auto
Choices auto let ffmpeg decide
cabac context adaptive binary arithmetic coding - faster decode
cavlc context adaptive variable-length coding - higher quality

vt_software

Description Force Video Toolbox to use software encoding.
Note
This option only applies when using macOS.
Default
auto
Example
vt_software = auto
Choices auto let ffmpeg decide
disabled disable software encoding
allowed allow software encoding
forced force software encoding

vt_realtime

Description Realtime encoding.
Note
This option only applies when using macOS.
Warning
Disabling realtime encoding might result in a delayed frame encoding or frame drop.
Default
enabled
Example
vt_realtime = enabled

VA-API Encoder

vaapi_strict_rc_buffer

Description Enabling this option can avoid dropped frames over the network during scene changes, but video quality may be reduced during motion.
Note
This option only applies for H.264 and HEVC when using VA-API encoder on AMD GPUs.
Default
disabled
Example
vaapi_strict_rc_buffer = enabled

Software Encoder

sw_preset

Description The encoder preset to use.
Note
This option only applies when using software encoder.
Note
From FFmpeg.

A preset is a collection of options that will provide a certain encoding speed to compression ratio. A slower preset will provide better compression (compression is quality per filesize). This means that, for example, if you target a certain file size or constant bit rate, you will achieve better quality with a slower preset. Similarly, for constant quality encoding, you will simply save bitrate by choosing a slower preset.

Use the slowest preset that you have patience for.
Default
superfast
Example
sw_preset = superfast
Choices ultrafast fastest
superfast
veryfast
faster
fast
medium
slow
slower
veryslow slowest

sw_tune

Description The tuning preset to use.
Note
This option only applies when using software encoder.
Note
From FFmpeg.

You can optionally use -tune to change settings based upon the specifics of your input.
Default
zerolatency
Example
sw_tune = zerolatency
Choices film use for high quality movie content; lowers deblocking
animation good for cartoons; uses higher deblocking and more reference frames
grain preserves the grain structure in old, grainy film material
stillimage good for slideshow-like content
fastdecode allows faster decoding by disabling certain filters
zerolatency good for fast encoding and low-latency streaming
Previous Next
Legal App Examples