Video

~/.config/mpv/mpv.conf

Rina Kawakita 2020. 1. 8. 18:31

~/.config/mpv/mpv.conf

# vim: syntax=config
###############################################################################
# Mpv --version    : mpv 0.28.0
# FFmpeg -version  : 3.4.2
#
# Write your default config options here ! : ~/.config/mpv/mpv.conf
# mpv manual manual link : http://mpv.io/manual/master/ or $ man mpv
#
# last modified : 2018.08.11
# by nietz

#target-prim=bt.2020
#target-trc=pq
#tone-mapping=mobius
###############################################################################

### Default config  ###########################################################
use-filedir-conf=yes
# load config file from file directory, useful for overriding ass styles for
# entire series

#prefetch-playlist=yes

#save-position-on-quit
# Always  save the current playback position on quit. When this file is played
# again later, the player               will seek to the old playback position
# on start. This does not happen  if  playback  of  a  file  is stopped in any
# other way than quitting. For example, going to the next file in the playlist
# will not save the position, and start playback at beginning the next time the
# file is played. This behavior is disabled by default, but is always available
# when quitting the player with Shift+Q.

video-output-levels=full
# RGB color levels used with YUV  to  RGB  conversion.  Normally,  output
# devices  such as PC monitors use full range color levels. However, some
# TVs and video monitors expect studio RGB levels. Providing  full  range
# output  to  a  device  expecting  studio level input results in crushed
# blacks and whites, the reverse in dim gray blacks and dim whites.
# Available color ranges are: auto, limited, full

#How the player synchronizes audio and video.
#video-sync=display-resample
video-sync=audio
# If  you use this option, you usually want to set it to display-resample
# to enable a timing mode that tries to not skip or  repeat  frames  when
# for example playing 24fps video on a 24Hz screen.
# 
# The  modes starting with display- try to output video frames completely
# synchronously to the  display,  using  the  detected  display  vertical
# refresh  rate  as  a hint how fast frames will be displayed on average.
# These modes change video speed  slightly  to  match  the  display.  See
# --video-sync-...   options for fine tuning. The robustness of this mode
# is further reduced by making a some idealized  assumptions,  which  may
# not  always  apply  in  reality.  Behavior can depend on the VO and the
# system's video and audio drivers.  Media files must use constant  fram‐
# erate.  Section-wise VFR might work as well with some container formats
# (but not e.g. mkv). If the sync code detects severe A/V desync, or  the
# framerate cannot be detected, the player automatically reverts to audio
# mode for some time or permanently. These modes  also  require  a  vsync
# blocked   presentation   mode.   For   OpenGL,   this   translates   to
# --opengl-swapinterval=1.    For    Vulkan,     it     translates     to
# --vulkan-swap-mode=fifo (or fifo-relaxed).
# 
# The modes with desync in their names do not attempt to keep audio/video
# in sync. They will slowly (or quickly) desync, until e.g. the next seek
# happens. These modes are meant for testing, not serious use.
# 
# audio  Time  video  frames  to  audio.  This  is  the most robust mode,
#        because the player doesn't have to assume anything about how the
#        display  behaves.  The disadvantage is that it can lead to occa‐
#        sional frame drops or repeats. If audio is disabled,  this  uses
#        the system clock. This is the default mode.
# 
# display-resample
#        Resample  audio  to  match the video. This mode will also try to
#        adjust audio speed to compensate for other drift.   (This  means
#        it  will  play  the  audio  at a different speed every once in a
#        while to reduce the A/V difference.)
# 
# display-resample-vdrop
#        Resample audio to match the video. Drop video frames to  compen‐
#        sate for drift.
# 
# display-resample-desync
#        Like the previous mode, but no A/V compensation.
# 
# display-vdrop
#        Drop  or  repeat  video  frames  to  compensate desyncing video.
#        (Although it should have the same effects as audio,  the  imple‐
#        mentation is very different.)
# 
# display-adrop
#        Drop  or  repeat  audio  data to compensate desyncing video. See
#        --video-sync-adrop-size. This mode will cause severe audio arti‐
#        facts if the real monitor refresh rate is too different from the
#        reported or forced rate.
# 
# display-desync
#        Sync video to display, and let audio play on its own.
# 
# desync Sync video according to system clock, and let audio play on  its
#        own.
 
#hwdec=vaapi
# 하드웨어 가속 옵션 
# vaapi : Intel,  AMD 독점드라이버 
# vdpau : NVIDIA, AMD Radeon 오픈소스 드라이버
#
# --hwdec=
# Specify the hardware video decoding API that should be used if possible.
# Whether hardware decoding is actually done depends on the video codec. If
# hardware decoding is not possible, mpv will fall back on software decoding.
#
#  can be one of the following:
# no: always use software decoding (default) 
# auto: see below 
# vdpau: requires --vo=vdpau or --vo=opengl (Linux only) 
# vaapi: requires --vo=opengl or --vo=vaapi (Linux only) 
# vaapi-copy: copies video back into system RAM (Linux with Intel GPUs only) 
# videotoolbox: requires --vo=opengl (OS X 10.8 and up only) 
# dxva2-copy: copies video back to system RAM (Windows only) 
# rpi: requires --vo=rpi (Raspberry Pi only - default if available) 
#
# auto tries to automatically enable hardware decoding using the first
# available method. This still depends what VO you are using. For example, if
# you are not using --vo=vdpau or --vo=opengl, vdpau decoding will never be
# enabled. Also note that if the first found method doesn't actually work, it
# will always fall back to software decoding, instead of trying the next method
# (might matter on some Linux systems).
#
# The vaapi mode, if used with --vo=opengl, requires Mesa 11 and most likely
# works with Intel GPUs only. It also requires the opengl EGL backend
# (automatically used if available). You can also try the old GLX backend by
# forcing it with --vo=opengl:backend=x11, but the vaapi/GLX interop is said to
# be slower than vaapi-copy.
#
# The vaapi-copy mode allows you to use vaapi with any VO. Because this copies
# the decoded video back to system RAM, it's likely less efficient than the
# vaapi mode.
#
# Note:
# When using this switch, hardware decoding is still only done for some codecs.
# See --hwdec-codecs to enable hardware decoding for more codecs.

## Deprecated
#vo=opengl:backend=drm-egl,drm,opengl-hq:interpolation
#vo=opengl:interpolation:tscale=sinc:tscale-clamp=yes,opengl-backend=drm,drm,xv
#vo=opengl:backend=drm-egl,drm,opengl:interpolation:tscale=sinc:tscale-clamp=yes
#vo=opengl:backend=drm-egl,drm,opengl-hq:scale=ewa_lanczossharp:scale-antiring=1.0:interpolation
# May help performance
#opengl-pbo
#vo=opengl-hq:deband=no:interpolation:tscale=sinc:tscale-clamp=yes,opengl-backend=drm,drm,xv

