###### # UI # ###### no-border # hide the window title bar msg-color=yes # color log messages on terminal term-osd-bar=yes # display a progress bar on the terminal no-hidpi-window-scale # used on 5K iMac to prevent scaling by OSX force-window=immediate # 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.) # fs=yes # Start in fullscreen mode by default. # force starting with centered window geometry=40%:60% # don't allow a new window to have a size larger than 90% of the screen size autofit-larger=60%x60% # Do not close the window on exit. #keep-open=yes # Disable the On Screen Controller (OSC). osc=no # Keep the player window on top of all other windows. ontop=no ########### # General # ########### # Main reference: # https://mpv.io/manual/master/ --keep-open # Don't terminate if the current file is the last playlist entry. --save-position-on-quit # Always save the current playback position on quit. #showFileNameInTitle script-opts='osc-title=${filename}' #ScreenShot screenshot-format=jpg screenshot-jpeg-quality=100 screenshot-high-bit-depth=yes screenshot-directory="~/Pictures/ScreenShot/mpv" # OpenGL settings gpu-api=opengl # Vulkan settings # gpu-api=vulkan # vulkan-async-compute=yes # vulkan-async-transfer=yes # vulkan-queue-count=1 # vd-lavc-dr=yes # Enable hardware decoding if available. hwdec=auto reset-on-next-file=audio-delay,mute,pause,speed,sub-delay,video-aspect-override,video-pan-x,video-pan-y,video-rotate,video-zoom,volume ############## # Colorspace # ############## # see https://github.com/mpv-player/mpv/wiki/Video-output---shader-stage-diagram target-prim=auto # target-prim=bt.709 # target Rec.709 for SDR TVs # target-prim=bt.2020 # target Rec.2020 (wide color gamut) for HDR TVs target-trc=auto gamma-auto vf=format=colorlevels=full:colormatrix=auto video-output-levels=full ######################### # Motion Interpolation # ######################### override-display-fps=60 video-sync=display-resample interpolation=yes tscale=oversample # smoothmotion ################ # Anti-Ringing # ################ scale-antiring=0.7 # luma upscale deringing dscale-antiring=0.7 # luma downscale deringing cscale-antiring=0.7 # chroma upscale deringing # Enable fuzzy searching for subtitles. sub-auto=fuzzy # Display English subtitles if available. slang=en,eng,english # Play Farsi audio if available, fall back to English otherwise. alang=fa,en # Set max volume to 100% volume-max=150 volume=75 # Change title to filename instead of media-title title='${filename} - mpv' script-opts='osc-title=${filename}' # Save video's volume amount and position # It's when you quit mpv without killing the instance (not working with Shift+Q) save-position-on-quit # Adjusting the window size for music. [extension.mp3] geometry=250x250 # If webm file is selected, playback forever. [extension.webm] loop-file=inf # If gif file is selected, playback forever. [extension.gif] loop-file=inf # If image is selected, keep it forever. image-display-duration=inf ################################### # Protocol Specific Configuration # ################################### # 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" [protocol.http] hls-bitrate=max # use max quality for HLS streams cache=yes no-cache-pause # don't pause when the cache runs low [protocol.https] profile=protocol.http [protocol.ytdl] profile=protocol.http # youtube-dl video quality configuration # ytdl-format=bestvideo[height<=480]+bestaudio/best[height<=480] # ytdl-format=bestvideo[height<=720]+bestaudio/best[height<=720] # ytdl-format=bestvideo[height<=1080]+bestaudio/best[height<=1080] # ytdl-format=bestvideo[height<=2160]+bestaudio/best[height<=2160] ytdl-format=auto # Misc ## youtube-dl subtitle configuration (non-auto-generated subtitles) ## Swith to yt-dlp script-opts=ytdl-all-subs,ytdl_hook-ytdl_path=yt-dlp ########################################################################## FOR SCRIPTS ########################################################################### [Idle] profile-cond=p["idle-active"] profile-restore=copy-equal keepaspect=no background=1 cursor-autohide=1000 # autohide the curser after 1s ############################################################# # Upscaling & Processing Based on Source Video's Resolution # ############################################################# # Chroma subsampling means that chroma information is encoded at lower resolution than luma # In MPV, chroma is upscaled to luma resolution (video size) and then the converted RGB is upscaled to target resolution (screen size) # For detailed analysis of upscaler/downscaler quality, see https://artoriuz.github.io/blog/mpv_upscaling.html fbo-format=rgba16f # use with gpu-api=opengl # fbo-format=rgba16hf # use with gpu-api=vulkan # fbo-format is not not supported in gpu-next profile glsl-shaders-clr # luma upscaling # note: any FSRCNNX above FSRCNNX_x2_8-0-4-1 is not worth the additional computional overhead glsl-shaders="~/.config/mpv/shaders/FSRCNNX_x2_8-0-4-1.glsl" scale=ewa_lanczos # luma downscaling # note: ssimdownscaler is tuned for mitchell and downscaling=no glsl-shaders-append="~/.config/mpv/shaders/SSimDownscaler.glsl" dscale=mitchell linear-downscaling=no # chroma upscaling and downscaling glsl-shaders-append="~/.config/mpv/shaders/KrigBilateral.glsl" cscale=mitchell # ignored with gpu-next sigmoid-upscaling=yes ############ # Profiles # ############ [4k60] # 2160p @ 60fps (3840x2160 UHDTV) profile-desc=4k60 profile-cond=((width ==3840 and height ==2160) and p["estimated-vf-fps"]>=31) # deband=yes # necessary to avoid blue screen with KrigBilateral.glsl deband=no # turn off debanding because presume wide color gamut interpolation=no # turn off interpolation because presume 60fps # UHD videos are already 4K so no luma upscaling is needed # UHD videos are YUV420 so chroma upscaling is still needed glsl-shaders-clr # glsl-shaders="~/.config/mpv/shaders/KrigBilateral.glsl" # enable if your hardware can support it interpolation=no # no motion interpolation required because 60fps is hardware ceiling # no deinterlacer required because progressive [4k30] # 2160p @ 24-30fps (3840x2160 UHDTV) profile-cond=((width ==3840 and height ==2160) and p["estimated-vf-fps"]<31) # deband=yes # necessary to avoid blue screen with KrigBilateral.glsl deband=no # turn off debanding because presume wide color gamut # UHD videos are already 4K so no luma upscaling is needed # UHD videos are YUV420 so chroma upscaling is still needed glsl-shaders-clr # glsl-shaders="~/.config/mpv/shaders/KrigBilateral.glsl" # enable if your hardware can support it # apply motion interpolation # no deinterlacer required because progressive [full-hd60] # 1080p @ 60fps (progressive ATSC) profile-desc=full-hd60 profile-cond=((width ==1920 and height ==1080) and not p["video-frame-info/interlaced"] and p["estimated-vf-fps"]>=31) # apply all luma and chroma upscaling and downscaling settings interpolation=no # no motion interpolation required because 60fps is hardware ceiling # no deinterlacer required because progressive [full-hd30] # 1080p @ 24-30fps (NextGen TV/ATSC 3.0, progressive Blu-ray) profile-desc=full-hd30 profile-cond=((width ==1920 and height ==1080) and not p["video-frame-info/interlaced"] and p["estimated-vf-fps"]<31) # apply all luma and chroma upscaling and downscaling settings # apply motion interpolation # no deinterlacer required because progressive [full-hd-interlaced] # 1080i @ 24-30fps (HDTV, interlaced Blu-rays) profile-desc=full-hd-interlaced profile-cond=((width ==1920 and height ==1080) and p["video-frame-info/interlaced"] and p["estimated-vf-fps"]<31) # apply all luma and chroma upscaling and downscaling settings # apply motion interpolation vf=bwdif # apply FFMPEG's bwdif deinterlacer [hd] # 720p @ 60 fps (HDTV, Blu-ray - progressive) profile-desc=hd profile-cond=(width ==1280 and height ==720) # apply all luma and chroma upscaling and downscaling settings interpolation=no # no motion interpolation required because 60fps is hardware ceiling # no deinterlacer required because progressive [sdtv-ntsc] # 640x480, 704x480, 720x480 @ 30fps (NTSC DVD - interlaced) profile-desc=sdtv-ntsc profile-cond=((width ==640 and height ==480) or (width ==704 and height ==480) or (width ==720 and height ==480)) # apply all luma and chroma upscaling and downscaling settings # apply motion interpolation vf=bwdif # apply FFMPEG's bwdif deinterlacer [sdtv-pal] # 352x576, 480x576, 544x576, 720x576 @ 30fps (PAL broadcast or DVD - interlaced) profile-desc=sdtv-pal 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)) # apply all luma and chroma upscaling and downscaling settings # apply motion interpolation vf=bwdif # apply FFMPEG's bwdif deinterlacer [default] ########################################################################## FOR SCRIPTS ###########################################################################