# ========== GENERAL ========== # TODO: Actualy create a config instead of stealing someone else's # This is what profile=gpu-hq do, and it lags a ton on my 1050ti (linux, might be driver issue): # scale=spline36 # cscale=spline36 # dscale=mitchell # dither-depth=auto # correct-downscaling=yes # linear-downscaling=yes # sigmoid-upscaling=yes # deband=yes #profile=gpu-hq # Allows for higher quality playback on mpv # Uses scaling methods that are significantly better than default mpv, VLC and MPC vo=gpu # https://mpv.io/manual/stable/#video-output-drivers-gpu # priority=high # Makes PC prioritize MPV for allocating resources (Windows only) # gpu-api=vulkan offers better overall performance but breaks too often, use opengl instead # For displaying HDR content (not HDR -> SDR) "d3d11" is recommended (Windows only) gpu-api=opengl # https://mpv.io/manual/stable/#options-gpu-api fullscreen=no # Start in fullscreen taskbar-progress=no # Disable playback progress rendering in taskbar force-seekable=yes # If the player thinks that the media is not seekable, force enable seeking keep-open=always # Don't close the player after finishing the video, # and playback will never automatically advance to the next file in the playlist reset-on-next-file=pause # After playing the next file in the playlist, # it will automatically play the file instead of a paused state hwdec=nvdec # Recommended method to do hardware decoding on NVIDIA GPUs # ========== SCALERS AND SHADERS ========== # Default was (because of profile=gpu-hq): # scale=spline36 # cscale=spline36 # dscale=mitchell #scale=ewa_lanczossharp # Luma upscaler #dscale=mitchell # Luma downscaler #cscale=ewa_lanczossoft # Chroma up&downscaler gpu-shader-cache-dir='~~/shaders/cache' # https://mpv.io/manual/stable/#options-gpu-shader-cache-dir # FSRCNNX (more powerful, but tend to cause overshoot), use nnedi13 (below) instead if you notice dropped frames #glsl-shader="~~/shaders/FSRCNNX_x2_16-0-4-1.glsl" # Luma upscaler # nnedi3 # use nns128 instead of nns256 if you notice dropped frames # glsl-shader="~~/shaders/nnedi3-nns256-win8x4.hook" # Luma upscaler # glsl-shader="~~/shaders/nnedi3-nns128-win8x4.hook" # Luma upscaler # no-scaler-resizes-only # Fixing the pixel shift https://mpv.io/manual/stable/#options-scaler-resizes-only # SSimDownscaler #glsl-shader="~~/shaders/SSimDownscaler.glsl" # Luma downscaler # KrigBilateral (people say it's bloat/overkill) # glsl-shader="~~/shaders/KrigBilateral.glsl" # Chroma up&downscaler # ========== CACHE ========== # cache=yes # cache-on-disk=yes # cache-dir="C:\mpv-cache" # demuxer-max-bytes=1000MiB # demuxer-readahead-secs=300 # demuxer-max-back-bytes=200MiB # ========== DEBANDING ========== # Banding is a visual artifact, visual artifacts should never be in a video. # Example of banding: https://imgur.com/32d77H0 # Debanding is the process of removing said banding. # 6 minute explanation of what causes banding: https://www.youtube.com/watch?v=h9j89L8eQQk deband=no # Turn on only for videos with banding. (Keybind=d) deband-iterations=2 # https://mpv.io/manual/stable/#options-deband-iterations deband-threshold=64 # https://mpv.io/manual/stable/#options-deband-threshold deband-range=17 # https://mpv.io/manual/stable/#options-deband-range deband-grain=12 # https://mpv.io/manual/stable/#options-deband-grain # ========== ON SCREEN DISPLAY AND ON SCREEN CONTROLLER ========== osd-bar=no # Don't show a huge volume box on screen when turning the volume up/down osc=no # Allows for custom OSC to be used https://github.com/cyl0/mpv-osc-morden-x border=no # Optional for modern OSC, but recommended cursor-autohide-fs-only=yes # If this option is given, the cursor is always visible in windowed mode # In fullscreen mode, the cursor is shown or hidden according to --cursor-autohide cursor-autohide=300 # Cursor hide in ms osd-level=1 # https://mpv.io/manual/stable/#options-osd-level osd-duration=1000 # Set the duration of the OSD messages in ms hr-seek=yes # Select when to use precise seeks that are not limited to keyframes # https://mpv.io/manual/stable/#options-hr-seek osd-font='Verdana' osd-font-size=20 osd-color='#FFFFFF' # Hex code for white osd-border-color='#000000' # Hex code for black osd-border-size=0.6 # Size for osd text and progress bar osd-blur=0.2 # Gaussian blur factor. 0 means no blur applied (default) # ========== LANGUAGE PRIORITY ========== alang=ja,jp,jpn,en,eng # Audio language priority slang=en,eng # Subtitle language priority # ========== AUDIO ========== volume=100 # default volume, 100 = unchanged audio-file-auto=fuzzy # Load external audio with (almost) the same name as the video volume-max=200 # Max volume of the player audio-pitch-correction=yes # https://mpv.io/manual/stable/#options-audio-pitch-correction # ========== SUBTITLES ========== demuxer-mkv-subtitle-preroll=yes # https://mpv.io/manual/stable/#options-mkv-subtitle-preroll sub-ass-vsfilter-blur-compat=no # https://mpv.io/manual/stable/#options-sub-ass-vsfilter-aspect-compat sub-fix-timing=no # https://mpv.io/manual/stable/#options-sub-fix-timing sub-auto=fuzzy # https://mpv.io/manual/stable/#options-no-sub-auto # Load all subs containing the media filename # The following options only apply to subtitles without own styling sub-font='Netflix Sans Medium' # Specify font to use for subtitles that do not themselves specify a particular font sub-font-size=40 sub-color='#FFFFFFFF' sub-border-color='#FF000000' sub-border-size=2.0 sub-shadow-offset=0 sub-spacing=0.0 # ========== SCREENSHOT ========== screenshot-format=png # Output format of screenshots screenshot-high-bit-depth=yes # Same output bitdepth as the video. Set it "no" if you want to save disc space screenshot-png-compression=1 # Compression of the PNG picture (1-9). # Higher value means better compression, but takes more time screenshot-directory="~/Pictures/mpv-screenshots" # Output directory screenshot-template="%f-%wH.%wM.%wS.%wT-#%#00n" # Name format (filename-hour-minute-second-milisecond-number) # ========== INTERPOLATION ========== # blend-subtitles=yes # Subtitle blending in scenechanges (smoother effect) # video-sync=display-resample # Set the fps as the max of your monitor refresh rate # # (only useful and needed with "interpolation=yes) # interpolation=yes # Enable interpolation # tscale=oversample # Interpolation method # ========== PROFILES ========== [HDR] profile-desc=Tone mapping using reinhard profile-restore=copy-equal tone-mapping=reinhard tone-mapping-param=0.6 hdr-compute-peak=no blend-subtitles=video # [Clip] # profile-desc=Tone mapping using clip # profile-restore=copy-equal # tone-mapping=clip # [Mobius] # profile-desc=Tone mapping using mobius # profile-restore=copy-equal # tone-mapping=mobius # [Hable] # profile-desc=Tone mapping using hable # profile-restore=copy-equal # tone-mapping=hable # [bt.2390] # profile-desc=Tone mapping using bt.2390 # profile-restore=copy-equal # tone-mapping=bt.2390 # [Gamma] # profile-desc=Tone mapping using gamma # profile-restore=copy-equal # tone-mapping=gamma # [Linear] # profile-desc=Tone mapping using linear # profile-restore=copy-equal # tone-mapping=linear # ========== AUTO PROFILES ========== # Auto profiles that automatically applies for WEB-DL anime that need some debanding [WEB-DL] profile-desc=WEB-DL Anime (HatSubs, SubsPlease, HorribleSubs, Erai-raws) profile-cond=string.match(p.filename, "HatSubs")~=nil or string.match(p.filename, "SubsPlease")~=nil or string.match(p.filename, "HorribleSubs")~=nil or string.match(p.filename, "Erai%-raws")~=nil deband=yes # [Mini-Encode #1] # profile-desc=Mini Encode Anime 1 # profile-cond=string.match(p.filename, "ASW")~=nil or string.match(p.filename, "DKB")~=nil or string.match(p.filename, "Judas")~=nil # deband=yes # [Mini-Encode #2] # profile-desc=Mini Encode Anime 2 # profile-cond=string.match(p.filename, "Cerberus")~=nil or string.match(p.filename, "Nep%_Blanc")~=nil or string.match(p.filename, "Reaktor")~=nil # deband=yes # [Mini-Encode #3] # profile-desc=Mini Encode Anime 3 # profile-cond=string.match(p.filename, "Cleo")~=nil or string.match(p.filename, "Akihito")~=nil or string.match(p.filename, "Reaktor")~=nil # deband=yes # [Mini-Encode #4] # profile-desc=Mini Encode Anime 4 # profile-cond=string.match(p.filename, "Ember")~=nil # deband=yes