#profile=opengl-hq
#profile-desc=cond:is_laptop() and get('container-fps', 0) >= 59
#deband=no
#interpolation=yes
#tscale=sinc         # The filter used for interpolating the temporal axis (frames). --tscale=help
#tscale-clamp=yes
#scale=bilinear
#cscale=bilinear
# Time-scale interpolation (a.k.a. smoothmotion)
#interpolation
#tscale=sinc  # $ mpv --tscale=help for possible options
#tscale-clamp

vo=drm,gpu,tct
# 비디오 출력 드라이버
# values :
# xv (X11 only)
# x11 (X11 only)
# vdpau (X11 only)
# direct3d_shaders (Windows only)
# direct3d (Windows only)
# opengl
# opengl-hq
# sdl
# vaapi
# null
# caca
# image
# wayland (Wayland only)
# opengl-cb
# rpi (Raspberry Pi)
# drm (Direct Rendering Manager)
#
# vo=vaapi 는 인텔만 가능
# Intel VA API video output driver with support for hardware decoding. Note
# that there is absolutely no reason to use this, other than wanting to use
# hardware decoding to save power on laptops, or possibly preventing video
# tearing with some setups.
#
# Note:
# This driver is for compatibility with crappy systems. You can use vaapi
# hardware decoding with --vo=opengl too.
# vo는 opengl 계열로 설정하는 것이 화질상 좋다는 결론
#
#vo=opengl
#vo="opengl-hq" # Requires at least OpenGL 2.1.
#vo="opengl-cb"
#vo="opengl:scale=spline36:scale-down=mitchell:dither-depth=auto:fbo-format=rgb32f:fancy-downscaling:sigmoid-upscaling,xv"
#vo="opengl:scale=spline36:dscale=mitchell:dither-depth=auto:fbo-format=rgb32f:fancy-downscaling:sigmoid-upscaling,xv"
#
# Note :
# that some cheaper LCDs do dithering that gravely interferes with 
# opengl's dithering. Disabling dithering with dither-depth=no helps.
#
# Unlike opengl, opengl-hq makes use of FBOs by default. Sometimes you can 
# achieve better quality or performance by changing the fbo-format suboption to
# rgb16f, rgb32f or rgb. Known problems include Mesa/Intel not accepting rgb16,
# Mesa sometimes not being compiled with float texture support, and some OS X 
# setups being very slow with rgb16 but fast with rgb32f.
# $ mpv -vo=opengl:scale=help

#hwdec-codecs="h264,mpeg2video" 
#hwdec-codecs="all"
# all=하드웨어 가속 코덱 가능한거 전부

#deinterlace="auto" 
# values : auto, yes, no
# 재생시 deinterlace 토글 단축키 : D (shift+d)
# yes로 놓았을시 하드웨어 가속 옵션이 no(꺼져 있으면 있으면,
# yadif 소프트웨어 디인터레이스 필터가 적용
# yes로 놓앗을시 하드웨어 가속 옵션이 껴져 있으면 해당 카드에 맞는
# 하드웨어 디인터레이스 필터가 적용된다.
# * vdpau 가속일 경우, 하드웨어 디인터레이스 적용방법 예시
# --vf-defaults=vdpaupp:deint-mode=temporal
# or 
# --vo=vdpau:deint-mode=temporal
#
# --deinterlace=<yes|no|auto>
# Enable or disable interlacing (default: auto, which usually means no).
# Interlaced video shows ugly comb-like artifacts, which are visible on fast
# movement. Enabling this typically inserts the yadif video filter in order to
# deinterlace the video, or lets the video output apply deinterlacing if
# supported.
#
# This behaves exactly like the deinterlace input property (usually mapped to
# Shift+D).
#
# auto is a technicality. Strictly speaking, the default for this option is
# deinterlacing disabled, but the auto case is needed if yadif was added to the
# filter chain manually with --vf. Then the core shouldn't disable
# deinterlacing just because the --deinterlace was not set.
#
# --field-dominance=<auto|top|bottom>
# Set first field for interlaced content. Useful for deinterlacers that double
# the framerate: --vf=yadif=field and --vo=vdpau:deint.
#
# auto:
# (default) If the decoder does not export the appropriate information, it
# falls back on top (top field first). 
#
# top:
# top field first 
#
# bottom:
# bottom field first 
#
# Note:
# Setting either top or bottom will flag all frames as interlaced.
#
# * vaapi 가속일 경우, 하드웨어 디인터레이스 적용방법 예시
# Select deinterlacing algorithm. Note that by default deinterlacing is
# initially always off, and needs to be enabled with the D key (default key
# binding for cycle deinterlace).
# This option doesn't apply if libva supports video post processing (vpp). In
# this case, the default for deint-mode is no, and enabling deinterlacing via
# user interaction using the methods mentioned above actually inserts the vavpp
# video filter. If vpp is not actually supported with the libva backend in use,
# you can use this option to forcibly enable VO based deinterlacing.
# --vf-defaults=vavpp:deint-mode=bob  ????

#framedrop="vo" 
# Skip displaying some frames to maintain A/V sync on slow systems, or playing
# high framerate video on video outputs that have an upper framerate limit.
#
# The argument selects the drop methods, and can be one of the following:
# 
# Disable any framedropping.
# 
# Drop late frames on video output (default).
# This still decodes and filters all frames, but doesn't render them on the VO.
# It tries to query the display FPS (X11 only, not correct on multi-monitor
# systems), or assumes infinite display FPS if that fails. Drops are indicated
# in the terminal status line as D: field. If the decoder is too slow, in
# theory all frames would have to be dropped (because all frames are too late)
# - to avoid this, frame dropping stops if the effective framerate is below 10
# FPS.
# 
# Old, decoder-based framedrop mode. (This is the same as
# --framedrop=yes in mpv 0.5.x and before.) This tells the decoder to skip
# frames (unless they are needed to decode future frames). May help with slow
# systems, but can produce unwatchable choppy output, or even freeze the
# display completely. Not recommended. The --vd-lavc-framedrop option controls
# what frames to drop.
# <decoder+vo>
# Enable both modes. Not recommended.
#
# Note:
# --vo=vdpau has its own code for the vo framedrop mode. Slight differences to
# other VOs are possible.
#
# 디코딩 성능이 딸려서 싱크 에러 뜰경우, 허용으로 바꾼다 A-V: -0.000 0이거나 
# 0에 가까운 값이어야 한다 이 수치가 증가하면 프레임 드롭이 발생 A/V 싱크 에러,
# 재생시 문제가 발생할 소지가 있다(avsync property)


