This mpv config is meant to be as minimal as possible, while providing clean and consistent looking features. OSD text is removed as much as possible. (Currently, OSD text is 100% removed).
Minimal but fancy is the goal.
Everything I wrote below applies to Windows only (the config should still be usable in linux but I don't use/haven't tested it):
Download mpv. If that crashes, use non-V3 version. Extract the folder using 7zip. Place the folder in Documents or somewhere else. Go into the extracted folder, and left click once on "updater.bat," then right click it and select "Run as administrator." Follow the instructions. Press in order: 2, (2 if downloaded mpv-V3/1 if downloaded non-V3), Y, Y, 1, Y (TLDR: Install yt-dlp & ffmpeg). If the terminal crashes from invalid key input, just run "updater.bat" again. Go into "installer" and run "mpv-install.bat" as administrator.
Go to the top of this page and click the green button "Code." Download ZIP and extract the portable_config folder, then put it in your mpv folder.
Basic binds are: RIGHT CLICK-play/pause, F-fullscreen, SPACE-pause, DOUBLE LEFT CLICK-toggle fullscreen, MOUSE WHEEL UP/DOWN-adjust volume, and a few more... (Edit keybinds in portable_config/input.conf). Using demanding shaders/upscalers for the first time (Anime4K/FSRCNNX) can delay/drop frames at first and even mess with audio (because of video-sync=display-resample). It gets much better when shader cache is made.
In windows, clicking or focusing on another window can cause mpv to delay/mistime frames. For example, if you're streaming mpv on Discord and have mpv on one monitor, and Discord on the other, and typing in Discord. If switching between applications like this, turn on "Ontop" button.
If you see ringing/flickering (I don't know the correct term) like in anime (the only thing I watch), make sure your monitor settings (internal settings/not driver settings) has "Response Time" on normal. It might be labeled "Low latency" or something else.
If media resolution matches screen resolution and you want it "sharper" you can use the adaptive-sharpen shaders. If screen resolution is bigger than media resolution, try FSRCNNX/RAVU/Anime4K, and if it's still not sharp enough, add adaptive-sharpen.
Enable interpolation for anime it always looks better with it imo.
sofalizer Virtual surround sound.
uosc The on-screen-controller that creates the entire UI. Modified to remove show-text commands.
autoload Adds files in current directory to playlist.
evafast Hold/click left/right arrow for "hybrid fastforward and seeking." Config uses version that supports rewind. Modified to remove uosc flash-element options (the options were buggy).
memo Saves history (search feature might be broken?). Modified title and page button text and added separator between items and next/prev buttons.
quality-menu Shows web quality versions (video/audio). Modified titles. Removed code that opened uosc video menu if url is nil.
thumbfast Shows thumbnails.
trackselect Better automatic track selection than mpv's. Change force from false to true, since there is trouble with loading a next file and trackselect not working (tracks not auto selected or audio of the file not loaded) and watch-later option is only set to remember start position anyway so this is fine.
celebi Saves properties between mpv instances.
webtorrent-mpv-hook Streams torrents (have to add this one yourself).
[uosc-screenshot] Menu to take screenshot with/without subs.
[uosc-subtitles] Menu for subtitle settings.
[uosc-video-settings] Menu for video settings.
Profiles can be added for aspect ratio, deband, color, and shader profiles by using uosc-video-settings.conf.
The "Custom" profile button is both an indicator of custom settings and a way to reset/disable custom settings. For instance, if turned off for shaders in .conf, there is no way to disable all shaders in one click, you'd have to toggle them all off or turn on a profile and click it again to disable all shaders, but I still made it an option because why not. It also doesn't just pop up if settings are custom, this is so that the number of items in the menu does not dynamically change to prevent the menu from moving when adjusting shaders/other properties.
If using a keybind to toggle a shader, use the same shader path defined in uosc-video-settings.conf (default: ~~/shaders) to prevent activating shaders twice.
and a few more... I'll update it later.
The config uses "[dynaudnorm=f=250:g=31:p=0.5:m=5:r=0.9:b=1]" I heard that the way dynaudorm works is that it compresses audio, so change it if you don't like that.
Here are a few audio filters I kind of tested but didn't settle on.