diff --git a/README.md b/README.md index e37ca04..6093936 100644 --- a/README.md +++ b/README.md @@ -11,10 +11,10 @@ My MPV config git clone https://github.com/warigan/mpv-config ~/.config/mpv ``` -2. Rename files: +2. Create symbolic link: ```sh -mv input_linux.conf input.conf -mv mpv_linux.conf mpv.conf +cd ~/.config/mpv +ln -s mpv_linux.conf mpv.conf ``` 3. (Optional) To use `autosubsync`, choose synctools in `script-opts/autosubsync.conf`, install them on your system then specify their paths. @@ -23,13 +23,13 @@ mv mpv_linux.conf mpv.conf 1. Clone this repo into the mpv config location ```pwsh -git clone https://github.com/warigan/mpv-config C:\users\USERNAME\AppData\Roaming\mpv +git clone https://github.com/warigan/mpv-config C:\users\$env:username\AppData\Roaming\mpv ``` -2. Rename files: -```sh -mv input_windows.conf input.conf -mv mpv_windows.conf mpv.conf +2. Create symbolic link (might need admin privileges): +```pwsh +cd C:\users\$env:username\AppData\Roaming\mpv +New-Item -ItemType SymbolicLink -Path mpv.conf -Target .\mpv_windows.conf ``` 3. (Optional) To use `autosubsync`, choose synctools in `script-opts/autosubsync.conf`, install them on your system then specify their paths. @@ -38,11 +38,22 @@ mv mpv_windows.conf mpv.conf ## Usage -### Shader profiles +### Shader auto profiles -Use `Ctrl+[1-6]` to select a shader profile for Animated videos and `Ctrl+9` for live action. `Ctrl+0` clears the shaders so no profile is active. By default `Anime4K: Mode A (HQ)` is selected (`Ctrl+1`) which provides high quality Anime without sacrificing frames (at least on my system). `Anime4K: Mode A+A (HQ)` (`Ctrl+4`) gives (arguably) the best quality, but at a higher performance cost. For more information, see [Anime4K docs](https://github.com/bloc97/Anime4K/blob/master/md/GLSL_Instructions_Advanced.md). +#### Anime4K -NOTE: Profile switching is not saved across sessions, so if you don't want to use `Ctrl+1` you would have to change every time you open a video. I recommend you instead change the default in `mpv.conf`. +If the path of the currently playing file contains a directory named `Anime` (case insensitive) mpv will automatically load the `anime` shader profile. By default this will in turn load the `Anime4K: Mode A (HQ)` shaders, but this can be changed in `mpv.conf` under `[anime]`. +The default `Anime4K: Mode A (HQ)` provides high quality anime without sacrificing frames (at least on my system). `Anime4K: Mode A+A (HQ)` (`Ctrl+4`) gives (arguably) the best quality, but at a higher performance cost. See the [Anime4K docs](https://github.com/bloc97/Anime4K/blob/master/md/GLSL_Instructions_Advanced.md) for more information. + +#### FSR + +If the path of the currently playing file contains a directory named `TV-Series`, `TV_Series` or `TVSeries` (all case insensitive) then mpv will automatically load the `live-action` shader profile. By default this will in turn load the `FidelityFX FSR` shader. + +#### Key bindings + +Use `Ctrl+[1-6]` to manually select a Anime4K profile and `Ctrl+9` for FSR. `Ctrl+0` clears the shaders so no profile is active. + +NOTE: Profile switching is not saved across sessions, so if you don't want to use the configured default you would have to change every time you open a video. I recommend you instead change the defaults in `mpv.conf`. ### Subtitles diff --git a/input.conf b/input.conf new file mode 100644 index 0000000..68c8167 --- /dev/null +++ b/input.conf @@ -0,0 +1,10 @@ +CTRL+1 no-osd set profile anime4k-a-hq; show-text "Anime4K: Mode A (HQ)" +CTRL+2 no-osd set profile anime4k-b-hq; show-text "Anime4K: Mode B (HQ)" +CTRL+3 no-osd set profile anime4k-c-hq; show-text "Anime4K: Mode C (HQ)" +CTRL+4 no-osd set profile anime4k-aa-hq; show-text "Anime4K: Mode A+A (HQ)" +CTRL+5 no-osd set profile anime4k-bb-hq; show-text "Anime4K: Mode B+B (HQ)" +CTRL+6 no-osd set profile anime4k-ca-hq; show-text "Anime4K: Mode C+A (HQ)" + +CTRL+9 no-osd set profile fsr; show-text "FidelityFX FSR" + +CTRL+0 no-osd set profile no-shaders; show-text "GLSL shaders cleared" diff --git a/input_linux.conf b/input_linux.conf deleted file mode 100644 index f1936c3..0000000 --- a/input_linux.conf +++ /dev/null @@ -1,11 +0,0 @@ -# Optimized shaders for higher-end GPU -CTRL+1 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode A (HQ)" -CTRL+2 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode B (HQ)" -CTRL+3 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode C (HQ)" -CTRL+4 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_Restore_CNN_M.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode A+A (HQ)" -CTRL+5 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode B+B (HQ)" -CTRL+6 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Restore_CNN_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode C+A (HQ)" - -CTRL+9 no-osd change-list glsl-shaders set "~~/shaders/FSR.glsl"; show-text "FSR" - -CTRL+0 no-osd change-list glsl-shaders clr ""; show-text "GLSL shaders cleared" diff --git a/input_windows.conf b/input_windows.conf deleted file mode 100644 index 1a615db..0000000 --- a/input_windows.conf +++ /dev/null @@ -1,11 +0,0 @@ -# Optimized shaders for higher-end GPU -CTRL+1 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl;~~/shaders/Anime4K_Restore_CNN_VL.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl;~~/shaders/Anime4K_AutoDownscalePre_x2.glsl;~~/shaders/Anime4K_AutoDownscalePre_x4.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode A (HQ)" -CTRL+2 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl;~~/shaders/Anime4K_Restore_CNN_Soft_VL.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl;~~/shaders/Anime4K_AutoDownscalePre_x2.glsl;~~/shaders/Anime4K_AutoDownscalePre_x4.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode B (HQ)" -CTRL+3 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl;~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl;~~/shaders/Anime4K_AutoDownscalePre_x2.glsl;~~/shaders/Anime4K_AutoDownscalePre_x4.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode C (HQ)" -CTRL+4 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl;~~/shaders/Anime4K_Restore_CNN_VL.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl;~~/shaders/Anime4K_Restore_CNN_M.glsl;~~/shaders/Anime4K_AutoDownscalePre_x2.glsl;~~/shaders/Anime4K_AutoDownscalePre_x4.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode A+A (HQ)" -CTRL+5 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl;~~/shaders/Anime4K_Restore_CNN_Soft_VL.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl;~~/shaders/Anime4K_AutoDownscalePre_x2.glsl;~~/shaders/Anime4K_AutoDownscalePre_x4.glsl;~~/shaders/Anime4K_Restore_CNN_Soft_M.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode B+B (HQ)" -CTRL+6 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl;~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl;~~/shaders/Anime4K_AutoDownscalePre_x2.glsl;~~/shaders/Anime4K_AutoDownscalePre_x4.glsl;~~/shaders/Anime4K_Restore_CNN_M.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode C+A (HQ)" - -CTRL+9 no-osd change-list glsl-shaders set "~~/shaders/FSR.glsl"; show-text "FSR" - -CTRL+0 no-osd change-list glsl-shaders clr ""; show-text "GLSL shaders cleared" diff --git a/mpv_linux.conf b/mpv_linux.conf index 7e092e5..ae3d059 100644 --- a/mpv_linux.conf +++ b/mpv_linux.conf @@ -1,10 +1,16 @@ +########## +# Global # +########## + # General -keep-open=yes profile=gpu-hq +keep-open=yes +osd-duration=1500 gpu-api=vulkan hwdec=auto-copy vo=gpu-next -scale=ewa_lanczossharp +scale=ewa_lanczos +scale-blur=0.981251 # For ModernX osc = no @@ -14,7 +20,7 @@ border = no video-sync=display-resample interpolation=yes # video-sync-display-vdrop # for syncing video with somebody else -# cscale=lanczos # For improving frame rate, maybe. Faster than +# cscale=lanczos # For improving frame rate, maybe. Faster than # # the default from using profile=gpu-hq # # (which is ewa_lanczossharp) tscale=sphinx @@ -22,16 +28,6 @@ tscale-blur=0.6991556596428412 tscale-radius=1.05 tscale-clamp=0.0 -# Shaders -# Anime4K: Mode A (HQ) -glsl-shaders="~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl" - -# Anime4K: Mode A+A (HQ) -# glsl-shaders="~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_Restore_CNN_M.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl" - -# FSR -# glsl-shaders="~~/shaders/FSR.glsl" - # Subtitles sub-auto=fuzzy subs-with-matching-audio=yes @@ -40,3 +36,48 @@ subs-with-matching-audio=yes alang=ja,sv,en slang=en +################### +# Shader Profiles # +################### + +[anime4k-a-hq] +profile-desc=Anime4K: Mode A (HQ) +glsl-shaders="~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl" + +[anime4k-b-hq] +profile-desc=Anime4K: Mode B (HQ) +glsl-shaders="~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl" + +[anime4k-c-hq] +profile-desc=Anime4K: Mode C (HQ) +glsl-shaders="~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl" + +[anime4k-aa-hq] +profile-desc=Anime4K: Mode A+A (HQ) +glsl-shaders="~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_Restore_CNN_M.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl" + +[anime4k-bb-hq] +profile-desc=Anime4K: Mode B+B (HQ) +glsl-shaders="~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl" + +[anime4k-ca-hq] +profile-desc=Anime4K: Mode C+A (HQ) +glsl-shaders="~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Restore_CNN_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl" + +[fsr] +profile-desc=FidelityFX FSR +glsl-shaders="~~/shaders/FSR.glsl" + +[no-shaders] +profile-desc=GLSL shaders cleared +glsl-shaders="" + +[anime] +profile-desc=Automatically applied to files with a path that contains a dir named 'Anime' +profile-cond=string.match(string.lower(path), '/anime/') ~= nil +profile=anime4k-a-hq + +[live-action] +profile-desc=Automatically applied to files with a path that contains a dir named 'TV-series' or 'Movies' +profile-cond=string.match(string.lower(path), '/(tv%-?_?series)/') ~= nil or string.match(string.lower(path), '/(movies)/') ~= nil +profile=fsr diff --git a/mpv_windows.conf b/mpv_windows.conf index 6822721..dde6ee8 100644 --- a/mpv_windows.conf +++ b/mpv_windows.conf @@ -1,10 +1,16 @@ +########## +# Global # +########## + # General -keep-open=yes profile=gpu-hq +keep-open=yes +osd-duration=1500 gpu-api=vulkan hwdec=auto-copy vo=gpu-next -scale=ewa_lanczossharp +scale=ewa_lanczos +scale-blur=0.981251 # For ModernX osc = no @@ -22,16 +28,6 @@ tscale-blur=0.6991556596428412 tscale-radius=1.05 tscale-clamp=0.0 -# Shaders -# Anime4K: Mode A (HQ) -glsl-shaders="~~/shaders/Anime4K_Clamp_Highlights.glsl;~~/shaders/Anime4K_Restore_CNN_VL.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl;~~/shaders/Anime4K_AutoDownscalePre_x2.glsl;~~/shaders/Anime4K_AutoDownscalePre_x4.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl" - -# Anime4K: Mode A+A (HQ) -# glsl-shaders="~~/shaders/Anime4K_Clamp_Highlights.glsl;~~/shaders/Anime4K_Restore_CNN_VL.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl;~~/shaders/Anime4K_Restore_CNN_M.glsl;~~/shaders/Anime4K_AutoDownscalePre_x2.glsl;~~/shaders/Anime4K_AutoDownscalePre_x4.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl" - -# FSR -# glsl-shaders="~~/shaders/FSR.glsl" - # Subtitles sub-auto=fuzzy subs-with-matching-audio=yes @@ -40,3 +36,48 @@ subs-with-matching-audio=yes alang=ja,sv,en slang=en +################### +# Shader Profiles # +################### + +[anime4k-a-hq] +profile-desc=Anime4K: Mode A (HQ) +glsl-shaders="~~/shaders/Anime4K_Clamp_Highlights.glsl;~~/shaders/Anime4K_Restore_CNN_VL.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl;~~/shaders/Anime4K_AutoDownscalePre_x2.glsl;~~/shaders/Anime4K_AutoDownscalePre_x4.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl" + +[anime4k-b-hq] +profile-desc=Anime4K: Mode B (HQ) +glsl-shaders="~~/shaders/Anime4K_Clamp_Highlights.glsl;~~/shaders/Anime4K_Restore_CNN_Soft_VL.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl;~~/shaders/Anime4K_AutoDownscalePre_x2.glsl;~~/shaders/Anime4K_AutoDownscalePre_x4.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl" + +[anime4k-c-hq] +profile-desc=Anime4K: Mode C (HQ) +glsl-shaders="~~/shaders/Anime4K_Clamp_Highlights.glsl;~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl;~~/shaders/Anime4K_AutoDownscalePre_x2.glsl;~~/shaders/Anime4K_AutoDownscalePre_x4.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl" + +[anime4k-aa-hq] +profile-desc=Anime4K: Mode A+A (HQ) +glsl-shaders="~~/shaders/Anime4K_Clamp_Highlights.glsl;~~/shaders/Anime4K_Restore_CNN_VL.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl;~~/shaders/Anime4K_Restore_CNN_M.glsl;~~/shaders/Anime4K_AutoDownscalePre_x2.glsl;~~/shaders/Anime4K_AutoDownscalePre_x4.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl" + +[anime4k-bb-hq] +profile-desc=Anime4K: Mode B+B (HQ) +glsl-shaders="~~/shaders/Anime4K_Clamp_Highlights.glsl;~~/shaders/Anime4K_Restore_CNN_Soft_VL.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl;~~/shaders/Anime4K_AutoDownscalePre_x2.glsl;~~/shaders/Anime4K_AutoDownscalePre_x4.glsl;~~/shaders/Anime4K_Restore_CNN_Soft_M.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl" + +[anime4k-ca-hq] +profile-desc=Anime4K: Mode C+A (HQ) +glsl-shaders="~~/shaders/Anime4K_Clamp_Highlights.glsl;~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl;~~/shaders/Anime4K_AutoDownscalePre_x2.glsl;~~/shaders/Anime4K_AutoDownscalePre_x4.glsl;~~/shaders/Anime4K_Restore_CNN_M.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl" + +[fsr] +profile-desc=FidelityFX FSR +glsl-shaders="~~/shaders/FSR.glsl" + +[no-shaders] +profile-desc=No shaders set +glsl-shaders="" + +[anime] +profile-desc=Automatically applied to files with a path that contains a dir named 'Anime' +profile-cond=string.match(string.lower(path), '\\anime\\') ~= nil +profile=anime4k-a-hq + +[live-action] +profile-desc=Automatically applied to files with a path that contains a dir named 'TV-series' or 'Movies' +profile-cond=string.match(string.lower(path), '\\(tv%-?_?series)\\') ~= nil or string.match(string.lower(path), '\\(movies)\\') ~= nil +profile=fsr