### Youtube-dl ################################################################
hls-bitrate=max                             # use max quality for HLS streams
ytdl="yes"                                  # yutube-dl
#ytdl-format="bestvideo+bestaudio"          # default=best => 720p 
#ytdl-format=bestvideo[height<=?1080][vcodec!=vp9]+bestaudio/best       # for Haswall hardware decoding
#ytdl-format="((bestvideo[vcodec^=vp9]/bestvideo)+(bestaudio[acodec=opus]/bestaudio[acodec=vorbis]/bestaudio[acodec=aac]/bestaudio))/best"       # best quality open codecs (VP9 and Opus),
ytdl-format="bestvideo[height<=?2160][fps<=?60][protocol!=http_dash_segments][ext=mp4]+(bestaudio[acodec=opus]/bestaudio[acodec=vorbis]/bestaudio[acodec=aac]/bestaudio/bestaudio[ext=webm])/bestvideo+bestaudio/best[ext=mp4]/best"
#ytdl-raw-options=format="[protocol!=http_dash_segments][protocol!=rtmp]"    # 720p
#
# $ youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=webm]/best[ext=mp4]/best' --all-subs '유투브 플레이리스트 URL'
# $ youtube-dl -F URL 로 포멧코드 확인 후, $ mpv --ytdl-format=[포맷코드] url
# 보통의 video:1080p mp4,  Audio:128k m4a 인경우
# $ mpv --ytdl-format=137+140 https://www.youtube.com/watch?v=q6f-LLM1H6U
#
# 실사용 예시 
# 1. 해당 youtube url 클립보드로 복사
# 2. $ mpv $(xclip -o)
# 3. "mpv $(xclip -o)" 명령줄을 윈도우 매니저의 단축키 설정을 통해 
# 특정 키로 키바인딩
#
# ex) xmonad
# ManageHook
#   className =? mpv   --> doRectFloat (W.RationalRect 0.759 0.758 0.24 0.24)
#   or
# Layout
#   circle
# Keybinding
# ((modMask x, xK_y), submap . M.fromList $
#   [.
#     ((0, xK_u), spawn "mpv $(xclip -o)") 
#   ]


### Audio #####################################################################
#ao=pulse,pulse,oss 
pulse-latency-hacks
# 오디오 출력 드라이버 pulse, alsa, oss 순으로

# If this is enabled (default), playing with a speed different from normal automatically  inserts  the
# scaletempo audio filter. For details, see audio filter section.
audio-pitch-correction=no   # default: yes

# Example for ALSA
#
#   MPlayer  and mplayer2 required you to replace any ',' with '.' and any ':' with '=' in the
#   ALSA device name. For example, to use the device named dmix:default, you had to do:
#       -ao alsa:device=dmix=default
#
#   In mpv you could instead use:
#       --audio-device=alsa/dmix:defaul
audio-device=auto

# --audio-channels=<auto-safe|auto|layouts>
#   Control  which  audio channels are output (e.g. surround vs. stereo). There are the following possi‐
#    bilities:
audio-channels=auto

# --audio-file-auto=<no|exact|fuzzy|all>, --no-audio-file-auto
#       Load additional audio files matching the video filename. The parameter specifies how external 
#       audio files are matched. exact is enabled by default.
audio-file-auto=fuzzy


alang="ko,kor,en,eng,jp,jpn,und"

#mute=yes  #소리 끄고 시작
mute=no 
volume=100               #softvol="yes" is deprecated
volume-max=300          #softvol-max=300 is deprecated
#볼륨 증폭


### Window  ###################################################################
#title="Filename: ${filename}" 
# Set the window title(윈도우 창이름 해당 형태로 변경)
# shows the filename of the current file when pressing the i key.
# [Warning] There is a danger of this causing significant CPU usage, 
# depending on the properties used. Changing the window title is often a slow
# operation, and if the title changes every frame, playback can be ruined.

screen=2
fs-screen=all
# --fs-screen=<all|current|0-32>
# 듀얼 모니터인 경우 전체화면 F 키 누르면 2개 모니터에 걸친 전체 화면
# Note (X11)
# This option does works properly only with window managers which understand the
# EWMH _NET_WM_FULLSCREEN_MONITORS hint.
# 우분투에선  unity(gnome compiz), xmonad 윈도우 매니저에서 동작 확인함
# --screen=<default|0-32>
# In multi-monitor configurations (i.e. a single desktop that spans across
# multiple displays), this option tells mpv which screen to display the video
# on.
# Note (X11)
# This option does not work properly with all window managers. In these cases,
# you can try to use --geometry to position the window explicitly. It's also
# possible that the window manager provides native features to control which
# screens application windows should use.

ontop
# 다른 윈도우 창들보다 더 위에

border="no"
# disable the standard window decorations 

#autofit-larger="67%x75%" 
## 창이 화면에 해당 크기 이상으로 커지지 않게 설정.전체화면 제외 


cursor-autohide=1000
#      --cursor-autohide=<number|no|always>
#             Make mouse cursor automatically hide after given number of 
# milliseconds.  no will disable cursor autohide. always means
# the cursor will  stay hidden.

#cursor-autohide-fs-only="yes"
# fullscreen에서만 마우스 커서 숨기기

#fixed-vo="no"

no-keepaspect
#keepaspect
# 윈도우 창크기 변경시  위아래,좌우로 꽉 차게 풀로 알아서 늘려 준다 

#keepaspect-window

#monitoraspect=16:9

stop-screensaver="yes"

x11-netwm="auto"

# --x11-bypass-compositor=<yes|no|fs-only|never>
#              If set to yes, then ask the compositor to unredirect the mpv window (default: fs-only). 
#              This uses the _NET_WM_BYPASS_COMPOSITOR hint.
#
#              fs-only asks the window manager to disable the compositor only in fullscreen mode.
#
#              no sets _NET_WM_BYPASS_COMPOSITOR to 0, which is the default value as declared 
#              by the EWMH specification, i.e. no change is done.
#
#              never asks the window manager to never disable the compositor.
x11-bypass-compositor=no


#geometry=3840x1080+0+0
#geometry=99%x95%
geometry=72%x72%


### OSD & Subtitles ###########################################################
demuxer-mkv-subtitle-preroll=yes
# try to correctly show embedded subs when seeking

#sub-codepage="utf8:cp949"
sub-codepage="cp949"
# utf8 형식으로 자말 로딩 시도하고, 없으면 cp949(EUC-KR)형식의 자막 로딩을 시도
#sub-codepage="enca:kr:cp949" 
# enca:한국 인코딩셋으로 추정 시도. 실패하면 명시된 cp949로 fall back
#sub-codepage= "enca"  
# universal detection 시도, 실패하면 UTF-8로 fall back

slang="kor,ko,jp,jpn,en,eng,und"        # kor:embedded,  ko:enternal
# Specify  a  priority  list  of subtitle languages to use. Different container
# formats employ different language codes. DVDs use ISO 639-1 two
# letter language codes, Matroska uses ISO 639-2 three letter language codes 
# while OGM uses a free-form identifier. See also --sid.

