Linux MPV config

6pack

ex-Mod
Anyone using MPV for video playback?

I'm looking for a good config for playing upto 4K files on Intel integrated gpu like HD400.
I have installed the vaapi drivers and enabled hwdec and hwdec copy back in my config. I;ve set upscaling to Bilinear. Have tried playing 4K or more like 2K files in Hi10p format and audio and video both stutter even when player is in windowed mode.
Weirdly my android box plays the same file with no audio stutter but drops a lot of frames in video. Seems like Intel gpu is even crappier than Amlogic device.

How do i set up profiles in mpv? I've downloaded some 1-2 mpv profiles from github but they are for high end cards.

Here is my config.

Code:
###########
# General #
###########

#save-position-on-quit
no-border                               # no window title bar
msg-module                              # prepend module name to log messages
msg-color                               # color log messages on terminal
term-osd-bar                            # display a progress bar on the terminal
use-filedir-conf                        # look for additional config files in the directory of the opened file
#pause                                   # no autoplay
#keep-open                               # keep the player open when a file's end is reached
autofit-larger=90%x90%                 # resize window in case it's larger than W%xH% of the screen
#geometry=50%x50%                        # centers window in desktop
cursor-autohide-fs-only                 # don't autohide the cursor in window mode, only fullscreen
input-media-keys=no                     # enable/disable OSX media keys
cursor-autohide=2000                    # autohide the curser after 1s
prefetch-playlist=yes
#force-seekable=yes

screenshot-format=png
screenshot-png-compression=8
screenshot-template='~/Desktop/%F (%P) %n'

#########
# Cache #
#########

cache=yes
cache-default=250000                   # size in KB
cache-backbuffer=50000                  # size in KB
cache-initial=0                         # start playback when your cache is filled up with x kB
cache-secs=15                           # how many seconds of audio/video to prefetch if the cache is active


#############
# OSD / OSC #
#############

osd-level=1                             # enable osd and display --osd-status-msg on interaction
osd-duration=2500                       # hide the osd after x ms
#osd-status-msg='${time-pos} / ${duration}${?percent-pos: (${percent-pos}%)}${?frame-drop-count:${!frame-drop-count==0: Dropped: ${frame-drop-count}}}\n${?chapter:Chapter: ${chapter}}'

osd-font='Ubuntu Mono'
osd-font-size=40
osd-color='#CCFFFFFF'                   # ARGB format
osd-border-color='#DD322640'            # ARGB format
osd-shadow-offset=1                    # pixel width for osd text and progress bar
osd-bar-align-y=0                       # progress bar y alignment (-1 top, 0 centered, 1 bottom)
osd-border-size=2                       # size for osd text and progress bar
osd-bar-h=2                             # height of osd bar as a fractional percentage of your screen height
osd-bar-w=60                            # width of " " "


#############
# Subtitles #
#############

sub-auto=fuzzy                          # external subs don't have to match the file name exactly to autoload
sub-file-paths-append=ass               # search for external subs in these relative subdirectories
sub-file-paths-append=srt
sub-file-paths-append=sub
sub-file-paths-append=subs
sub-file-paths-append=subtitles

demuxer-mkv-subtitle-preroll            # try to correctly show embedded subs when seeking
embeddedfonts=yes                       # use embedded fonts for SSA/ASS subs
sub-fix-timing=no                       # do not try to fix gaps (which might make it worse in some cases)
sub-ass-force-style=Kerning=yes         # allows you to override style parameters of ASS scripts
sub-use-margins
sub-ass-force-margins

# the following options only apply to subtitles without own styling (i.e. not ASS but e.g. SRT)
#sub-font="Arial"
#sub-font-size=32
#sub-color="#FFFFFFFF"
#sub-border-color="#FF262626"
#sub-border-size=3.2
#sub-shadow-offset=1
#sub-shadow-color="#33000000"
#sub-spacing=0.5


#############
# Languages #
#############

slang=en,eng,ja,jp,jpn,unknown       # automatically select these subtitles (decreasing priority)
alang=ja,jp,jpn,en,eng,unknown       # automatically select these audio tracks (decreasing priority)


#########
# Audio #
#########
audio-buffer=0.500000                   #Double (0 to 10) (default: 0.200000)
audio-file-auto=fuzzy                   # external audio doesn't has to match the file name exactly to autoload
audio-pitch-correction=yes              # automatically insert scaletempo when playing with higher speed
softvol=no                              # Disable softvol usage, and always use the system mixer if available.
volume-max=100                          # maximum volume in %, everything above 100 results in amplification
volume=80                              # default volume, 100 = unchanged

#########
# Video #
#########

# Specify default video driver (see --vo=help for a list).
# vo=xv,opengl,opengl-hq #opengl-hq is depricated

video-sync=display-resample
vo=opengl

# Enable hardware decoding if available. Often, this requires using an certain
# video output, otherwise no hardware decoding will be used.

#hwdec=auto
hwdec=vaapi
hwdec-preload=vaapi-copy
#vd-lavc-threads=2

scale=bilinear

# disable screensaver
stop-screensaver = "yes"


Sample of mpv config from github:
Code:
################
# Video Output #
################

# Active VOs (and some other options) are set conditionally
# See here for more information: https://github.com/wm4/mpv-scripts/blob/master/auto-profiles.lua
# on_battery(), is_laptop() and is_dektop() are my own additional functions imported from scripts/auto-profiles-functions.lua

# Defaults for all profiles
vo=opengl
tscale=oversample                      # [sharp] oversample <-> linear (triangle) <-> catmull_rom <-> mitchell <-> gaussian <-> bicubic [smooth]
opengl-early-flush=no
opengl-pbo=yes
sigmoid-slope=10


[high-quality]
profile-desc=cond:is_desktop() and get('width', math.huge) < 3840
#scale=ewa_hanning
#scale-radius=3.2383154841662362 hanning with this radius is broken on OSX due to OpenGL driver bug
scale=ewa_lanczossharp
cscale=ewa_lanczossoft
dscale=mitchell
scale-antiring=0
cscale-antiring=0
dither-depth=auto
correct-downscaling=yes
sigmoid-upscaling=yes
deband=yes
hwdec=no

[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=1.0
cscale-antiring=1.0
dither-depth=auto
correct-downscaling=yes
sigmoid-upscaling=yes
deband=yes
hwdec=no

[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
cscale-antiring=0
dither-depth=no
correct-downscaling=no
sigmoid-upscaling=no
deband=no
hwdec=auto

[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

[default]

###################################

And I've attached the full 400+ options of mpv
 

Attachments

  • mpv-options.txt
    28.7 KB · Views: 289
Last edited:
Back
Top