-
Notifications
You must be signed in to change notification settings - Fork 57
Custom mpv Configuration
Moonfin allows power users to fine-tune playback behavior using a custom mpv.conf file. This enables advanced options like custom shaders, video scaling algorithms, tone mapping, and more.
This applies to the platforms that play through libmpv. See Playback and Codecs for which backend each platform uses.
-
Enable Custom mpv.conf: Go to Settings > Playback > Advanced mpv and toggle Enable Custom mpv.conf to on.
-
Specify File Location: Provide a path to your
mpv.conffile:- Click Custom mpv.conf Path to browse or enter the path manually.
- On Android, the easiest flow is to create/store
mpv.confin a user-accessible folder (for exampleDownloads) and select it with the picker. - Moonfin will automatically check for
mpv.confin standard locations if not specified:- Application support directory (recommended)
- Current working directory
-
Example File Locations
-
Linux:
~/.config/Moonfin/mpv.confor/home/user/.local/share/Moonfin/mpv.conf -
macOS:
~/Library/Application Support/Moonfin/mpv.conf -
Windows:
C:\Users\YourName\AppData\Local\Moonfin\mpv.conf -
Android: Keep
mpv.confin a normal user folder (for exampleDownloads) and select it via Custom mpv.conf Path
-
Linux:
Configuration files must not exceed 256 KB. Larger files are rejected.
Protected Options: These affect core playback and are not configurable:
-
aid,sid,vid(audio/subtitle/video selection) -
sub-visibility,sub-ass,sub-ass-override(subtitle rendering) -
sub-delay,audio-delay(sync controls) -
network-timeout,sub-fonts-dir,sub-font(core behavior)
Blocked Options: These are blocked for security:
-
script,scripts,script-opts,load-scripts(script execution) -
include,profile,input-conf(config file manipulation)
Allowed Options (Basic & Advanced scaling, rendering):
- Scaling:
scale,cscale,dscale,scale-*options - Rendering:
sigmoid-upscaling,deband,deband-*,interpolation,tscale,video-sync - Color & tone:
tone-mapping,tone-mapping-param,target-trc,brightness,contrast,saturation,gamma,sharpen - Audio:
audio-spdif,audio-channels,audio-normalize-downmix - Effects:
deinterlace,keep-open - GLSL shaders:
glsl-shader*(loading custom shaders)
Enable Unsafe Advanced mpv Options to unlock lower-level settings:
-
vo(video output driver) -
gpu-context(GPU backend selection) -
hwdec(hardware decoding mode) -
audio-exclusive(request exclusive output mode) -
vf,af(custom video/audio filters) -
input-ipc-server(IPC socket endpoint) -
vd-lavc-*(decoder options) -
demuxer-*andcache-*(stream behavior)
Warning: These options can break playback or cause instability if misconfigured.
# Scaling and rendering
scale=lanczos
deband=yes
tone-mapping=hdr
# Video sync and interpolation
video-sync=display-resample
interpolation=yes
# Shaders (if using unsafe advanced)
# glsl-shader=/path/to/shader.glsl
# Color adjustments
gamma=1.1
saturation=1.05Moonfin ships a minimal libmpv-2.dll for a smaller download size. If you use SVP for frame interpolation, you need to replace it with a full build that includes vapoursynth support:
- Download the latest
libmpv-2.dllfrom shinchiro/mpv-winbuild-cmake (the ~115 MBx86_64-v3build). - Replace
libmpv-2.dllin your Moonfin installation folder (default:C:\Program Files\Moonfin\). - Launch SVP Manager before starting playback in Moonfin.
Normal playback works fine with the included DLL, this swap is only needed for SVP.