sid=auto
# --sid=<ID|auto|no>
# Display the subtitle stream specified by . auto selects the default,
# no disables subtitles

sub-scale="1"
# 자막 폰트 사이즈
# values : <0-100> (default 1)
# Note : This affects ASS subtitles as well, and may lead to incorrect subtitle
# rendering. Use with care, or use --sub-text-font-size instead.

embeddedfonts="yes"
# --no-embeddedfonts
# Use fonts embedded in Matroska container files and ASS scripts
# (default: enabled). These fonts can be used for SSA/ASS subtitle rendering.

sub-pos="95"
# <0-100> 자막 위치 The value is the vertical position of the subtitle in % of
# the screen height.
# Note : 
# This affects ASS subtitles as well, and may lead to incorrect subtitle 
# rendering. Use with care, or use --sub-text-margin-y instead.

sub-ass=yes
# ass 자막 사용

# disble retarded VSFilter compatibility
sub-ass-force-style=Kerning=yes
sub-ass-force-margins

sub-use-margins
# Enables placing toptitles and subtitles in black borders when they are 
# available, if the subtitles are in a plain text format
# (or ASS if --sub-ass-style-override is set high enough).
#
# Default: yes.
#
# Renamed  from  --sub-ass-use-margins.  To  place  ASS  subtitles  in  the  borders  too 
# (like  the old option did), also add --sub-ass-force-margins.

sub-auto="fuzzy"
#sub-auto="all"
# 자막 로딩 자동 설정 values : no, exact(default), fuzzy, all
# --sub-auto=<no|exact|fuzzy|all>, --no-sub-auto
#       Load additional subtitle files matching the video filename. The
# parameter specifies how external subtitle files are matched. exact is enabled
#       by default.
#
#       no     Don't automatically load external subtitle files.
#
#       exact  Load the media filename with subtitle file extension (default).
#
#       fuzzy  Load all subs containing media filename.
#
#       all    Load all subs in the current and --sub-paths directories.
#

sub-file-paths=ass:srt:sub:subs:subtitles
# Specify  extra  directories to search for subtitles matching the video.
# Multiple directories can be separated by ":" (";" on  Windows).   Paths
# can be relative or absolute. Relative paths are interpreted relative to
# video file directory.  If the file is a URL, only  absolute  paths  and
# sub configuration subdirectory will be scanned.
# 
#    Example
# 
#           Assuming   that   /path/to/video/video.avi   is   played  and
#           --sub-file-paths=sub:subtitles is specified, mpv searches for
#           subtitle files in these directories:
# 
#    · /path/to/video/
# 
#    · /path/to/video/sub/
# 
#    · /path/to/video/subtitles/
# 
#    · the sub configuration subdirectory (usually ~/.config/mpv/sub/)
# 
# This is a list option. See List Options for details.

# 자막 폰트, default is sans-serif
#sub-text-font="/usr/share/fonts/TTF/NanumGothicCoding-Bold.ttf"
#sub-text-font="NanumGothicCoding:style=Bold"
#sub-text-font="NanumGothicBold"
#sub-text-font="NanumGothicCoding-Bold"
#sub-text-font="/usr/share/fonts/TTF/Spoqa Han Sans Bold.ttf"
#sub-text-font="SpoqaHanSansJP"
sub-font="SpoqaHanSans"

sub-bold=yes

sub-blur="0.3" 
# <0..20.0> Gaussian blur factor. 0 means no blur applied (default) 

sub-font-size=100
# sub-scale 중복, 위 sub-scale 설명 참조

# ARGB color format
sub-color='#c0a79a'
sub-shadow-color='#783e57'
sub-shadow-offset=4
#--osd-color=, --sub-text-color=
#       Specify the color used for OSD/unstyled text subtitles.
#
#       The  color  is specified in the form r/g/b, where each color component is specified
#       as number in the range 0.0 to 1.0. It's also possible to specify  the  transparency
#       by  using  r/g/b/a,  where the alpha value 0 means fully transparent, and 1.0 means
#       opaque. If the alpha component is not given, the color is 100% opaque.
#
#       Passing a single number to the option sets the OSD to gray,  and  the  form  gray/a
#       lets you specify alpha additionally.
#
#          Examples
#
#          · --osd-color=1.0/0.0/0.0 set OSD to opaque red
#
#          · --osd-color=1.0/0.0/0.0/0.75 set OSD to opaque red with 75% alpha
#
#          · --osd-color=0.5/0.75 set OSD to 50% gray with 75% alpha
#
#       Alternatively, the color can be specified as a RGB hex triplet in the form #RRGGBB,
#       where each 2-digit group expresses a color value in the range 0 (00) to  255  (FF).
#       For  example,  #FF0000  is red.  This is similar to web colors. Alpha is given with
#       #AARRGGBB.
#
#          Examples
#
#          · --osd-color='#FF0000' set OSD to opaque red
#
#          · --osd-color='#C0808080' set OSD to 50% gray with 75% alpha

#sub-text-border-size="1"
sub-border-size="0"

osc=no
# Do not load the on-screen-controller (default: yes).

osd-duration=2500               # default 1000 ms

#osd-font="NanumGothic:style=Bold"
#osd-font="/usr/share/fonts/TTF/NanumGothicBold.ttf"  
#osd-font="Spoqa Han Sans JP Bold"
#osd-font="NanumGothicBold"  
osd-font="Noto Sans"

# Specify font to use for OSD and for subtitles that do not themselves specify
# a particular font. The default is sans-serif.
# NOTE:
# The --sub-text-font option(and most other --sub-text- option) are ignored
# when ASS-subtitles are renderad, unless the --no-sub-ass option is specified
osd-font-size=30

# BGR color format
#osd-msg1='${time-pos}-${=time-pos} / ${duration} (${percent-pos}%) #${estimated-frame-number} frame\n${osd-ass-cc/0}{\\1c&H725761&}{\\b1} ${osd-sym-cc}${osd-ass-cc/0}{\\1c&H725761&}{\\b1}\t${media-title}\n${osd-ass-cc/0}{\\1c&H573E78&}{\\b1}${osd-sym-cc} Subtitles: ${sid}\n\n${osd-ass-cc/0}{\\1c&H725761&}{\\fs8}${video-params}${osd-ass-cc/0}\n${osd-ass-cc/0}{\\1c&H573E78&}{\\fs12}{\\b1}'
osd-msg2='${time-pos}-${=time-pos} / ${duration} (${percent-pos}%) #${estimated-frame-number} frame\n${osd-ass-cc/0}{\\1c&H725761&}{\\b1} ${osd-sym-cc}${osd-ass-cc/0}{\\1c&H725761&}{\\b1}\t${media-title}\nFilename: ${filename}\n${osd-ass-cc/0}{\\1c&H573E78&}{\\b1}${osd-sym-cc} Subtitles: ${sid}\n\n${osd-sym-cc}\tTrack List\n${track-list}\n${osd-ass-cc/0}{\\1c&H725761&}{\\b1}{\\1pos(189,6,167,12&}${sub-text}'
#osd-msg3=''

