summary refs log tree commit diff
path: root/.config/mpv/config
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2026-04-08 13:26:13 +0900
committerRobert Günzler <r@gnzler.io>2026-04-08 13:26:13 +0900
commit4e34cbf9673aeaba252e01df554a0d204e83c5e2 (patch)
treef3eea07d0e2bf1628ce19987c5164577f63ac614 /.config/mpv/config
parent28db7c76e26c312918959384e02e433f8858de49 (diff)
Automated-commit-by: dots
Signed-off-by: Robert Günzler <r@gnzler.io>
Diffstat (limited to '.config/mpv/config')
-rw-r--r--.config/mpv/config155
1 files changed, 155 insertions, 0 deletions
diff --git a/.config/mpv/config b/.config/mpv/config
new file mode 100644
index 0000000..41b10cb
--- /dev/null
+++ b/.config/mpv/config
@@ -0,0 +1,155 @@
+vo = gpu-next
+hwdec = auto
+
+screenshot-directory = ~/pictures/screenshots/mpv
+screenshot-template = '%tY%tm%td-%tH%tM%tS-%F-%p'
+screenshot-format = png
+screenshot-png-compression = 9
+
+#
+# profiles
+#
+
+[fullscreen]
+vo=dmabuf-wayland
+
+[protocol.http]
+profile-desc="Optimized for streaming video"
+glsl-shaders-clr
+title="${media-title}"
+# ytdl-format=bv[height<=?1080]+ba / b[height<=?1080]
+ytdl-format=(bv[vcodec~='^av01']/bv)[height<=?1080]+ba / b[height<=?1080]
+demuxer-seekable-cache=yes
+cache-pause=no
+hls-bitrate=max
+
+[protocol.https]
+profile=protocol.http
+
+[reset]
+profile-desc="Reset everything to vanilla mpv"
+profile=default
+load-scripts=no
+osc=yes
+osd-bar=yes
+
+[bigcache]
+demuxer-readahead-secs=20
+demuxer-max-bytes=512M
+demuxer-max-back-bytes=512M
+
+[gpuhq]
+profile-desc="Optimized for HQ rendering"
+profile-cond=height <= 1440
+profile=gpu-hq
+
+[scale]
+profile-desc="Use fancy scaling algorithms"
+profile-cond=height <= 1440
+glsl-shaders-clr
+scale=ewa_lanczossharp
+dscale=ewa_lanczossharp
+correct-downscaling=yes
+sigmoid-upscaling=yes
+
+[webcam]
+profile-desc="Optimized for showing real-time webcam feed"
+profile-cond=(not not string.match(get('path'), '/dev/video*'))
+load-scripts=no
+osc=no
+profile=low-latency
+untimed
+video-sync=display-resample
+no-demuxer-thread
+opengl-glfinish=yes
+opengl-swapinterval=0
+vf-add=hflip
+
+[webcam/local]
+profile-cond=(not not string.match(get('path'), '/dev/video0'))
+profile=webcam
+demuxer-lavf-o=input_format=mjpeg
+
+[downmix]
+ad-lavc-downmix=no
+# == pan ==
+# <output channel layout> | <output channel definition>
+# FL = front left
+# FC = front center
+# BL = back left
+# SL = side left
+# LFE = low frequency
+#
+# == dynaudnorm ==
+# g (gausssize): 3-301 (must be odd; default: 31), window size (in frames) of smoothing filter around current frame
+#   larger: stronger smoothing -> less gain variation
+# f (framelen): 10-8000 ms (default: 500), length of the section of audio used to detect peaks
+# r (targetrms): 0.0-1.0 (default: 0.0 disabled), use RMS (root mean square) of signal instead of peak - better approx. of "perceived loudness"
+#   adjusts frames to a constant RMS value
+# p (peak): (default: 0.95 leaves 5% headroom), target peak value
+#af-add='lavfi=[pan=2.1| FL < FC+0.8FL+0.1*BL+0.1*SL | FR < FC+0.8*FR+0.1*BR+0.1*SR | LFE < LFE,dynaudnorm=g=41:f=700:r=0.9]'
+#af-add='lavfi=[pan=5.1| FL < 0.8*FL | FR < 0.8*FR | LFE < LFE | FC < FC | BL < BL | BR < BR,dynaudnorm=g=41:f=700:r=0.9]'
+af-add='lavfi=[pan=5.1| FL = 0.5*FL | FR = 0.5*FR | LFE = LFE | FC = FC | BL = 0.3*BL | BR = 0.3*BR]'
+
+[fastforward]
+profile-restore=copy-equal
+profile=fast
+scale=bilinear
+dscale=bilinear
+cscale=bilinear
+vd-lavc-skiploopfilter=all
+vd-lavc-skipframe=all
+
+[compressor]
+profile-desc="Apply audio compression"
+input-commands-add=load-script '/usr/share/mpv/lua/acompressor.lua'
+script-opts-add=acompressor-default_enable=yes
+
+# mpv image viewer settings
+[mvi]
+profile-desc="mpv image viewer"
+profile-restore=copy-equal
+profile=gpu-hq
+profile=scale
+sub-auto=no
+audio-file-auto=no
+term-status-msg=
+title="${?media-title:${media-title}}${!media-title:No file}"
+video-aspect-override=no
+loop-file=inf
+image-display-duration=inf
+input-conf=~~/mvi/input.conf
+input-commands-add=load-script '~~/mvi/scripts/ruler.lua'
+input-commands-add=load-script '~~/mvi/scripts/detect-image.lua'
+input-commands-add=load-script '~~/mvi/scripts/freeze-window.lua'
+input-commands-add=load-script '~~/mvi/scripts/image-positioning.lua'
+input-commands-add=load-script '~~/mvi/scripts/minimap.lua'
+input-commands-add=load-script '~~/mvi/scripts/ruler.lua'
+script-opts-add=uosc-volume=none
+#script-opts-add=uosc-controls=no
+#script-opts-add=uosc-progress=no
+script-opts-add=uosc-timeline_size=0
+directory-filter-types=image
+
+[extension.jpg]
+profile=mvi
+[extension.png]
+profile=mvi
+[extension.gif]
+profile=mvi
+
+# mpv audio player
+[mpa]
+profile-desc="mpv audio player"
+profile=pseudo-gui
+script-opts-add=uosc-volume=none
+directory-filter-types=audio
+
+[extension.ogg]
+profile=mpa
+[extension.flac]
+profile=mpa
+[extension.wav]
+profile=mpa
+[extension.mp3]
+profile=mpa