1
+ # VITAL: Use this config ONLY if you place your .conf file alongside mpv.exe instead of within "~/AppData\Roaming\mpv"
2
+
3
+ # Uses GPU-accelerated video output by default.
4
+ vo=gpu
5
+ # Can cause performance problems with some GPU drivers and GPUs.
6
+ profile=gpu-hq
7
+
8
+ # ===== REMOVE THE ABOVE FOUR LINES AND RESAVE IF YOU ENCOUNTER PLAYBACK ISSUES AFTER =====
9
+
10
+ # Source: https://github.com/hl2guide/better-mpv-config
11
+
12
+ # External Sources:
13
+ # * https://raw.githubusercontent.com/classicjazz/mpv-config/master/mpv.conf
14
+
15
+ # Enables best HW decoder; turn off for software decoding
16
+ hwdec=auto
17
+
18
+ border=no # hides the window title bar
19
+ msg-color=yes # color log messages on terminal
20
+ term-osd-bar=yes # displays a progress bar on the terminal
21
+ cursor-autohide=1000 # autohides the cursor after 1s
22
+
23
+ # Sets a custom font
24
+ osd-font='Iosevka'
25
+ # osd-font-size=55
26
+ # osd-scale=0.5
27
+
28
+ # Saves the seekbar position on exit
29
+ save-position-on-quit=yes
30
+
31
+ # Uses a large seekable RAM cache even for local input.
32
+ cache=yes
33
+ # cache-secs=300
34
+ # Uses extra large RAM cache (needs cache=yes to make it useful).
35
+ demuxer-max-bytes=1800M
36
+ demuxer-max-back-bytes=1200M
37
+
38
+ # ===== Audio =====
39
+
40
+ # Sets volume to 60%.
41
+ volume=60
42
+
43
+ # Normalizes audio
44
+ af-add='dynaudnorm=g=5:f=250:r=0.9:p=0.5'
45
+
46
+ # ===== Color Space =====
47
+ target-trc=auto
48
+ gamma-auto
49
+ vf=format=colorlevels=full:colormatrix=auto
50
+ video-output-levels=full
51
+
52
+ # ===== Dithering =====
53
+ dither-depth=auto
54
+ temporal-dither=yes
55
+ dither=fruit
56
+
57
+ # ===== Debanding =====
58
+ deband=yes # enabled by default
59
+ deband-iterations=4 # deband steps
60
+ deband-threshold=48 # deband strength
61
+ deband-range=16 # deband range
62
+ deband-grain=48 # dynamic grain: set to "0" if using the static grain shader
63
+
64
+ # ===== Subtitles =====
65
+ blend-subtitles=yes
66
+
67
+ # ===== Motion Interpolation =====
68
+ override-display-fps=60
69
+ video-sync=display-resample
70
+ interpolation=yes
71
+ tscale=oversample # smoothmotion
72
+
73
+ # ===== Anti-Ringing =====
74
+ scale-antiring=0.7 # luma upscale deringing
75
+ dscale-antiring=0.7 # luma downscale deringing
76
+ cscale-antiring=0.7 # chroma upscale deringing
77
+
78
+ # ===== Upscaling & Processing =====
79
+ glsl-shaders-clr
80
+ # luma upscaling
81
+ # note: any FSRCNNX above FSRCNNX_x2_8-0-4-1 is not worth the additional computional overhead
82
+ glsl-shaders="~~exe_dir\shaders\FSRCNNX_x2_8-0-4-1.glsl"
83
+ scale=ewa_lanczos
84
+ # luma downscaling
85
+ # note: ssimdownscaler is tuned for mitchell and downscaling=no
86
+ glsl-shaders-append="~~exe_dir\shaders\SSimDownscaler.glsl"
87
+ dscale=mitchell
88
+ linear-downscaling=no
89
+ # chroma upscaling and downscaling
90
+ glsl-shaders-append="~~exe_dir\shaders\KrigBilateral.glsl"
91
+ cscale=mitchell
92
+ sigmoid-upscaling=yes
93
+
94
+ # ===== Custom Profiles =====
95
+ # Uses specific naming convensions for shorter easier typing.
96
+ # Naming Convensions:
97
+ # V = Very Low, L = Low, M = Medium, H = High, U = Ultra, S = Supreme
98
+ # Very Low = 480p, Low = 720p, Medium = 1080p, High = 1440p, Ultra = 2160p (4K), Supreme = 4320p (8K)
99
+ # 30 = 30 frames per second, 60 = 60 frames per second
100
+ # Use the switch e.g: --profile=H60
101
+ # 4320p (8K) 60 FPS
102
+ [S60]
103
+ profile-desc="Supereme - 4320p (8K) - 60 FPS"
104
+ ytdl-format=bestvideo[height<=?4320][fps<=?60][vcodec!=?vp9]+bestaudio/best
105
+ # 4320p (8K) 30 FPS
106
+ [S30]
107
+ profile-desc="Supereme - 4320p (8K) - 30 FPS"
108
+ ytdl-format=bestvideo[height<=?4320][fps<=?30][vcodec!=?vp9]+bestaudio/best
109
+ # 2160p (4K) 60 FPS
110
+ [U60]
111
+ profile-desc="Ultra - 2160p (4K) - 60 FPS"
112
+ ytdl-format=bestvideo[height<=?2160][fps<=?60][vcodec!=?vp9]+bestaudio/best
113
+ # 2160p (4K) 30 FPS
114
+ [U30]
115
+ profile-desc="Ultra - 2160p (4K) - 30 FPS"
116
+ ytdl-format=bestvideo[height<=?2160][fps<=?30][vcodec!=?vp9]+bestaudio/best
117
+ # 1440p 60 FPS
118
+ [H60]
119
+ profile-desc="High - 1440p - 60 FPS"
120
+ ytdl-format=bestvideo[height<=?1440][fps<=?60][vcodec!=?vp9]+bestaudio/best
121
+ # 1440p 30 FPS
122
+ [H30]
123
+ profile-desc="High - 1440p - 30 FPS"
124
+ ytdl-format=bestvideo[height<=?1440][fps<=?30][vcodec!=?vp9]+bestaudio/best
125
+ # 1080p 60 FPS
126
+ [M60]
127
+ profile-desc="Medium - 1080p - 60 FPS"
128
+ ytdl-format=bestvideo[height<=?1080][fps<=?60][vcodec!=?vp9]+bestaudio/best
129
+ # 1080p 30 FPS
130
+ [M30]
131
+ profile-desc="Medium - 1080p - 30 FPS"
132
+ ytdl-format=bestvideo[height<=?1080][fps<=?30][vcodec!=?vp9]+bestaudio/best
133
+ # 720p 60 FPS
134
+ [L60]
135
+ profile-desc="Low - 720p - 60 FPS"
136
+ ytdl-format=bestvideo[height<=?720][fps<=?60][vcodec!=?vp9]+bestaudio/best
137
+ # 720p 30 FPS
138
+ [L30]
139
+ profile-desc="Low - 720p - 30 FPS"
140
+ ytdl-format=bestvideo[height<=?720][fps<=?30][vcodec!=?vp9]+bestaudio/best
141
+ # 480p 60 FPS
142
+ [V60]
143
+ profile-desc="Low - 480p - 60 FPS"
144
+ ytdl-format=bestvideo[height<=?480][fps<=?60][vcodec!=?vp9]+bestaudio/best
145
+ # 480p 30 FPS
146
+ [V30]
147
+ profile-desc="Low - 480p - 60 FPS"
148
+ ytdl-format=bestvideo[height<=?480][fps<=?30][vcodec!=?vp9]+bestaudio/best
149
+
150
+ # Other Profiles
151
+
152
+ [4k60] # 2160p @ 60fps (3840x2160 UHDTV)
153
+ profile-desc=4k60
154
+ profile-cond=((width ==3840 and height ==2160) and p["estimated-vf-fps"]>=31)
155
+ # deband=yes # necessary to avoid blue screen with KrigBilateral.glsl
156
+ deband=no # turn off debanding because presume wide color gamut
157
+ interpolation=no # turn off interpolation because presume 60fps
158
+ # UHD videos are already 4K so no luma upscaling is needed
159
+ # UHD videos are YUV420 so chroma upscaling is still needed
160
+ glsl-shaders-clr
161
+ # glsl-shaders="~/.config/mpv/shaders/KrigBilateral.glsl" # enable if your hardware can support it
162
+ interpolation=no # no motion interpolation required because 60fps is hardware ceiling
163
+ # no deinterlacer required because progressive
164
+
165
+ [4k30] # 2160p @ 24-30fps (3840x2160 UHDTV)
166
+ profile-desc=4k30
167
+ profile-cond=((width ==3840 and height ==2160) and p["estimated-vf-fps"]<31)
168
+ # deband=yes # necessary to avoid blue screen with KrigBilateral.glsl
169
+ deband=no # turn off debanding because presume wide color gamut
170
+ # UHD videos are already 4K so no luma upscaling is needed
171
+ # UHD videos are YUV420 so chroma upscaling is still needed
172
+ glsl-shaders-clr
173
+ # glsl-shaders="~/.config/mpv/shaders/KrigBilateral.glsl" # enable if your hardware can support it
174
+ # apply motion interpolation
175
+ # no deinterlacer required because progressive
176
+
177
+ [full-hd60] # 1080p @ 60fps (progressive ATSC)
178
+ profile-desc=full-hd60
179
+ profile-cond=((width ==1920 and height ==1080) and not p["video-frame-info/interlaced"] and p["estimated-vf-fps"]>=31)
180
+ # apply all luma and chroma upscaling and downscaling settings
181
+ interpolation=no # no motion interpolation required because 60fps is hardware ceiling
182
+ # no deinterlacer required because progressive
183
+
184
+ [full-hd30] # 1080p @ 24-30fps (NextGen TV/ATSC 3.0, progressive Blu-ray)
185
+ profile-desc=full-hd30
186
+ profile-cond=((width ==1920 and height ==1080) and not p["video-frame-info/interlaced"] and p["estimated-vf-fps"]<31)
187
+ # apply all luma and chroma upscaling and downscaling settings
188
+ # apply motion interpolation
189
+ # no deinterlacer required because progressive
190
+
191
+ [full-hd-interlaced] # 1080i @ 24-30fps (HDTV, interlaced Blu-rays)
192
+ profile-desc=full-hd-interlaced
193
+ profile-cond=((width ==1920 and height ==1080) and p["video-frame-info/interlaced"] and p["estimated-vf-fps"]<31)
194
+ # apply all luma and chroma upscaling and downscaling settings
195
+ # apply motion interpolation
196
+ vf=bwdif # apply FFMPEG's bwdif deinterlacer
197
+
198
+ [hd] # 720p @ 60 fps (HDTV, Blu-ray - progressive)
199
+ profile-desc=hd
200
+ profile-cond=(width ==1280 and height ==720)
201
+ # apply all luma and chroma upscaling and downscaling settings
202
+ interpolation=no # no motion interpolation required because 60fps is hardware ceiling
203
+ # no deinterlacer required because progressive
204
+
205
+ [sdtv-ntsc] # 640x480, 704x480, 720x480 @ 30fps (NTSC DVD - interlaced)
206
+ profile-desc=sdtv-ntsc
207
+ profile-cond=((width ==640 and height ==480) or (width ==704 and height ==480) or (width ==720 and height ==480))
208
+ # apply all luma and chroma upscaling and downscaling settings
209
+ # apply motion interpolation
210
+ vf=bwdif # apply FFMPEG's bwdif deinterlacer
211
+
212
+ [sdtv-pal] # 352x576, 480x576, 544x576, 720x576 @ 30fps (PAL broadcast or DVD - interlaced)
213
+ profile-desc=sdtv-pal
214
+ profile-cond=((width ==352 and height ==576) or (width ==480 and height ==576) or (width ==544 and height ==576) or (width ==720 and height ==576))
215
+ # apply all luma and chroma upscaling and downscaling settings
216
+ # apply motion interpolation
217
+ vf=bwdif # apply FFMPEG's bwdif deinterlacer
218
+
219
+ [default]
220
+
221
+ # ===== File Type Profiles =====
222
+ # GIF Files
223
+ [extension.gif]
224
+ profile-desc=gif
225
+ cache=no
226
+ no-pause
227
+ loop-file=yes
228
+ # WebM Files
229
+ [extension.webm]
230
+ profile-desc=webm
231
+ no-pause
232
+ loop-file=yes
233
+
234
+ # ===== Protocol Specific Configuration =====
235
+
236
+ [protocol.http]
237
+ profile-desc=http
238
+ hls-bitrate=max # use max quality for HLS streams
239
+ cache=yes
240
+ no-cache-pause # don't pause when the cache runs low
241
+
242
+ [protocol.https]
243
+ profile-desc=https
244
+ profile=protocol.http
245
+
246
+ [protocol.ytdl]
247
+ profile-desc=ytdl
248
+ profile=protocol.http
0 commit comments