osd-status-msg='${time-pos}-${=time-pos} / ${duration} (${percent-pos}%) #${estimated-frame-number} frame\n${osd-ass-cc/0}{\\1c&H725761&}{\\b1} ${osd-sym-cc}${osd-ass-cc/0}{\\1c&H725761&}{\\b1}\t${media-title}\n ${osd-ass-cc/0}{\\1c&H573E78&}{\\b1}${osd-sym-cc} Subtitles: ${sid}\n ${osd-ass-cc/0}{\\1c&HA3A3A3&}{\\b1}{\\fs10}\n  Resolution: ${osd-ass-cc/0}{\\1c&HFFFFFF&}{\\b1}${?current-vo:${width}x${height}}${osd-ass-cc/0}{\\1c&HA3A3A3&}{\\b1}, Name of Displays: ${osd-ass-cc/0}{\\1c&HFFFFFF&}{\\b1}${display-names}${osd-ass-cc/0}{\\1c&HA3A3A3&}{\\b1}, File Size: ${osd-ass-cc/0}{\\1c&HFFFFFF&}{\\b1}${file-size}\n ${osd-ass-cc/0}{\\1c&HA3A3A3&}{\\b1}  Format: ${osd-ass-cc/0}{\\1c&HFFFFFF&}{\\b1}${file-format}(video: ${video-format}${?audio-codec-name:, audio: ${audio-codec-name}})${osd-ass-cc/0}{\\1c&HA3A3A3&}{\\b1}, Pixel Format: ${osd-ass-cc/0}{\\1c&HFFFFFF&}{\\b1}${video-params/pixelformat} ${video-params/average-bpp}bpp ${?video-params/plane-depth:${video-params/plane-depth}bit}\n ${osd-ass-cc/0}{\\1c&HA3A3A3&}{\\b1}  Colormatirx: ${osd-ass-cc/0}{\\1c&HFFFFFF&}{\\b1}${colormatrix}${osd-ass-cc/0}{\\1c&HA3A3A3&}{\\b1}, Primaries: ${osd-ass-cc/0}{\\1c&HFFFFFF&}{\\b1}${colormatrix-primaries}${osd-ass-cc/0}{\\1c&HA3A3A3&}{\\b1}, Gamma: ${osd-ass-cc/0}{\\1c&HFFFFFF&}{\\b1}${video-params/gamma}${osd-ass-cc/0}{\\1c&HA3A3A3&}{\\b1}\n  Input-Range: ${osd-ass-cc/0}{\\1c&HFFFFFF&}{\\b1}${colormatrix-input-range}${osd-ass-cc/0}{\\1c&HA3A3A3&}{\\b1}, Output-Range: ${osd-ass-cc/0}{\\1c&HFFFFFF&}{\\b1}${video-output-levels}\n\n${osd-ass-cc/0}{\\1c&HA3A3A3&}{\\b1}  Hwdec: ${osd-ass-cc/0}{\\1c&H725761&}{\\b1}${hwdec} ${osd-ass-cc/0}{\\1c&HA3A3A3&}{\\b1}| Hwdec-Current: ${osd-ass-cc/0}{\\1c&H725761&}{\\b1}${hwdec-current} ${osd-ass-cc/0}{\\1c&HA3A3A3&}{\\b1}| Hwdec-Interop: ${osd-ass-cc/0}{\\1c&H725761&}{\\b1}${hwdec-interop} ${osd-ass-cc/0}{\\1c&HA3A3A3&}{\\b1}| Auto Deinterlace: ${osd-ass-cc/0}{\\1c&H725761&}{\\b1}${deinterlace} ${osd-ass-cc/0}{\\1c&HA3A3A3&}{\\b1}| Fullscreen: ${osd-ass-cc/0}{\\1c&H725761&}{\\b1}${fullscreen} ${osd-ass-cc/0}{\\1c&HA3A3A3&}{\\b1}| Framedrop: ${osd-ass-cc/0}{\\1c&H725761&}{\\b1}${framedrop}\n${osd-ass-cc/0}{\\1c&HA3A3A3&}{\\b1}  Video Codec: ${osd-ass-cc/0}{\\1c&H725761&}{\\b1}${video-codec} \n ${osd-ass-cc/0}{\\1c&HA3A3A3&}{\\b1}  Audio Codec: ${osd-ass-cc/0}{\\1c&H725761&}{\\b1}${?audio-codec:${audio-codec}}\n${osd-ass-cc/0}{\\1c&HA3A3A3&}{\\b1}  Video-bitrate: ${osd-ass-cc/0}{\\1c&H725761&}{\\b1}${?video-bitrate:${video-bitrate}}${osd-ass-cc/0}{\\1c&HA3A3A3&}{\\b1}, Audio-bitrate: ${osd-ass-cc/0}{\\1c&H725761&}{\\b1}${?audio-bitrate:${audio-bitrate}} ${?audio-params/channels:(${audio-params/channels})}\n${osd-ass-cc/0}{\\1c&HA3A3A3&}{\\b1}  Container FPS: ${osd-ass-cc/0}{\\1c&H725761&}{\\b1}${container-fps} fps\n${osd-ass-cc/0}{\\1c&HA3A3A3&}{\\b1}  Estimated/measured FPS: ${osd-ass-cc/0}{\\1c&H725761&}{\\b1}${estimated-vf-fps} fps\n${osd-ass-cc/0}{\\1c&HA3A3A3&}{\\b1}  The refresh rate of the current display: ${osd-ass-cc/0}{\\1c&H725761&}{\\b1}${?estimated-display-fps:${estimated-display-fps}} / ${display-fps} fps\n${osd-ass-cc/0}{\\1c&HA3A3A3&}{\\b1}  A/V synchronizaion difference: ${osd-ass-cc/0}{\\1c&H725761&}{\\b1}${?avsync:${avsync}} \n${osd-ass-cc/0}{\\1c&HA3A3A3&}{\\b1}  Total A-V sync correction done: ${osd-ass-cc/0}{\\1c&H725761&}{\\b1}${?total-avsync-change:${total-avsync-change}}\n${osd-ass-cc/0}{\\1c&HA3A3A3&}{\\b1}  ${?current-vo:Decoder Frame Dropped / Frame Dropped (by VO) / VO Delayed Frame: ${osd-ass-cc/0}{\\1c&H725761&}{\\b1}${?decoder-frame-drop-count: ${decoder-frame-drop-count}} / ${?frame-drop-count:${frame-drop-count}} / ${?vo-delayed-frame-count:${vo-delayed-frame-count}}${osd-ass-cc/0}{\\1c&H573E57&}{\\b1}{\\fs12}\n\n${osd-ass-cc/0}{\\1c&H573E57&}{\\b1}  Volume: ${volume}%, Contrast: ${contrast}, Brightness: ${brightness}, Gamma: ${gamma}, Saturation: ${saturation}, Hue: ${hue} \n${osd-ass-cc/0}{\\1c&H573E57&}{\\b1}  Output Driver: ${?current-vo:VO [${current-vo}]} ${?current-ao:, AO [${current-ao}]}{\\1c&H573E57&}{\\b1} {osd-ass-cc/0}{\\1c&H009aa7c0&}{\\b1}{\\an7}\n\n  Mpv version: ${mpv-version}\n  FFmpeg version: ${ffmpeg-version}'

