Just my personal config files for use in mpv, a free, open-source, & cross-platform media player, with a focus on quality and a practical yet comfortable viewing experience. Contains tuned profiles (for up/downscaling, live action & anime), custom key bindings, a GUI, as well as multiple scripts, shaders & filters serving different functions. Suitable for both high and low-end computers (with some tweaks).
- uosc - Adds a minimalist but highly customizable gui.
- thumbfast - High-performance on-the-fly thumbnailer.
- memo - Saves watch history, and displays it in a nice menu, integrated with uosc.
- sview - Show shaders currently running, triggered on shader activation or by toggle button.
- autoload - Automatically load playlist entries before and after the currently playing file, by scanning the directory.
- autodeint - Automatically insert the appropriate deinterlacing filter based on a short section of the current video, triggered by toggle button.
- misc
- Show detailed media info on screen.
- Restart mpv restoring the properties path, time-pos, pause and volume.
- Execute Lua code from input.conf.
- When seeking display position and duration like so: 70:00 / 80:00.
- Cycle through tracks without "no".
- user-input - common API that other scripts can use to request text input from the user via the OSD.
- rename - Ability to rename files on the go directly within MPV player window without having to leave it.
- copy-time - Copies current timecode in HH:MM:SS.MS format to clipboard (Windows).
- show-errors - Prints error messages onto the OSD.
- crop - Crop the current video in a visual manner.
- M_x - A menu that shows all commands you have available, key bindings and commends (if present) and from which you can call any of those commands.
taskbar-buttons - Hack to add media control taskbar buttons (well, thumbbar buttons) for mpv.- clipboard - Provides generic but powerful low-level clipboard commands for users and script writers.
- visualizer - various audio visualization.
- waveform - Displays a waveform of the video in real-time using ffmpeg waveforms.
- chapterskip - Automatically skips chapters based on title.
- mpv-gif-generator - Windows Gif creator.
Personally added in scripts:
- Show all Tracks (Video, Audio, Subtitles) in one uosc menu.
- Added Bitrate shown in Track view loaded via MediaInfo.
- Added ability to sort by key length in M-x keybind menu.
- Script to calculate the diffrence between 2 times and copy to clipboard. (my workflow: 2 mpv windows open Ctrl+c in 1 to copy the time. Ctrl+v in 2 to get the diffrence of both times in clipboard)
- Every Keybind is in the uosc Menu
- Ability to disable creating thumbnails
- Abitlity to scroll on Buttons. For example to cycle audio and subtitle tracks.
- run python for keypress
- nlmeans - Highly configurable and featureful denoiser.
- NVIDIA Image Sharpening - An adaptive-directional sharpening algorithm shaders.
- FidelityFX CAS - Sharpening shader that provides an even level of sharpness across the frame.
- FSRCNNX-TensorFlow - Very resource intensive upscaler that uses a neural network to upscale accurately.
- Anime4k - Shaders designed to scale and enhance anime. Includes shaders for line sharpening, artefact removal, denoising, upscaling, and more.
- AMD FidelityFX Super Resolution - A spatial upscaler which provides consistent upscaling quality regardless of whether the frame is in movement.
- mpv-prescalers - RAVU (Rapid and Accurate Video Upscaling) is a set of prescalers with an overall performance consumption design slightly higher than the built-in ewa scaler, while providing much better results.
- SSimDownscaler, SSimSuperRes, KrigBilateral, Adaptive Sharpen
- Adaptive Sharpen: Another sharpening shader.
- SSimDownscaler: Perceptually based downscaler.
- KrigBilateral: Chroma scaler that uses luma information for high quality upscaling.
- SSimSuperRes: Make corrections to the image upscaled by mpv built-in scaler (removes ringing artifacts and restores original sharpness).
- hdr-toys - Componentized Rec.2100 to Rec.709 conversion shader for mpv-player. Featuring dynamic curves and a uniform color space.
(Not tested on Linux and macOS. For Linux and macOS users, once mpv is installed, copying the contents of my GitHub into a portable_config inside the relevant folders should be sufficient.)
- Download the latest 64bit (or 64bit-v3 for newer CPUs) mpv Windows build by shinchiro here or directly from here and extract its contents into a folder of your choice (mine is called mpv). This is now your mpv folder and can be placed wherever you want.
- Run
mpv-install.bat, which is located in theinstallerfolder (see below), with administrator privileges by right-clicking and selecting run as administrator, after it's done, you'll get a prompt to open Control Panel and set mpv as the default player. - Download and extract the GitHub ZIP into a folder called
portable_configinside the mpv folder you just made. - Adjust any settings in mpv.conf to fit your system, use the manual to find out what different options do or open an issue if you need any help.
- You are good to go. Go watch some videos!
- install MediaInfo CLI
- install pynput and update python/keypress.py path
After following the steps above, your mpv folder should have the following structure:
mpv
|
├── doc
│ ├── manual.pdf
│ └── mpbindings.png # Default key bindings if not overridden in input.conf
│
├── installer
│ ├── configure-opengl-hq.bat
│ ├── mpv-icon.ico
│ ├── mpv-install.bat # Run with administrator priviledges to install mpv
│ ├── mpv-uninstall.bat # Run with administrator priviledges to uninstall mpv
│ └── updater.ps1
│
├── portable_config # This is where my config is placed
│ ├── cache # Created automatically
│ │
│ ├── fonts
│ │ ├── ClearSans-Bold.ttf
│ │ ├── JetBrainsMono-Regular.ttf
│ │ ├── MotivaSans-Bold.ttf
| | ├── uosc-icons.otf
| | └── uosc-textures.ttf
│ │
│ ├── screenshots
| | ├── showcase_1.webp
| | ├── showcase_2.webp
| | ├── showcase_3.webp
| | └── showcase_4.webp
│ │
│ ├── script-modules
│ │ ├── extended-menu.lua
│ │ └── user-input-module.lua
│ │
│ ├── script-opts # Contains configuration files for scripts
| | ├── console.conf
| | ├── crop.conf
| | ├── M_x.conf
| | ├── memo.conf
| | ├── memo-history.log # Created automatically
│ │ ├── show_errors.conf
│ │ ├── thumbfast.conf
│ │ └── uosc.conf # Set desired default directory for uosc menu here
│ │
│ ├── scripts
│ │ ├── uosc
│ │ ├── elements
| | ├── BufferingIndicator.lua
| | ├── Button.lua
| | ├── Controls.lua
| | ├── Curtain.lua
| | ├── CycleButton.lua
| | ├── Element.lua
| | ├── Elements.lua
| | ├── Menu.lua
| | ├── PauseIndicator.lua
| | ├── Speed.lua
| | ├── Timeline.lua
| | ├── TopBar.lua
| | ├── Volume.lua
| | └── WindowBorder.lua
| | ├── intl
| | ├── de.lua
| | ├── es.lua
| | ├── fr.lua
| | ├── ro.lua
| | └── zh-hans.lua
| | ├── lib
| | ├── ass.lua
| | ├── intl.lua
| | ├── mediainfo.lua
| | ├── menus.lua
| | ├── std.lua
| | ├── text.lua
| | └── utils.lua
| | └── main.lua
│ │
│ │ ├── autodeint.lua # Set key binding here, not input.conf (Ctrl+d)
│ │ ├── autoload.lua
│ │ ├── clipboard.lua
│ │ ├── copy-time.lua
| | ├── crop.lua
| | ├── M-x.lua
| | ├── memo.lua
| | ├── misc.lua
| | ├── Rename.lua
| | ├── show-errors.lua
| | ├── sview.lua
│ │ ├── thumbfast.lua
│ │ ├── user-input.lua
│ │ ├── visualizer.lua
│ │ └── waveform.lua
│ │
│ ├── shaders # Contains external shaders
│ │ ├── myOldShaders # TODO sort out
│ │ ├── A4K_Dark.glsl
│ │ ├── A4K_Thin.glsl
│ │ ├── A4K_Upscale_L.glsl
│ │ ├── adasharp.glsl
│ │ ├── adasharpA.glsl # Adjusted for anime
│ │ ├── CAS.glsl
│ │ ├── F8.glsl
│ │ ├── F8_LA.glsl
│ │ ├── FSR.glsl
│ │ ├── krigbl.glsl
│ │ ├── nlmeans_hqx.glsl
│ │ ├── NVSharpen.glsl
│ │ ├── ravu_L_r4.hook
│ │ ├── ravu_Z_r3.hook
│ │ ├── ssimds.glsl
│ │ └── ssimsr.glsl
│ │
| ├── watch_later # Video timestamps saved here (created automatically)
| ├── fonts.conf # Delete duplicate when installing in steps above
│ ├── input.conf # Tweak uosc right click menu here
│ ├── mpv.conf # General anime profile here
| └── profiles.conf # Up/downscale and more anime profiles here
|
├── .gitignore
├── d3dcompiler_43.dll
├── mpv.com
├── mpv.exe # The mpv executable file
├── README.md
└── updater.bat # Run with administrator priviledges to update mpv
Custom key bindings can be added/edited in the input.conf file. Refer to the manual and uosc commands for making any changes. Default key bindings can be seen from the input.conf file but most of the player functions can be used through the menu accessed by Right Click and the buttons above the timeline as seen in the image above.
- mpv wiki - Official wiki with links to user scripts, FAQ's and much more.
- Mathematical evaluation of various scalers - My config uses the best scalers/settings from this analysis.
- mpv manual - Lists all the settings and configuration options available including video/audio filters, scripting, and countless other customizations.
- watch-later-options - Code in mpv where all watch-later-options are stored. Used to remove the ones i don't want to save.
- Denoise Shaders - Collection of Shaders to denoise
Thank you very much to @Zabooby. This config is forked from here. I edited and added a lot to fit my needs.