######################################################

This is the extended guide. Click HERE to return to the basic guide.

Last tested (and recommended) build: 2018-10-02 (v0.29.1)
For a more detailed documentation click HERE. I only offer a tl;dr version of “most-used” options.

If you want to take a look at my mpv.conf, you can view it HERE.

Keep in mind that all stuff written here is optimized for anime content and might look worse on other content.

If you notice something outdated or wrong, you can contact me via Discord.


Stuff that is good to have or you need for certain options:

Copy the .hook or .glsl files into the „Shaders“ folder inside the mpv folder (create it, if it doesn’t exist):

Copy the .lua files into the „Scripts“ folder inside the mpv folder (create it, if it doesn’t exist):


General:
#The default profile you use for your stuff. Always use this one
profile=gpu-hq

#The called API. Vulkan is highly recommended. 
#Use "opengl" if you have compatibility problems
gpu-api=vulkan

#The backend with the API. Leave it "auto"
#Or use "winvk" with "gpu-api=vulkan" or "win" / "angle" with "gpu-api=opengl"
gpu-context=auto

#Decoding API for 8bit h264 (or whatever your CPU supports) content
#Only should be used when you get many frame drops
hwdec=dxva2-copy

Tweaks:
#Cursor hide in ms
cursor-autohide=1000

#Don't close the player after finishing the video
keep-open=yes

Priority:
#Audio language
alang=ja,jp,jpn,en,eng,de,deu,ger

#Subtitle language
slang=en,eng,de,deu,ger

Subs:
#Forces showing subtitles while seeking through the video
demuxer-mkv-subtitle-preroll=yes

#Backward compatibility for vsfilter fansubs
sub-ass-vsfilter-blur-compat=yes

#Fixing the timing for overlaps/gaps when the difference is smaller than 210ms
sub-fix-timing=yes

Volume:
#Default volume when starting the player
volume=100

#Max volume of the player
volume-max=200

Screenshot:
#Output format
screenshot-format=png

#Same output bitdepth as the video
#Set it "no" if you want to save disc space
screenshot-high-bit-depth=yes

#Compression of the PNG picture (0-10)
#Higher value means better compression
#Set it "1" if you want to take screenshots while playback
screenshot-png-compression=10

#Quality of the JPG picture (0-100)
#Higher value means better quality
screenshot-jpeg-quality=95
#Output directory
screenshot-directory="C:\Users\\Desktop"

#Format you want to save the pictures
#For knowing what each charakter does, I recommend looking into the documentation
screenshot-template="%f-%wH.%wM.%wS.%wT-#%#00n"

You make screenshots with the “s” hotkey.


Dither:
#Activate dither (value depends on your screen bitdepth)
#Can lead to ugly outputs, "auto" is recommended
dither-depth=8

Deband & Dynamic Grain:

For an explanation what debanding is, click HERE.
For an explanation what grain is, click HERE.

#Debanding on all videos
#Set it "no" if you rather handle it with profiles
deband=yes

#Deband steps (More = Better quality, but higher GPU cost)
deband-iterations=4

#Deband strength (More = Less banding, but more detail loss)
deband-threshold=48

#Deband range (More = Less banding, but higher GPU cost)
deband-range=16

#Dynamic Grain (More = More dynamic grain)
#Set it to "0" in case you use the static grain shader
deband-grain=48

You activate debanding with the “h” hotkey.


(Static) Grain:

For an explanation what static grain is, click HERE.

#Luma
glsl-shader="C:\mpv\Shaders\noise_static_luma.hook"

#Chroma
glsl-shader="C:\mpv\Shaders\noise_static_chroma.hook"

If you use shaders like “nnedi3” or “ravu”, make sure you run grain shaders before them!


Resizer:

For an explanation what a resizer is, click HERE.
With the “i” hotkey you can see how many delayed and dropped frames you have.

Normal: Regular scaler
Italic: Irregular scaler: Look at (4*) for sinc (with blackman)
Italic & Underlined: Based on a shader: Look at (1*) for FSRCNNX/ravu/nnedi3, look at (2*) for SSimDownscaler, look at (3*) for KrigBilateral

PRESETS LUMA
UPSCALE
LUMA
DOWNSCALE
CHROMA
UP- & DOWNSCALE
Experimental FSRCNN_x2_r2_16-0-2
(Best for anime)
SSimDownscaler KrigBilateral
Very High ravu ewa_lanczossharp ravu
High ewa_lanczossharp ewa_lanczos ewa_lanczossoft
Medium spline16 spline16 sinc (with blackman)
Low catmull_rom catmull_rom catmull_rom
Very Low bicubic_fast bicubic_fast bicubic_fast