#osd-status-msg='${media-title} ${osd-sym-cc} Current Pos ${time-pos}-${=time-pos} / ${duration} (${percent-pos}%) #${estimated-frame-number} frame \n${osd-sym-cc} Resolution: ${width}x${height} | Name of Displays: ${display-names}\n${osd-sym-cc} format: ${file-format}(video: ${video-format}, audio: ${audio-codec-name}) | pixel format: ${video-params/pixelformat} | ${video-params/average-bpp}bpp ${video-params/plane-depth}bit\n${osd-sym-cc} colormatirx: ${colormatrix}, primaries: ${colormatrix-primaries}, gamma: ${video-params/gamma}, input-range: ${colormatrix-input-range}, output-range: ${colormatrix-output-range} \n\n@ hwdec: ${hwdec} | hwdec-active: ${hwdec-active} | deinterlace: ${deinterlace} | fullscreen: ${fullscreen} | framedrop: ${framedrop} | mute: ${mute}\n\n| Video-bitrate: ${video-bitrate}, Audio-bitrate: ${audio-bitrate} \n| Container FPS: ${fps} fps\n| Estimated/measured FPS: ${estimated-vf-fps} fps\n| The refresh rate of the current display: ${display-fps} fps\n| A/V synchronizaion difference: ${avsync} \n| Total A-V sync correction done: ${total-avsync-change}'

#osd-status-msg='${media-title}\n${osd-sym-cc} format: ${file-format}(video:${video-format},audio:${audio-format}) ${video-params/average-bpp}bpp ${video-params/plane-depth}bit \n${osd-sym-cc} colormatirx:${colormatrix} input-range:${colormatrix-input-range} output-range:${colormatrix-output-range} primaries:${colormatrix-primaries}\n\n@ pixel format: | hwdec: ${hwdec} | deinterlace: ${deinterlace} | fullscreen: ${fullscreen} | framderop: ${framedrop}\n${video-params}\n\n| A/V synchronizaion difference: ${avsync} \n| Total A-V sync correction done: ${total-avsync-change}'

#osd-status-msg='${time-pos}-${=time-pos} / ${duration} (${percent-pos}%) #${estimated-frame-number} frame\n${osd-ass-cc/0}{\\1c&H725761&}{\\b1} ${osd-sym-cc}${osd-ass-cc/0}{\\1c&H725761&}{\\b1}\t${media-title}\n${osd-ass-cc/0}{\\1c&H573E78&}{\\b1}${osd-sym-cc} Subtitles: ${sid}\n\n${osd-ass-cc/0}{\\1c&H725761&}{\\fs8}${video-params}${osd-ass-cc/0}\n${osd-ass-cc/0}{\\1c&H573E78&}{\\fs12}{\\b1}'

osd-playing-msg='file: ${filename}'

osd-level=1    # =1

#osd-border-size=1
osd-border-size=0

# make the OSD progress bar be big and bottom like in mplayer and mplayer2
osd-bar-align-y=1
osd-bar-w=100
osd-bar-h=3

# ARGB color format
#osd-color='#CCFFFFFF'
osd-color='#CC783E57'
osd-border-color='#99000000'
#osd-back-color='#97312E39'

# Show  OSD  times with fractions of seconds (in millisecond precision). Useful to see the exact time‐
# stamp of a video frame.
osd-fractions=yes


### Screenshot ################################################################
screenshot-format=jpg
# Set the image file type used for saving screenshots.
# Available choices:
# png: PNG 
# ppm: PPM 
# pgm: PGM 
# pgmyuv: PGM with YV12 pixel format 
# tga: TARGA 
# jpg: JPEG (default) 
# jpeg: JPEG (same as jpg, but with .jpeg file ending) 

screenshot-tag-colorspace=yes
# Tag screenshots with the appropriate colorspace.
# Note that not all formats are supported.
# Default: no.

screenshot-high-bit-depth=yes
# --screenshot-high-bit-depth=<yes|no>
# If possible, write screenshots with a bit
# depth similar to the source video (default: yes). This is interesting in
# particular for PNG, as this sometimes triggers writing 16 bit PNGs with huge
# file sizes.

screenshot-template="/home/nietz/screenshot/mpv_screenshot/%f (%P) #%n"
#screenshot-template="/home/nietz/screenshot/mpv_screenshot/%f (%P) #%n %tY-%tm-%td-%tH%tM%tS"
# http://mpv.io/manual/master/#screenshot
# 저장위치/파일이름(혹장자포함)_재생시점(시-분-초-마이크로초)
# -#0001~0012순번째_캡쳐시간(년-월-일-시분초)

#screenshot-directory="/home/nietz/screenshot/mpv_screenshot/"
# PSEUDO GUI MODE 에서만 적용되는 듯
# This mode implicitly adds --profile=pseudo-gui to the command line, with the
# pseudo-gui profile being predefined with the following contents:
# [pseudo-gui]
# terminal=no
# force-window=yes
# idle=once
# screenshot-directory=~~desktop/

screenshot-jpeg-quality=100
# Set the JPEG quality level. Higher means better quality. The default is 90.

#screenshot-jpeg-source-chroma=yes
# Write JPEG files with the same chroma subsampling as the video (default:yes).
# If disabled, the libjpeg default is used.

screenshot-png-compression=0
# Set the PNG compression level. Higher means better compression. This will
# affect the file size of the written screenshot file and the time it takes to
# write a screenshot. Too high compression might occupy enough CPU time to
# interrupt playback. The default is 7.
# default=7 최대=9 수치가 높을수록 고압축 CPU 많이 씀
# 0=무압축(용량은 커지나 안정적인 캡쳐)

screenshot-png-filter=0 
# Set the filter applied prior to PNG compression. 0 is none, 1 is "sub", 2 is
# "up", 3 is "average", 4 is "Paeth", and 5 is "mixed". This affects the level
# of compression that can be achieved. For most images, "mixed" achieves the
# best compression ratio, hence it is the default.


