Image by yomochi@pixiv

mpv使用记录

The Note of MPV

  linkthis    2019-05-18    2745 words

偷懒一时爽,查错火葬场。

MPV是一个开源的跨平台播放器,对各类平台和高画质都有不错的支持然而并不能一套配置通用所有平台

文件夹简介

Windows上MPV安装包的解包位置没有特殊限制,不过需要注意该文件夹需要有写入权限;之后的更新执行文件夹下的updater.bat即可。Linux上如果通过包管理器进行安装,默认配置位于~/.config/mpv/;不过由于官方版本号已经半年多没有更新,所以自行同步代码编译安装的配置文件夹取决于自己的设置。
Windows下的各项配置文件或文件夹建议保存在自己创建的portable_config文件夹内,而Linux无需单独创建文件夹。通常MPV的功能配置文件或文件夹有以下几个:

  • scripts
  • shaders
  • encoding-profiles
  • input.conf
  • mpv.conf

script文件夹存放各种用来附加功能的脚本;shaders文件夹用来存放第三方着色器;input.conf用来自定义快捷键;encoding-profiles用于调整编码等,一般无需修改;mpv.conf则是MPV的主配置文件,用于对视频、音频、字幕等进行设置。
当然还有其它文件夹,不过此类文件夹通常根据需求来创建。

主配置文件

以下所有配置均位于mpv.conf文件中。

视频

1
2
3
hwdec=no
profile=gpu-hq
icc-profile-auto

如果不是为长时间续航、避免风扇噪音或者硬解4K等特殊需求,在显卡能力足够的情况下为了避免奇怪的问题,关闭硬解;开启MPV默认的高质量渲染;如果还有更高的需求,可以结合之后的脚本对特定类型的视频开启针对性选项;默认开启色彩管理。

1
gpu-api=vulkan

MPV支持vulkand3d11opengl三种API,应根据使用平台的支持情况进行选择;在最近版本的MPV中使用vulkan会导致OSD显示的系统占用百分比全部为0,为已知BUG

1
2
3
video-sync=display-resample
interpolation
tscale=oversample

强制锁定显示器刷新频率,使视频与音频尽量同步播放,其它类型同步选项参考此链接tscale有多种值可选,各种算法参见此链接

1
blend-subtitles=video

将字幕渲染到视频源分辨率并随视频一起缩放并进行色彩管理,可以在某种程度上避免字母模糊的情况,但是有的情况则是由于libassXySubFilter对字幕渲染方式的不一致造成的问题或许是两种之中某一个的BUG

音频

1
2
ao=wasapi
audio-exclusive=yes

选择音频输出方式和是否为独占模式,需根据对应平台选择。

1
audio-normalize-downmix=yes

声音忽大忽小时开启规格化。

1
2
audio-file-auto=fuzzy
alang = jpn, jp, ja, en, eng

音轨文件的加载方式;音轨语言的优先级设置。

字幕

1
2
3
4
5
sub-auto=fuzzy
sub-file-paths-append = sub
sub-file-paths-append = subs
sub-file-paths-append = subtitles
slang = chs, sc, gb, zh-CN, zh-Hans, zh

外挂字幕的加载方式和加载时应查找的文件夹;字幕语言的优先级设置。

1
2
#sub-ass-vsfilter-aspect-compat=no
#sub-ass-vsfilter-blur-compat=no

字幕是否拉伸或者模糊,当字幕渲染出现问题时启用。

其它

1
2
3
4
screenshot-format           = png
screenshot-tag-colorspace   = yes
screenshot-high-bit-depth   = yes
screenshot-template         = "%F-%{estimated-frame-number:%P}"

设置截图时图片保存的格式和命名规则等。

1
2
3
save-position-on-quit         # 记忆上次播放的位置
keep-open                     # 播放结束后不退出
ontop                         # 在全屏的情况下,更容易进入全屏独占

一些播放相关的配置。

脚本

MPV功能较为单一,需要通过外加脚本实现更多的功能,以下是一些脚本的介绍:

  • autoload:自动加载当前播放文件目录里的视频文件到播放列表
  • pause-when-minimize:最小化时自动暂停,恢复时自动开始播放
  • autodeint:自动判断是否需要反交错
  • auto-profiles:根据设置采用不同的播放配置
  • mpv-Change-OSD-Media-Title:显示文件名、已观看百分比、当前章节和OSD中的丢弃帧数,并在其中一个值发生更改时更新
  • mpv_crop_script:直接在mpv中进行屏幕截图,且无需外部依赖

在使用脚本时应阅读相关的README文件,其中可能提供了针对脚本的额外配置选项,有部分脚本还需要修改input.conf来添加对应的快捷键。

着色器

通过使用外加的着色器提升观感,结合自己的机器的情况和喜好组合即可,以下是一些着色器的介绍:

  • nnedi3 and ravu:需要注意,虽然通常情况下gathercompute下的着色器的处理速度更快,但要求的OpenGL版本更高,只能在其工作时没有蓝屏且没有明显失真的情况下使用;vulkan内的着色器只能gpu-api=vulkan或者gpu-api=d3d11的情况下使用;配置文件中,glsl-shaders="~~/shaders/ravu-r3.hook"只会被执行一次,如果需要放大4倍,则需书写同一个命令两次。
  • FSRCNN:在放大图像时可以使用FSRCNNX_x2_56-16-4-1.glsl,但其速度太慢,不适合MPV。
  • SSimDownscaler, SSimSuperRes, Krig, Adaptive Sharpen, etc.SSimSuperRes.glsl最好搭配dscale=mitchell使用,SSimDownscaler.glsl则与dscale=mitchelllinear-downscaling=no组合使用;adaptive-sharpen.glsl应视情况手动开启。

在使用这些着色器应仔细查看其README文件,并保持更新,以便获得更好的体验是全新的BUG或者倒车;而且需要注意文件格式是否正确,否则可能无法正常使用。

善用wikiissue,珍惜看片时间。
珍爱生命,远离无用LOG。
本文采用CC BY-NC-ND 4.0许可协议进行许可,转载请注明出处。

本文最后更新时间为:2019-05-18-Saturday-08:57:23 PM




Image of Wechat