update mpv config and remove osc.conf

This commit is contained in:
2025-11-13 22:07:31 -08:00
parent a26255e83a
commit db9b3b65f1
3 changed files with 254 additions and 285 deletions

View File

@@ -1,124 +1,142 @@
profile=high-quality
user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36" user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"
cache=yes glsl-shaders="" # Disable heavy shaders for regular content
demuxer-max-bytes=500M # glsl-shaders="~~/shaders/ArtCNN_C4F32_DS.glsl"
demuxer-max-back-bytes=100M # glsl-shaders="~~/shaders/ArtCNN_C4F32.glsl"
cache-pause=no scale=spline36 # Faster than ewa_lanczos for high-res video when shaders are off
dither=fruit # Lighter dithering aimed at 8-bit or FRC panels
# --- Window & interface ---
ontop=yes ontop=yes
border=no
no-border
autofit=50% # Start at half of the screen to avoid oversized windows on UHD displays
osc=no
blend-subtitles=video # Keeps subtitles composited into the video plane
opengl-early-flush=no # Delay buffer flushes to reduce micro-stutter on some GPUs
# --- Subtitle defaults ---
sub-font="JetBrainsMono Nerd Font" sub-font="JetBrainsMono Nerd Font"
sub-font-size=45 sub-font-size=45
# osd-font="Fluent System Icons" sub-auto=fuzzy
border=no slang=en,eng
# geometry=50% subs-with-matching-audio=no
autofit=50% sub-fix-timing=yes
sub-ass-override=scale
sub-gauss=1.0
sub-gray=yes
# --- Audio chain ---
volume=75 volume=75
ao=pipewire,pulse
audio-spdif=ac3,dts-hd,truehd audio-spdif=ac3,dts-hd,truehd
# 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" audio-stream-silence=yes # Keep the device primed to avoid startup pops
# glsl-shaders="~~/shaders/FSRCNNX.glsl:~~/shaders/FSR.glsl:~~/shaders/NVScaler.glsl:~~/shaders/CAS-scaled.glsl" audio-wait-open=0.1 # Shorten audio device warm-up for snappier playback
# glsl-shaders="~~/shaders/ArtCNN_C4F32_DS.glsl"
glsl-shaders="~~/shaders/ArtCNN_C4F32.glsl"
# Can fix stuttering in some cases, in other cases probably causes it. Try it if you experience stuttering.
opengl-early-flush=no
video-sync=display-resample
osc=no
no-border
# --- Networking & remote sources ---
ytdl-format=bestvideo+bestaudio/best ytdl-format=bestvideo+bestaudio/best
ytdl-raw-options=sub-langs=en.*,write-auto-subs= ytdl-raw-options=sub-langs=en.*,write-auto-subs=
ytdl-raw-options-append=sponsorblock-mark=all ytdl-raw-options-append=sponsorblock-mark=all
ytdl-raw-options-append=sponsorblock-remove=sponsor,selfpromo,interaction ytdl-raw-options-append=sponsorblock-remove=sponsor,selfpromo,interaction
# get subtitles for videos automatically # --- Video output & decoding ---
sub-auto=fuzzy
slang=en,eng
# profile=svp
profile=high-quality
blend-subtitles=video
# GPU OPTIONS
vo=gpu-next vo=gpu-next
hwdec=nvdec hwdec=nvdec
hwdec-codecs=all
gpu-api=vulkan gpu-api=vulkan
gpu-context=waylandvk
vulkan-queue-count=2
vulkan-async-compute=yes # Use independent compute queues for tone mapping/shaders
vulkan-async-transfer=yes # Parallelize frame uploads to free the graphics queue
vd-lavc-dr=yes # Direct rendering keeps frames resident on the GPU longer
vd-lavc-threads=0 # Let ffmpeg auto-pick the optimal thread count
video-sync=display-resample # Smoothly match video speed to the display refresh
# --- Scaling, interpolation, and dithering ---
scale=ewa_lanczossharp scale=ewa_lanczossharp
dscale=catmull_rom dscale=catmull_rom
cscale=ewa_lanczos cscale=ewa_lanczos
tscale=oversample tscale=oversample
interpolation=yes interpolation=yes
interpolation-preserve=no interpolation-preserve=no
interpolation-threshold=0.5 interpolation-threshold=0.5 # Only blend nearby frames to reduce SOE artifacts
sigmoid-upscaling=yes sigmoid-upscaling=yes # Protect highlights when upscaling SDR video
temporal-dither=yes temporal-dither=yes # Prefer temporal noise over spatial patterns on SDR panels
# Dithering presets reference:
# fruit: 8-Bit/8-Bit+FRC display # fruit -> 8-bit / 8-bit + FRC displays
# ordered: true 10-Bit/12-Bit display # ordered -> True 10-bit / 12-bit displays
# error-diffusion: high-end GPUs # error-diffusion -> High-end GPUs
dither=error-diffusion dither=error-diffusion
dither-depth=auto dither-depth=auto
error-diffusion=sierra-lite # uncomment if not 'error-diffusion' error-diffusion=sierra-lite # Balanced diffusion kernel for 8-bit panels
###### Antiring # --- Antiring controls ---
scale-antiring=0.5 scale-antiring=0.5
dscale-antiring=0.5 dscale-antiring=0.5
cscale-antiring=0.5 cscale-antiring=0.5
# laptop # --- Post-processing ---
# vo=gpu
# gpu-api=opengl
# gpu-context=wayland
# profile=opengl-hq
gpu-context=waylandvk
gpu-api=vulkan
vulkan-swap-mode=mailbox
swapchain-depth=2
vulkan-async-compute=no
vd-lavc-threads=0
opengl-pbo=yes
vd-lavc-film-grain=gpu
input-ipc-server=/tmp/mpvsocket
# ao=pule,pipewire
ao=pipewire,pulse
deband=yes deband=yes
deband-iterations=2 deband-iterations=2
deband-threshold=24 deband-threshold=24
deband-range=16 deband-range=16
deband-grain=4 deband-grain=4
subs-with-matching-audio=no # --- IPC & automation ---
sub-fix-timing=yes input-ipc-server=/tmp/mpvsocket # Allows external tools (e.g., SVP) to control mpv
sub-ass-override=scale
#Some settings fixing VOB/PGS subtitles (creating blur & changing yellow subs to gray)
sub-gauss=1.0
sub-gray=yes
###### High-quality screenshots # --- Screenshot workflow ---
screenshot-format=webp screenshot-format=webp
screenshot-webp-lossless=yes screenshot-webp-lossless=yes
screenshot-high-bit-depth=yes screenshot-high-bit-depth=yes
screenshot-sw=no screenshot-sw=no # Force GPU path so tone mapping stays consistent
screenshot-directory="/truenas/sudacode/pictures/mpv" screenshot-directory="/truenas/sudacode/pictures/mpv"
screenshot-template="%f-%wH.%wM.%wS.%wT-#%#00n" screenshot-template="%f-%wH.%wM.%wS.%wT-#%#00n"
# --- Session persistence ---
save-position-on-quit save-position-on-quit
watch-later-dir="~~/.watch-later" watch-later-dir="~~/.watch-later"
resume-playback=yes resume-playback=yes
save-watch-history save-watch-history
watch-history-path="~~/state/watch_history.jsonl" watch-history-path="~~/state/watch_history.jsonl"
# --- HDR/SDR hints ---
target-colorspace-hint=yes target-colorspace-hint=yes
# --- Caching & buffers ---
cache=yes
demuxer-max-bytes=1GiB # Buffer up to 1 GiB for high-bitrate remuxes
demuxer-max-back-bytes=200MiB # Keep recent data handy for quick reverse seeks
cache-secs=30
demuxer-readahead-secs=30
[anime]
profile-desc="Anime upscaling with ArtCNN"
glsl-shaders="~~/shaders/ArtCNN_C4F32.glsl"
scale=ewa_lanczossharp
dither=error-diffusion
deband=yes # Crucial for anime gradients
[movies]
profile-desc="Movies and TV shows"
profile-cond=width >= 1920 and filename:match("mkv$|mp4$")
glsl-shaders=""
scale=ewa_lanczos
target-peak=800
[hdr] [hdr]
target-colorspace-hint=yes target-colorspace-hint=yes
gpu-api=vulkan tone-mapping-param=0.5
gpu-context=waylandvk tone-mapping-max-boost=2.0
allow-delayed-peak-detect=yes
# For SDR content on HDR display (or vice versa)
icc-profile-auto=yes
[svp] [svp]
interpolation=no interpolation=no
input-ipc-server=/tmp/mpvsocket # Receives input from SVP input-ipc-server=/tmp/mpvsocket
hr-seek-framedrop=no # Fixes audio desync hr-seek-framedrop=no
resume-playback=no # Not compatible with SVP resume-playback=no
[Idle] [Idle]
profile-cond=p["idle-active"] profile-cond=p["idle-active"]
@@ -139,7 +157,16 @@ sub-auto=fuzzy
slang=ja,jpn,ja.hi,ja.* slang=ja,jpn,ja.hi,ja.*
alang=ja,jpn alang=ja,jpn
vlang=ja,jpn vlang=ja,jpn
glsl-shaders="~~/shaders/ArtCNN_C4F32.glsl"
scale=ewa_lanczossharp
dither=error-diffusion
deband=yes # Crucial for anime gradients
[anime-subs]
profile-cond=p["slang"] == "ja" or p["slang"] == "ja.hi"
sub-font="Noto Sans CJK JP" sub-font="Noto Sans CJK JP"
sub-border-size=1 sub-font-size=42
sub-shadow-color=0.0/0.0/0.0/0.50 sub-border-size=1.2
sub-shadow-offset=2 sub-shadow-color=0.0/0.0/0.0/0.6
sub-shadow-offset=3
sub-hinting=light