### Network ####################################################################
cache=auto                          #네트워크 파일을 재생을 위한 default : 25000 kb
#cache=yes
#cache-default=8000000                   # size in KB
#cache-backbuffer=25000                  # size in KB
#cache-initial=0                         # start playback when your cache is filled up with x kB
#cache-secs=10                           # how many seconds of audio/video to prefetch if the cache is active
load-unsafe-playlists


### SVP4 #######################################################################
input-ipc-server=/tmp/mpvsocket
#vo=opengl-hq
vo=drm,gpu,tct
#profile=gpu-hq
#vo=opengl
#hwdec=no
#hwdec=vaapi
#hwdec=auto-copy
hwdec=vaapi-copy
#hwdec-codecs=all
hr-seek-framedrop=no

#vf=yadif=mode=frame:interlaced-only=yes,vapoursynth=~/.config/mpv/vapoursynth/svp4.vpy,vapoursynth=~/.config/mpv/vapoursynth/f3k_db.vpy 
#
#vf=yadif=mode=frame:interlaced-only=yes,vapoursynth=~/.config/mpv/vapoursynth/mvtools.vpy,vapoursynth=~/.config/mpv/vapoursynth/flash3kyuu.vpy 
#
#vf=yadif=mode=frame:interlaced-only=yes,vapoursynth=~/.config/mpv/vapoursynth/f3k_db.vpy,vapoursynth=~/.config/mpv/vapoursynth/mvtools.vpy
#
#vf=yadif=mode=frame:interlaced-only=yes,vapoursynth=/home/nietz/.config/mpv/vapoursynth/mvtools.vpy 

#메인 프로필
vf="lavfi=[bwdif=mode=send_frame:parity=auto:deint=interlaced],vapoursynth=/home/nietz/.config/mpv/vapoursynth/mvtools.vpy"
#vf="vapoursynth=/run/media/nietz/data_01/svp4.py"
#vf="vapoursynth=/home/nietz/.config/mpv/vapoursynth/svp4gpu.vpy"

#
#vf=vapoursynth=/home/nietz/.config/mpv/vapoursynth/svp4.vpy 
#
#vf=yadif=mode=frame:interlaced-only=yes
#
#vf=lavfi=graph=[cropdetect=limit=24:round=2:reset=0],crop=1920:1076:0:4,yadif=mode=frame:interlaced-only=yes,vapoursynth=~/.config/mpv/vapoursynth/mvtools.vpy


### Script #####################################################################
#script-opts=osc-layout=bottombar,osc-seekbarstyle=bar


### Terminal ###################################################################
# Vapoursynth by default shows too many errors, live tv ffmpeg/video too.
msg-level=vapoursynth=fatal,ffmpeg/video=fatal,ffmpeg/demuxer=fatal,osd/libass=fatal,mpv_lastfm=fatal

# Prepend module name to each console message
msg-module=no

# En/Dis-able colorful console output on terminals
msg-color=yes

term-osd-bar=yes

# output some video stats
#term-playing-msg='[원본] Resolution: ${width}x${height}, Framerate: ${container-fps} Hz \n[최종]--> Resoution: ${dwidth}x${dheight}, Framerate: ${estimated-vf-fps} Hz'


### Profile ####################################################################
[svp]
profile-desc="profile for live tv, hardware decoding deinterlace, no vapoursynth"
input-ipc-server=/tmp/mpvsocket
#hwdec=no
hwdec=auto-copy
hwdec-codecs=all
#no-resume-playback
# normal top-level option
fullscreen=no
cache=auto
demuxer-readahead-secs=20
#vo=opengl      # deprecated
vo=drm,gpu
#opengl-es
#vf-clr
interpolation=no
video-sync=audio
tscale=linear        # The filter used for interpolating the temporal axis (frames). --tscale=help
tscale-clamp=0
scale=bilinear
cscale=bilinear

[tv]
profile-desc="profile for live tv, hardware decoding deinterlace, no vapoursynth"
# normal top-level option
fullscreen=no
no-resume-playback
cache=auto
demuxer-readahead-secs=20
profile=opengl-hq
#vo=opengl-hq:interpolation:tscale=sinc:tscale-clamp=yes
#vo=opengl-cb:correct-downscaling
#vo=opengl:scale=ewa_lanczos:scale-radius=16
correct-downscaling
hwdec=vaapi
vf-clr
vf=vavpp=deint=bob

[tvv]
profile-desc="profile for live tv, no hardware decoding, yadif=frame, vapoursynth debanding 60fps"
# normal top-level option
fullscreen=no
no-resume-playback
cache=auto
demuxer-readahead-secs=20
#vo=opengl:interpolation
#vo=opengl-hq:interpolation
#vo=opengl:scale=ewa_lanczos:scale-radius=16
interpolation-threshold=8
hwdec=no
vf-clr
#vf=yadif=mode=frame:interlaced-only=yes,vapoursynth=/home/nietz/.config/mpv/vapoursynth/mvtools.vpy
#vf=yadif=mode=frame:interlaced-only=yes,vapoursynth=/home/nietz/.config/mpv/vapoursynth/svp4tv.vpy,vapoursynth=/home/nietz/.config/mpv/vapoursynth/flash3kyuu.vpy
#vf=yadif=mode=frame:interlaced-only=yes,vapoursynth=/home/nietz/.config/mpv/vapoursynth/svp4tv.vpy
vf=crop=1920:1076:0:4,lavfi=graph="bwdif=mode=send_frame:parity=auto:deint=interlaced",vapoursynth="/home/nietz/.config/mpv/vapoursynth/svp4tv.vpy"

[workmode]
profile-desc="profile for working mode. If hardware accrelation is possible, then on"
#vo=opengl
vf-clr
hwdec=vaapi
osd-status-msg='${time-pos}-${=time-pos} / ${duration} (${percent-pos}%) #${estimated-frame-number} frame\n${osd-ass-cc/0}{\\1c&H725761&}{\\b1} ${osd-sym-cc}${osd-ass-cc/0}{\\1c&H725761&}{\\b1}\t${media-title}\nFilename: ${filename}\n${osd-ass-cc/0}{\\1c&H573E78&}{\\b1}${osd-sym-cc} Subtitles: ${sid}\n\n${osd-sym-cc}\tTrack List\n${track-list}\n${osd-ass-cc/0}{\\1c&H725761&}{\\b1}{\\1pos(189,6,167,12&}${sub-text}'

[mpsyt]
profile-desc="profile for mpsyt. xmonad doIgonre layout"
screen=0
#geometry=556x313+1363+750
#geometry=560x320+1360+742
#geometry=568x320+1352+742
geometry=480x262+1440+802

[high-quality]
profile-desc=cond:is_desktop() and get('width', math.huge) < 3840
scale=ewa_lanczossharp
cscale=ewa_lanczossoft
dscale=mitchell
scale-antiring=0.0      #0.7
cscale-antiring=0.0     #0.7
dither-depth=auto
correct-downscaling=yes
sigmoid-upscaling=yes
deband=yes