Regular scaler:

#Luma upscale 
scale=... 

#Luma downscale 
dscale=... 

#Chroma up- & downscale
cscale=... 

Luma (scale/dscale) = Brightness (black & white) information
Chroma (cscale) = Colour information
Luma is more visible for the human eye.
A better resizer means higher GPU cost.

Irregular scaler:
(4*)

sinc (with blackman):

cscale=sinc
cscale-window=blackman
cscale-radius=3

Based on a shader:

#Shaders which override "scale"/"dscale"/"cscale" to a certain point (depending on the shader you use)
glsl-shader= ...

(1*) nnedi3 and ravu are only upscaling the video with a power of 2. For example, if your clip is 1280×720 and your screen 1920×1080, the video gets upscaled to 2560×1440. That means “someone” still needs to downscale it. In that case, the “dscale” you set up.

FSRCNN:

glsl-shader="C:\mpv\Shaders\FSRCNN_x2_r2_16-0-2.glsl"
scale=ewa_lanczos
fbo-format=rgba16hf (rgba16f for "gpu-api=opengl")

nnedi3:
Higher “nns” means more neurons (better quality).
Don’t use “win8x6”, always use “win8x4”.

glsl-shader="C:\mpv\Shaders\nnedi3-nns32-win8x4.hook"
scale=ewa_lanczos
fbo-format=rgba16hf (rgba16f for "gpu-api=opengl")

ravu:
Higher “r” means higher radius (better quality).

glsl-shader="C:\mpv\Shaders\ravu-r4.hook"
scale=ewa_lanczos
fbo-format=rgba16hf (rgba16f for "gpu-api=opengl")

(without addition)= only luma
-chroma-center = only center chroma
-chroma-left = only left chroma
-yuv = luma and chroma

(2*)

SSimDownscaler:

glsl-shader="C:\mpv\Shaders\SSimDownscaler.glsl"
dscale=gaussian
fbo-format=rgba16hf (rgba16f for "gpu-api=opengl")

(3*)

KrigBilateral:

glsl-shader="C:\mpv\Shaders\KrigBilateral.glsl"
cscale=mitchell
fbo-format=rgba16hf (rgba16f for "gpu-api=opengl")

Anti-Ringing:

For an explanation what anti-ringing is, click HERE.

#Luma upscale deringing (Higher = Less rining, but more detail loss)
scale-antiring=0.7

#Luma downscale deringing (Higher = Less rining, but more detail loss)
dscale-antiring=0.7

#Chroma upscale deringing (Higher = Less rining, but more detail loss)
cscale-antiring=0.7

Interpolation:

For an explanation what interpolation is, click HERE.

#Subtitle blending in scenechanges (smoother effect)
blend-subtitles=yes

#Set the fps as the max. of your monitor Hz (only useful and needed with "interpolation=yes)
video-sync=display-resample

#Activate interpolation
interpolation=yes

#Interpolation method [look at the table below]
tscale=...

If you have playback issues, deactivate interpolation.

Smoothness/Sharpness Interpolation
Sharpest & Smoothest (and slowest) box with sphinx (*)
Sharpest oversample
Sharper linear
Sharp catmull_rom
Smooth mitchell
Smoother gaussian
Smoothest bicubic
(*) box with sphinx:
tscale=box
tscale-window=sphinx
tscale-radius=1.0 #lower (e.g. 0.95) = sharper; higher (e.g. 1.05) = smoother 
tscale-clamp=0.0

Deinterlace:

For an explanation what deinterlace is, click HERE.

#Autodetect if deinterlace is needed
deinterlace=auto

You activate deinterlace with the “g” hotkey (“d” if you don’t use my input.conf).
Only use it with interlaced sources (like MPEG2/h264 .ts files)


Profiles:
#You can set up functions like debanding automatically for some sources
#The p.filename, "" is the interesting part here
#There are also other conditions, but doing it by string with filename is probably the most accurate

[HorribleSubs]
profile-desc=cond:string.match(p.filename, "HorribleSubs")~=nil
deband=yes

[HorribleSubs-revert]
profile-desc=cond:string.match(p.filename, "HorribleSubs")==nil
deband=no

In some cases where you need special characters like “-“, you’ve to use “%” for recognizing it as a character and not function:

[EraiRaws]
profile-desc=cond:string.match(p.filename, "Erai%-raws")~=nil
deband=yes
Advertisements