Advanced Usage¶
Sunshine will work with the default settings for most users. In some cases you may want to configure Sunshine further.
Performance Tips¶
In Windows, enabling Enhanced Sync in AMD’s settings may help reduce the latency by an additional frame. This applies to amfenc and libx264.
Enabling Fast Sync in Nvidia settings may help reduce latency.
Configuration¶
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.
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 File Location
Value |
Description |
---|---|
Docker |
/config/ |
Linux |
~/.config/sunshine/ |
macOS |
~/.config/sunshine/ |
Windows |
%ProgramFiles%\Sunshine\config |
- Example
sunshine ~/sunshine_config.conf
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.
Choices
Value |
Description |
---|---|
de |
German |
en |
English |
en_GB |
English (UK) |
en_US |
English (United States) |
es |
Spanish |
fr |
French |
it |
Italian |
ja |
Japanese |
pt |
Portuguese |
ru |
Russian |
sv |
Swedish |
zh |
Chinese (Simplified) |
- Default
en
- Example
locale = en
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.
Choices
Value |
Description |
---|---|
verbose |
verbose logging |
debug |
debug logging |
info |
info logging |
warning |
warning logging |
error |
error logging |
fatal |
fatal logging |
none |
no logging |
- Default
info
- Example
min_log_level = info
channels¶
- Description
Sunshine can support multiple clients streaming simultaneously, at the cost of higher CPU and GPU usage.
Note
All connected clients share control of the same streaming session.
Warning
Some hardware encoders may have limitations that reduce performance with multiple streams.
- Default
1
- Example
channels = 1
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"}]
Input¶
controller¶
- Description
Whether to allow controller input from the client.
- Example
controller = enabled
gamepad¶
- Description
The type of gamepad to emulate on the host.
Caution
Applies to Windows only.
Choices
Value |
Description |
---|---|
auto |
Selected based on information from client |
x360 |
Xbox 360 controller |
ds4 |
DualShock 4 controller (PS4) |
- Default
auto
- Example
gamepad = auto
ds4_back_as_touchpad_click¶
- Description
Hint
Only applies when gamepad is set to ds4 manually. Unused in other gamepad modes.
Allow Select/Back inputs to also trigger DS4 touchpad click. Useful for clients looking to emulate touchpad click on Xinput devices.
- Default
enabled
- Example
ds4_back_as_touchpad_click = enabled
motion_as_ds4¶
- Description
Hint
Only applies when gamepad is set to auto.
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.
- Default
enabled
- Example
motion_as_ds4 = enabled
touchpad_as_ds4¶
- Description
Hint
Only applies when gamepad is set to auto.
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.
- Default
enabled
- Example
touchpad_as_ds4 = enabled
keyboard¶
- Description
Whether to allow keyboard input from the client.
- 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.
- 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
Hint
keybindings needs to have a multiple of two elements.
- Default
[ 0x10, 0xA0, 0x11, 0xA2, 0x12, 0xA4 ]
- Example
keybindings = [ 0x10, 0xA0, 0x11, 0xA2, 0x12, 0xA4, 0x4A, 0x4B ]
Note
This option is not available in the UI. A PR would be welcome.
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
tools\audio-info.exe
Tip
If you have multiple audio devices with identical names, use the Device ID instead.
Tip
If you want to mute the host speakers, use virtual_sink instead.
- Default
Sunshine will select the default audio device.
- Examples
- Linux
audio_sink = alsa_output.pci-0000_09_00.3.analog-stereo
- macOS
audio_sink = BlackHole 2ch
- 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.
Stream Streaming Speakers (Linux, macOS, Windows)
Steam must be installed.
Enable install_steam_audio_drivers or use Steam Remote Play at least once to install the drivers.
Virtual Audio Cable (macOS, Windows)
- 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.
Tip
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 name of 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 lists 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
Todo
macOS
- Windows
tools\dxgi-info.exe
Note
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.
- Examples
- Linux
adapter_name = /dev/dri/renderD128
Todo
macOS
- Windows
adapter_name = Radeon RX 580 Series
output_name¶
- Description
Select the display number you want to stream.
Tip
To find the name of 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
tools\dxgi-info.exe
- Default
Sunshine will select the default display.
- Examples
- Linux
output_name = 0
- macOS
output_name = 3
- Windows
output_name = \\.\DISPLAY1
resolutions¶
- Description
The resolutions advertised by Sunshine.
Note
Some versions of Moonlight, such as Moonlight-nx (Switch), rely on this list to ensure that the requested resolution is supported.
- Default
[ 352x240, 480x360, 858x480, 1280x720, 1920x1080, 2560x1080, 3440x1440, 1920x1200, 3840x2160, 3840x1600, ]
- Example
resolutions = [ 352x240, 480x360, 858x480, 1280x720, 1920x1080, 2560x1080, 3440x1440, 1920x1200, 3840x2160, 3840x1600, ]
fps¶
- Description
The fps modes advertised by Sunshine.
Note
Some versions of Moonlight, such as Moonlight-nx (Switch), rely on this list to ensure that the requested fps is supported.
- Default
[10, 30, 60, 90, 120]
- Example
fps = [10, 30, 60, 90, 120]
Network¶
upnp¶
- Description
Sunshine will attempt to open ports for streaming over the internet.
Choices
Value |
Description |
---|---|
on |
enable UPnP |
off |
disable UPnP |
- Default
disabled
- Example
upnp = on
address_family¶
- Description
Set the address family that Sunshine will use.
Value |
Description |
---|---|
ipv4 |
IPv4 only |
both |
IPv4+IPv6 |
- Default
ipv4
- Example
address_family = both
port¶
- Description
Set the family of ports used by Sunshine. Changing this value will offset other ports per the table below.
Port Description |
Default Port |
Difference from config port |
---|---|---|
HTTPS |
47984 TCP |
-5 |
HTTP |
47989 TCP |
0 |
Web |
47990 TCP |
+1 |
RTSP |
48010 TCP |
+21 |
Video |
47998 UDP |
+9 |
Control |
47999 UDP |
+10 |
Audio |
48000 UDP |
+11 |
Mic (unused) |
48002 UDP |
+13 |
Attention
Custom ports may not be supported by all Moonlight clients.
- 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.
Choices
Value |
Description |
---|---|
pc |
Only localhost may access the web ui |
lan |
Only LAN devices may access the web ui |
wan |
Anyone may access the web ui |
- Default
lan
- Example
origin_web_ui_allowed = lan
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.
Choices
Value |
Description |
---|---|
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 |
- Default
0
- Example
lan_encryption_mode = 0
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.
Choices
Value |
Description |
---|---|
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 |
- Default
1
- Example
wan_encryption_mode = 1
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
OS and package dependent
- 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.
Choices
Value |
Description |
---|---|
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 |
- Default
0
- Example
hevc_mode = 2
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.
Choices
Value |
Description |
---|---|
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 |
- Default
0
- Example
av1_mode = 2
capture¶
- Description
Force specific screen capture method.
Caution
Applies to Linux only.
Choices
Value |
Description |
---|---|
nvfbc |
Use NVIDIA Frame Buffer Capture to capture direct to GPU memory. This is usually the fastest method for NVIDIA cards. For GeForce cards it will only work with drivers patched with nvidia-patch or nvlax. |
wlr |
Capture for wlroots based Wayland compositors via DMA-BUF. |
kms |
DRM/KMS screen capture from the kernel. This requires that sunshine has cap_sys_admin capability. See Linux Setup. |
x11 |
Uses XCB. This is the slowest and most CPU intensive so should be avoided if possible. |
- Default
Automatic. Sunshine will use the first capture method available in the order of the table above.
- Example
capture = kms
encoder¶
- Description
Force a specific encoder.
Choices
Value |
Description |
---|---|
nvenc |
For NVIDIA graphics cards |
quicksync |
For Intel graphics cards |
amdvce |
For AMD graphics cards |
software |
Encoding occurs on the CPU |
- Default
Sunshine will use the first encoder that is available.
- Example
encoder = nvenc
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.
Choices
Value |
Description |
---|---|
1 |
P1 (fastest) |
2 |
P2 |
3 |
P3 |
4 |
P4 |
5 |
P5 |
6 |
P6 |
7 |
P7 (slowest) |
- Default
1
- Example
nvenc_preset = 1
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.
Choices
Value |
Description |
---|---|
disabled |
One pass (fastest) |
quarter_res |
Two passes, first pass at quarter resolution (faster) |
full_res |
Two passes, first pass at full resolution (slower) |
- Default
quarter_res
- Example
nvenc_twopass = quarter_res
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.
Choices
Value |
Description |
---|---|
disabled |
Don’t enable Spatial AQ (faster) |
enabled |
Enable Spatial AQ (slower) |
- 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.
Caution
Applies to Windows only.
Choices
Value |
Description |
---|---|
disabled |
Use high priority |
enabled |
Use realtime priority |
- 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 it is not recommended since this can lead to significantly increased encoding latency.
Caution
Applies to Windows only.
Choices
Value |
Description |
---|---|
disabled |
Sunshine doesn’t change GPU power preferences (not recommended) |
enabled |
Sunshine requests high power mode explicitly |
- 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. This is system-wide setting that is reverted on sunshine program exit.
Note
This option only applies when using NVENC encoder.
Caution
Applies to Windows only.
Choices
Value |
Description |
---|---|
disabled |
Sunshine leaves global Vulkan/OpenGL present method unchanged |
enabled |
Sunshine changes global Vulkan/OpenGL present method to “Prefer layered on DXGI Swapchain” |
- 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 NVENC encoder.
Choices
Value |
Description |
---|---|
disabled |
Prefer CABAC |
enabled |
Prefer CAVLC |
- 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.
Choices
Value |
Description |
---|---|
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) |
- Default
medium
- Example
qsv_preset = medium
qsv_coder¶
- Description
The entropy encoding to use.
Note
This option only applies when using H264 with quicksync encoder.
Choices
Value |
Description |
---|---|
auto |
let ffmpeg decide |
cabac |
context adaptive binary arithmetic coding - higher quality |
cavlc |
context adaptive variable-length coding - faster decode |
- Default
auto
- Example
qsv_coder = auto
qsv_slow_hevc¶
- Description
This options enables use of HEVC on older Intel GPUs that only support low power encoding for H.264.
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.
Choices
Value |
Description |
---|---|
transcoding |
transcoding (slowest) |
webcam |
webcam (slow) |
lowlatency_high_quality |
low latency, high quality (fast) |
lowlatency |
low latency (faster) |
ultralowlatency |
ultra low latency (fastest) |
- Default
ultralowlatency
- Example
amd_usage = ultralowlatency
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.
Choices
Value |
Description |
---|---|
cqp |
constant qp mode |
cbr |
constant bitrate |
vbr_latency |
variable bitrate, latency constrained |
vbr_peak |
variable bitrate, peak constrained |
- Default
vbr_latency
- Example
amd_rc = vbr_latency
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.
Choices
Value |
Description |
---|---|
enabled |
enable HRD |
disabled |
disable HRD |
- 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.
Choices
Value |
Description |
---|---|
speed |
prefer speed |
balanced |
balanced |
quality |
prefer quality |
- Default
balanced
- Example
amd_quality = balanced
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 H264 with amdvce encoder.
Choices
Value |
Description |
---|---|
auto |
let ffmpeg decide |
cabac |
context adaptive variable-length coding - higher quality |
cavlc |
context adaptive binary arithmetic coding - faster decode |
- Default
auto
- Example
amd_coder = auto
VideoToolbox Encoder¶
vt_coder¶
- Description
The entropy encoding to use.
Note
This option only applies when using macOS.
Choices
Value |
Description |
---|---|
auto |
let ffmpeg decide |
cabac |
|
cavlc |
- Default
auto
- Example
vt_coder = auto
vt_software¶
- Description
Force Video Toolbox to use software encoding.
Note
This option only applies when using macOS.
Choices
Value |
Description |
---|---|
auto |
let ffmpeg decide |
disabled |
disable software encoding |
allowed |
allow software encoding |
forced |
force software encoding |
- Default
auto
- Example
vt_software = auto
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
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.
Choices
Value |
Description |
---|---|
ultrafast |
fastest |
superfast |
|
veryfast |
|
faster |
|
fast |
|
medium |
|
slow |
|
slower |
|
veryslow |
slowest |
- Default
superfast
- Example
sw_preset = superfast
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.
Choices
Value |
Description |
---|---|
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 |
- Default
zerolatency
- Example
sw_tune = zerolatency