[mid-quality]
profile-desc=cond:(is_laptop() and not on_battery() and get('width', math.huge) < 1920) or (is_desktop() and get('width', math.huge) >= 3840)
scale=spline36
cscale=bilinear
dscale=mitchell
scale-antiring=0.0      # 1.0
cscale-antiring=0.0     # 1.0
dither-depth=auto
correct-downscaling=yes
sigmoid-upscaling=yes
deband=yes

[low-quality]
profile-desc=cond:is_laptop() and (on_battery() or get('width', math.huge) >= 1920)
scale=bilinear
cscale=bilinear
dscale=bilinear
scale-antiring=0.0      # 1.0 
cscale-antiring=0.0     # 1.0
dither-depth=no
correct-downscaling=no
sigmoid-upscaling=no
deband=no

[60FPS]
profile-desc=cond:is_laptop() and get('container-fps', 0) >= 59
scale=bilinear
cscale=bilinear

[4K]
profile-desc=cond:get('width', -math.huge) >= 3840
vd-lavc-threads=32

[4K-inverted]
profile-desc=cond:get('width', -math.huge) < 3840
vd-lavc-threads=0

[jjal]
profile-desc="profile for make animated-gif"
# normal top-level option
fullscreen=no
hwdec=no
vf-clr
keepaspect
geometry=
osd-status-msg='${time-pos}-${=time-pos} / ${duration} (${percent-pos}%) #${estimated-frame-number} frame\n${osd-ass-cc/0}{\\1c&H725761&}{\\b1} ${osd-sym-cc}${osd-ass-cc/0}{\\1c&H725761&}{\\b1}\t${media-title}\nFilename: ${filename}'

[nodir]
sub-auto=no
audio-file-auto=no

[image]
profile=nodir
profile=opengl-hq
mute=yes
scale=ewa_lanczossharp
background=0.1
input-conf=~/.config/mpv/input-image.conf
video-unscaled=yes
title="mvi - ${?media-title:${media-title}}${!media-title:No file}"
image-display-duration=inf
loop-file=yes
geometry=



### Protocol Specific ##########################################################
[protocol.https]
#cache=yes
#cache-default=500000                       # size in KB
#cache-backbuffer=250000                    # size in KB
cache-secs=100                              # # how many seconds of audio/video to prefetch
# http://www.whoishostingthis.com/tools/user-agent/
user-agent='Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.112 Safari/537.36 Vivaldi/1.91.867.48'

[protocol.http]
#cache=yes
#cache-default=500000                       # size in KB
#cache-backbuffer=250000                    # size in KB
cache-secs=100                              # # how many seconds of audio/video to prefetch
user-agent='Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.112 Safari/537.36 Vivaldi/1.91.867.48'


### Extension Specific #########################################################
[extension.mkv]
profile=mid-quality
video-sync=audio


[extension.mp3]
hwdec=no
vf-clr
x11-name=music
ontop
border=no
geometry=15%
target-prim=auto
target-trc=srgb
video-output-levels=full
display-tags=album,artist,title,lyrics-kor,lyrics-eng
term-osd-bar=yes
osd-status-msg='${time-pos}-${=time-pos} / ${duration} (${percent-pos}%)\n${osd-ass-cc/0}{\\1c&H725761&}{\\b1} ${osd-sym-cc}${osd-ass-cc/0}{\\1c&H725761&}{\\b1}\t${media-title}\n ${osd-ass-cc/0}{\\1c&HA3A3A3&}{\\b1}{\\fs10}\n${osd-ass-cc/0}{\\1c&HA3A3A3&}{\\b1}  File Size: ${osd-ass-cc/0}{\\1c&HFFFFFF&}{\\b1}${file-size}\n${osd-ass-cc/0}{\\1c&HA3A3A3&}{\\b1}  Format: ${osd-ass-cc/0}{\\1c&HFFFFFF&}{\\b1}${file-format}{?audio-codec-name:${audio-codec-name}}\n${osd-ass-cc/0}{\\1c&HA3A3A3&}{\\b1}\n  Audio Codec: ${osd-ass-cc/0}{\\1c&H725761&}{\\b1}${?audio-codec:${audio-codec}}\n${osd-ass-cc/0}{\\1c&HA3A3A3&}{\\b1}  Audio-bitrate: ${osd-ass-cc/0}{\\1c&H725761&}{\\b1}${?audio-bitrate:${audio-bitrate}} ${?audio-params/channels:(${audio-params/channels})}\n\n${osd-ass-cc/0}{\\1c&H573E57&}{\\b1}  Output Driver: ${?current-ao: AO [${current-ao}]}{\\1c&H573E57&}{\\b1} {osd-ass-cc/0}{\\1c&H009aa7c0&}{\\b1}{\\an7}\n\n  Mpv version: ${mpv-version}\n  FFmpeg version: ${ffmpeg-version}'
osd-msg2='${osd-ass-cc/0}{\\r}{\\pos(100,10)}{\\1c&H573e78&}{\\b1}{\\fs10}\n ${filtered-metadata/title}   by ${filtered-metadata/artist} ( ${filtered-metadata/album})${osd-ass-cc/0}{\\1c&H009aa7c0&}{\\b1}{\\fs6}\n\n ${?filtered-metadata/lyrics-kor:${filtered-metadata/lyrics-kor}}${?filtered-metadata/lyrics-eng:${filtered-metadata/lyrics-eng}}'


[extension.flac]
profile=extension.mp3

[extension.m4a]
no-video
# equal to --vid=no, If video is disabled, mpv will try to download the audio only if media is streamed 
# with youtube-dl, because it saves bandwidth. This is done by setting the ytdl_format to "bestaudio/best"
# in the ytdl_hook.lua script.
display-tags=album,artist,title,lyrics-kor,lyrics-eng   # display-tags=*
term-osd-bar=yes

[extension.swf]
vf-clr
loop-file=yes

[extension.webm]
loop-file=inf
keepaspect
geometry=
vf-clr
interpolation=no

[extension.gif]
cache=no
no-pause
loop-file=yes
keepaspect
keep-open=yes
geometry=
target-prim=auto
target-trc=srgb
video-output-levels=full
vf-clr
interpolation=no

[extension.webp]
cache=no
no-pause
loop-file=yes
vf-clr
keepaspect
geometry=

# Ignore aspect ratio information for PNG and JPG, because it's universally bust
[extension.png]
video-aspect-override=no
keepaspect
pause
keep-open=yes
geometry=
vf-clr

[extension.jpg]
video-aspect-override=no
keepaspect
pause
keep-open=yes
geometry=
vf-clr

[extension.jpeg]
profile=extension.jpg