View File

@@ -1,233 +1,181 @@
# user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"
# Example mpv configuration file
#
# Warning:
#
# The commented example options usually do _not_ set the default values. Call
# mpv with --list-options to see the default values for most options. There is
# no builtin or example mpv.conf with all the defaults.
#
#
# Configuration files are read system-wide from /usr/local/etc/mpv.conf
# and per-user from ~~/mpv.conf, where per-user settings override
# system-wide settings, all of which are overridden by the command line.
#
# Configuration file settings and the command line options use the same
# underlying mechanisms. Most options can be put into the configuration file
# by dropping the preceding '--'. See the man page for a complete list of
# options.
#
# Lines starting with '#' are comments and are ignored.
#
# See the CONFIGURATION FILES section in the man page
# for a detailed description of the syntax.
#
# Profiles should be placed at the bottom of the configuration file to ensure
# that settings wanted as defaults are not restricted to specific profiles.
################## glsl-shaders=""
# video settings # scale=spline36 # Fast, high-quality fallback
################## dither=fruit # Lightweight dithering
# Start in fullscreen mode by default. # Window & interface
#fs=yes ontop=yes
border=no
no-border
autofit=50% # Reasonable default size
# force starting with centered window # Audio (macOS-specific)
# geometry=50%:50% volume=75
ao=coreaudio # Native macOS audio
# don't allow a new window to have a size larger than 90% of the screen size audio-stream-silence=no # FIXED: Prevents player behavior issues
#autofit-larger=90%x90% audio-wait-open=0.1 # Faster audio startup
# Do not close the window on exit.
#keep-open=yes
# Do not wait with showing the video window until it has loaded. (This will
# resize the window once video is loaded. Also always shows a window with
# audio.)
#force-window=immediate
# Disable the On Screen Controller (OSC).
# osc=no
# Keep the player window on top of all other windows.
# window=scale=1.0
# Specify high quality video rendering preset (for --vo=gpu only)
# Can cause performance problems with some drivers and GPUs.
# profile=gpu-hq
# Force video to lock on the display's refresh rate, and change video and audio
# speed to some degree to ensure synchronous playback - can cause problems
# with some drivers and desktop environments.
#video-sync=display-resample
# Enable hardware decoding if available. Often, this does not work with all
# video outputs, but should work well with default settings on most systems.
# If performance or energy usage is an issue, forcing the vdpau or vaapi VOs
# may or may not help.
# discourged by mpv devs and not likely to make significant difference
# hwdec=auto-copy
# hwdec-codecs=all
##################
# audio settings #
##################
# Specify default audio device. You can list devices with: --audio-device=help
# The option takes the device string (the stuff between the '...').
#audio-device=alsa/default
# Do not filter audio to keep pitch when changing playback speed.
#audio-pitch-correction=no
# Output 5.1 audio natively, and upmix/downmix audio with a different format.
#audio-channels=5.1
# Disable any automatic remix, _if_ the audio output accepts the audio format.
# of the currently played file. See caveats mentioned in the manpage.
# (The default is "auto-safe", see manpage.)
#audio-channels=auto
##################
# other settings #
##################
# Pretend to be a web browser. Might fix playback with some streaming sites,
# but also will break with shoutcast streams.
# user-agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"
user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"
# user-agent="Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36"
# user-agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/37.0.2062.94 Chrome/37.0.2062.94 Safari/537.36"
# user-agent="Chromium/37.0.2062.94 Chrome/37.0.2062.94 Safari/537.36"
# cache settings
#
# Use a large seekable RAM cache even for local input.
cache=yes
#
# Use extra large RAM cache (needs cache=yes to make it useful).
demuxer-max-bytes=500M
demuxer-max-back-bytes=100M
#
# Disable the behavior that the player will pause if the cache goes below a
# certain fill size.
cache-pause=no
#
# Store cache payload on the hard disk instead of in RAM. (This may negatively
# impact performance unless used for slow input such as network.)
#cache-dir=~/.cache/
#cache-on-disk=yes
# Display English subtitles if available.
#slang=en
# Play Finnish audio if available, fall back to English otherwise.
#alang=fi,en
# Change subtitle encoding. For Arabic subtitles use 'cp1256'.
# If the file seems to be valid UTF-8, prefer UTF-8.
# (You can add '+' in front of the codepage to force it.)
#sub-codepage=cp1256
# You can also include other configuration files.
#include=/path/to/the/file/you/want/to/include
############
# Profiles #
############
# The options declared as part of profiles override global default settings,
# but only take effect when the profile is active.
# The following profile can be enabled on the command line with: --profile=eye-cancer
#[eye-cancer]
#sharpen=5
# Subtitle defaults
sub-font="JetBrainsMono Nerd Font" sub-font="JetBrainsMono Nerd Font"
sub-font-size=45 sub-font-size=45
# osd-font="Fluent System Icons"
border=no
geometry=50%
volume=50
# speed-step=0.05
# audio-spdif=ac3,eac3,dts-hd,truehd
# 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"
glsl-shaders="~~/shaders/ArtCNN_C4F16.glsl"
# glsl-shaders="~~/shaders/FSR.glsl"
# Can fix stuttering in some cases, in other cases probably causes it. Try it if you experience stuttering.
opengl-early-flush=no
video-sync=display-resample
osc=no
no-border
ytdl-raw-options=sub-langs=en.*,write-auto-subs=
ytdl-format=bestvideo+bestaudio/best
# get subtitles for videos automatically
sub-auto=fuzzy sub-auto=fuzzy
slang=en,eng slang=en,eng
subs-with-matching-audio=no
sub-fix-timing=yes
sub-ass-override=scale
sub-gauss=1.0
sub-gray=yes
# CATPPUCCIN MACHIATTO # Networking & streaming
# Main mpv options ytdl-format=bestvideo+bestaudio/best
ytdl-raw-options=sub-langs=en.*,write-auto-subs=
ytdl-raw-options-append=sponsorblock-mark=all
ytdl-raw-options-append=sponsorblock-remove=sponsor,selfpromo,interaction
# Stats & UI colors (Catppuccin Macchiato)
background-color='#24273a' background-color='#24273a'
osd-back-color='#181926' osd-back-color='#181926'
osd-border-color='#181926' osd-border-color='#181926'
osd-color='#cad3f5' osd-color='#cad3f5'
osd-shadow-color='#24273a' osd-shadow-color='#24273a'
# Stats script options
# Options are on separate lines for clarity
# Colors are in #BBGGRR format
script-opts-append=stats-border_color=30201e script-opts-append=stats-border_color=30201e
script-opts-append=stats-font_color=f5d3ca script-opts-append=stats-font_color=f5d3ca
script-opts-append=stats-plot_bg_border_color=f8bdb7 script-opts-append=stats-plot_bg_border_color=f8bdb7
script-opts-append=stats-plot_bg_color=30201e script-opts-append=stats-plot_bg_color=30201e
script-opts-append=stats-plot_color=f8bdb7 script-opts-append=stats-plot_color=f8bdb7
# profile=svp ##################
profile=gpu-hq # Video/Graphics #
# GPU OPTIONS ##################
vo=gpu-next vo=gpu-next
# hwdec=nvdec-copy hwdec=videotoolbox # macOS hardware decoding
hwdec=videotoolbox hwdec-codecs=all
scale=bicubic gpu-api=vulkan
dscale=bicubic gpu-context=macvk # macOS-specific Vulkan context
cscale=bicubic
# Vulkan optimizations (prevents crashes and memory leaks)
vulkan-queue-count=1 # FIXED: Prevents buffer overflow
vulkan-async-compute=no # FIXED: Improves stability
vulkan-async-transfer=no # FIXED: Reduces memory pressure
vulkan-swap-mode=fifo # Most compatible presentation mode
fbo-format=rgba8 # FIXED: Memory-safe format
# Video filtering & quality
vd-lavc-film-grain=cpu # FIXED: GPU grain not supported on macOS
vd-lavc-threads=0
vd-lavc-dr=yes # Keep frames on GPU
video-sync=display-resample # Smooth playback
# Scaling & interpolation
scale=ewa_lanczossharp
dscale=catmull_rom
cscale=ewa_lanczos
tscale=oversample tscale=oversample
interpolation=yes interpolation=yes
interpolation-preserve=no interpolation-threshold=0.5
sigmoid-upscaling=yes
temporal-dither=yes
input-ipc-server=/tmp/mpvsocket # High-quality dithering
# ao=pule,pipewire dither=error-diffusion
# ao=pipewire,pulse dither-depth=auto
ontop=yes error-diffusion=sierra-lite
# Antiring
scale-antiring=0.5
dscale-antiring=0.5
cscale-antiring=0.5
# Post-processing
deband=yes
deband-iterations=2
deband-threshold=24
deband-range=16
deband-grain=4
##################
# Screenshot #
##################
screenshot-format=webp
screenshot-webp-lossless=yes
screenshot-high-bit-depth=yes
screenshot-sw=no
screenshot-directory="/Volumes/sudacode/pictures/mpv"
screenshot-template="%f-%wH.%wM.%wS.%wT-#%#00n"
##################
# Session #
##################
ao=coreaudio
save-position-on-quit save-position-on-quit
watch-later-dir="~~.watch-later" watch-later-dir="~~/.watch-later"
resume-playback=yes resume-playback=yes
save-watch-history save-watch-history
watch-history-path="~~state/watch_history.jsonl" watch-history-path="~~/state/watch_history.jsonl"
vd-lavc-threads=0 input-ipc-server=/tmp/mpvsocket
gpu-api=vulkan
gpu-context=macvk
opengl-pbo=yes
##################
# Caching #
##################
cache=yes
demuxer-max-bytes=1GiB
demuxer-max-back-bytes=200MiB
cache-pause=no
cache-secs=30
demuxer-readahead-secs=30
############
# Profiles #
############
# Base high-quality preset (inherits above settings)
[base]
profile=gpu-hq
# Anime profile (ArtCNN is memory-heavy, use cautiously)
[anime]
profile-desc="Anime upscaling with ArtCNN"
profile-cond=filename:match("mkv$") and height <= 1080
glsl-shaders="~~/shaders/ArtCNN_C4F16.glsl" # Use F16 variant (lighter)
scale=ewa_lanczossharp
deband=yes
# Movies profile (no shaders, HDR support)
[movies]
profile-desc="Movies and TV shows"
profile-cond=width >= 1920 and filename:match("mkv$|mp4$")
glsl-shaders=""
scale=ewa_lanczos
target-peak=800
hdr-tone-mapping=bt.2390
# HDR profile
[hdr]
target-colorspace-hint=yes
tone-mapping-param=0.5
tone-mapping-max-boost=2.0
allow-delayed-peak-detect=yes
icc-profile-auto=yes
# SVP compatibility profile
[svp] [svp]
input-ipc-server=/tmp/mpvsocket # Receives input from SVP interpolation=no
hr-seek-framedrop=no # Fixes audio desync input-ipc-server=/tmp/mpvsocket
resume-playback=no # Not compatible with SVP hr-seek-framedrop=no
resume-playback=no
# Idle profile
[Idle] [Idle]
profile-cond=p["idle-active"] profile-cond=p["idle-active"]
profile-restore=copy-equal profile-restore=copy-equal
title=' ' title=' '
keepaspect=no keepaspect=no
# Japanese immersion profile
[immersion] [immersion]
cookies=yes cookies=yes
cookies-file=/Volumes/sudacode/japanese/cookies.Japanese.txt cookies-file=/Volumes/sudacode/japanese/cookies.Japanese.txt
@@ -236,8 +184,21 @@ ytdl-raw-options-append=cookies=/Volumes/sudacode/japanese/cookies.Japanese.txt
ytdl-raw-options-append=sponsorblock-mark=all ytdl-raw-options-append=sponsorblock-mark=all
ytdl-raw-options-append=sponsorblock-remove=sponsor ytdl-raw-options-append=sponsorblock-remove=sponsor
ytdl-format=bestvideo+bestaudio/best ytdl-format=bestvideo+bestaudio/best
# get subtitles for videos automatically
sub-auto=fuzzy sub-auto=fuzzy
slang=ja,jpn slang=ja,jpn,ja.hi,ja.*
alang=ja,jpn alang=ja,jpn
vlang=ja,jpn vlang=ja,jpn
sub-font="Noto Sans CJK JP"
sub-font-size=42
sub-border-size=1.2
sub-shadow-color=0.0/0.0/0.0/0.6
sub-shadow-offset=3
# Anime subtitles profile
[anime-subs]
profile-cond=p["slang"] == "ja" or p["slang"] == "ja.hi"
sub-font="Noto Sans CJK JP"
sub-font-size=42
sub-border-size=1.2
sub-shadow-color=0.0/0.0/0.0/0.6
sub-shadow-offset=3

View File

@@ -1,19 +0,0 @@
showwindowed=yes
showfullscreen=yes
scalewindowed=1
scalefullscreen=1
scaleforcedwindow=2
vidscale=yes
hidetimeout=1000
fadeduration=500
minmousemove=3
iamaprogrammer=yes
font='mpv-osd-symbols'
seekrangealpha=128
title='${media-title}'
showtitle=yes
visibility=auto
windowcontrols=auto
volumecontrol=yes
processvolume=yes
language=eng