Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # MPV - mpv.conf
- # classicjazz - 2022-04-19
- # Details about configuring MPV for high quality video are covered here: https://freetime.mikeconnelly.com/archives/5371
- # The latest version of this file is located here: https://github.com/classicjazz/mpv-config
- # All MPV options are covered here: https://github.com/mpv-player/mpv/blob/master/DOCS/man/options.rst
- # All of my upscaling calculations assume a native 4K resolution display
- # Additionally, my target displays all support HDR, so tone-mapping for SDR is not necessary
- # I am slowly incorporating changes anticipating using vo=gpu-next in the future
- # https://github.com/mpv-player/mpv/wiki/GPU-Next-vs-GPU
- # This config file assumes that you are using a version of MPV that supports Conditional Profiles (i.e. auto-profiles.lau is no longer required). Tested with mpv v0.34.1
- ###########
- # General #
- ###########
- profile=gpu-hq # used for any other OS on modern hardware
- # profile=gpu-next # for future use
- # Selected API: select either Vulkan (preferred) or OpenGL
- # Note: MacOS devices are currently limited to OpenGL v4.1 (which is deprecated). For iOS/tvOS/MacOS devices, Metal v2 would be preferred but there is not currently a Metal backend. In the future, a workaround may be to use mpv + libplacebo + MoltenVK
- # Vulkan settings
- gpu-api=vulkan
- vulkan-async-compute=yes
- vulkan-async-transfer=yes
- vulkan-queue-count=1
- vd-lavc-dr=yes
- hwdec=auto # enable best HW decoder; turn off for software decoding
- 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
- ######
- # UI #
- ######
- border=no # hide the window title bar
- macos-title-bar-material=dark
- 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
- cursor-autohide=1000 # autohide the curser after 1s
- geometry=3840x2160 # force 4k resolution output from on Macs, rather than using MacOS upscaling
- # fullscreen = yes # start in fullscreen mode by default
- ############
- # Playback #
- ############
- deinterlace=no # global reset of deinterlacing to off
- ##############
- # 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
- ##########
- # Dither #
- ##########
- dither-depth=auto
- temporal-dither=yes
- # dither=error-diffusion # preferable... mpv will fallback on fruit if compute shaders are not supported
- dither=fruit
- #############
- # Debanding #
- #############
- deband=yes # enabled by default
- deband-iterations=4 # deband steps
- deband-threshold=48 # deband strength
- deband-range=16 # deband range
- deband-grain=48 # dynamic grain: set to "0" if using the static grain shader
- #############
- # Subtitles #
- #############
- blend-subtitles=yes
- #########################
- # Motion Interpolation #
- #########################
- 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
- #############################################################
- # 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=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]
- ###################################
- # Protocol Specific Configuration #
- ###################################
- [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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement