Skip to content

Hill-98/mpv-config

Repository files navigation

mpv config

带有一些优化体验的自制脚本的 mpv 配置文件 (特色功能)

使用

Linux 安装方法: 如果你已经在使用 Linux 了,那么这应该难不倒你。

以下是 Windows 10+ 安装方法

安装

  1. 前往 GitHub Actions 下载最新版本并解压: https://github.com/Hill-98/mpv-config/actions
  2. 运行配置脚本: setup\setup.bat
  3. 打开 Windows 设置或控制面板设置文件关联。

如何下载 GitHub Actions 的文件: https://docs.github.com/actions/managing-workflow-runs/downloading-workflow-artifacts

更新

  1. 运行旧版本清理脚本: clean.bat
  2. 前往 GitHub Actions 下载最新版本并解压到旧版本目录: https://github.com/Hill-98/mpv-config/actions
  3. 运行配置脚本: setup\setup.bat
  4. 打开 Windows 设置或控制面板设置文件关联。

如果你擅长使用 Git,也可以使用 git 将此仓库克隆到本地进行安装。(需要 Git 符号链接 支持)

说明

控制界面: UOSC (有右键菜单)

默认配置:

  • 特定于文件的配置文件 (use-filedir-conf)
  • 中文音频/字幕优先 (日文、英文其次)
  • 退出时保存当前文件已更改的部分选项 (save-position-on-quit)
  • 始终启用缓存 (256M)
  • 模糊匹配并加载外部音频文件
  • 垂直同步 (video-sync=display-resample)
  • 字幕字体: 文泉驿微米黑
  • 字幕字体提供程序: fontconfig (支持自动加载当前播放文件路径下 fonts 文件夹的字体文件,详情见特色功能。)

默认视频配置 (gpu-hq-enhance):

  • profiles: gpu-hq
  • scale = ewa_lanczos4sharpest
  • 着色器: KrigBilateral
  • 垂直同步 (tscale=oversample)
  • 10 位色深视频禁用去带 (deband)

可以使用快捷键 ~ 回退到 gpu-hq,然后还可以使用快捷键 Alt+` 回退到 default

极速模式: 可以在右键菜单中启用此模式,仅对本次播放生效。此模式会卸载所有着色器、回退到 default 配置文件、启用硬件解码、禁用垂直同步。适合低性能设备播放 4K60FPS 等视频文件时开启,或便携设备使用电池时启用。

4K 显示设备播放 1080P 视频:

4K 以及更大的显示设备播放 1080P 或更低分辨率的视频是比较常见的情况,因为显示分辨率会大于视频分辨率,播放器需要使用升采样算法将视频提升到对应分辨率再输出,升采样算法的质量、特点决定了升采样后视频的质量。

这个配置文件默认使用的升采样算法是 ewa_lanczos4sharpest (亮度) 和 KrigBilateral (色度),ewa_lanczos4sharpest 的特征是非常锐利,但也比较消耗性能,对于大多数内容来说,这是个不错的选择。

当你觉得默认升采样导致视频看起来比较奇怪时,可以使用右键菜单或快捷键切换至其他升采样着色器,使视频画面尽可能的完美。

如果你为某个视频找到了适合它的着色器,可以通过 Auto Press Key 功能使其播放时自动激活。

HDR 视频播放:

如果你的显示设备不支持 HDR,那么播放 HDR 视频不需要做任何事,mpv 会自动将其转换为 SDR。

如果你的显示设备支持 HDR,先在系统设置里启用 HDR,然后启用 mpv 的 HDR 直通选项,你可以修改 local.conf 文件。

local.conf:(添加以下行)

target-colorspace-hint=yes # HDR 直通

显示设备支持 HDR 不代表它可以完美的显示 HDR 内容,只是它可以处理 HDR 信号。如果你的显示设备只是支持 HDR,没有 VESA Display HDR 等标准认证,建议不要启用 HDR 直通,而是继续让 mpv 将其转换为 SDR。即使拥有认证,我也建议只在拥有 Display HDR 600 及以上认证或类似认证的显示设备启用 HDR 直通。

如果你的显示设备是电视,即使没有任何标准认证,HDR 体验依然可能会很优秀。

HDR 视频截图: 播放 HDR 视频并截图,mpv 会为截图文件写入色彩空间标签并使用与视频相同的位深(仅支持部分图片格式),但是目前支持色彩空间、高位深和 HDR 的图片查看器少之又少,导致 HDR 截图在大部分图片查看器并不能正确的显示。如果你有显示 HDR 截图的需求,或者想把 HDR 截图分享给他人,推荐使用 Google Chrome 或 mpv 查看图片,分享给他人务必以文件的形式发送,切勿使用 IM 或其他软件的发送图片功能,以及确保他人拥有 HDR 显示设备。

退出时默认保存的选项:

af 音频过滤器
aid 音频轨道
audio-delay 音频延迟
deband 去带
hwdec 硬件解码
mute 静音
panscan 平移与扫描
pause 暂停
sid 字幕轨道
speed 播放速度
start 播放进度
sub-delay 字幕延迟
sub-font-size 字幕字体大小
sub-pos 字幕位置
sub-scale 字幕字体大小系数
vf 视频过滤器
vid 视频轨道
video-rotate 视频旋转
video-sync 视频同步模式 (垂直同步)
video-zoom 视频缩放
volume 音量
volume-max 音量上限

正常退出 mpv 时,如果文件没有播放完毕,将为文件保存这些选项,下次播放这个文件时应用这些选项。

可以使用快捷键 DEL 清除保存的选项。

不完整快捷键列表:

BackSpace 重置播放速度
Alt+= 增加字幕字体大小
Alt+- 减小字幕字体大小
Alt++ 增加字幕字体大小系数
Alt+_ 减小字幕字体大小系数
Alt+UP   字幕位置向上
Alt+DOWN 字幕位置向下
Alt+RIGHT 字幕延迟增加
Alt+LEFT  字幕延迟减少
Alt+Shift+RIGHT 音频延迟增加
Alt+Shift+LEFT  音频延迟减少
Shift+RIGHT 快进 60 秒
Shift+LEFT  倒退 60 秒
PAGE DOWN 播放列表上一个
PAGE UP   播放列表下一个
[ 上一帧
] 下一帧
< 减少播放速度
> 增加播放速度
A 显示音频轨道列表
C 显示章节列表
d 切换去带
f 切换全屏
H 开启/关闭 硬件解码 (默认关闭)
m 切换静音
o 打开文件
p 显示播放进度
P 显示播放列表
r 旋转视频
R 从头开始播放视频
s 截图
S 显示字幕轨道列表
t 显示系统时间
v 开启/关闭 垂直同步 (默认开启)
V 显示视频轨道列表
Ctrl+c 切换自动裁剪黑边
Ctrl+p 填充黑边使视频比例与当前窗口比例相同 (解决视频比例大于屏幕比例时字幕位置偏高)

快捷键区分大小写,键盘未开启大写锁定时可以按住 Shift 输入对应大写快捷键。

自定义配置

为了方便自定义配置,我编写了一些辅助脚本,既可以自定义配置,又不会覆盖原有的配置文件,方便后续更新。

如果你需要自定义选项,可以修改配置目录的 local.conf 文件。

如果你需要修改默认加载的 profile,可以在配置文件目录创建 profiles.local,语法参考 profiles 文件。

如果你需要自定义快捷键,并且想要继承默认快捷键,按以下步骤操作:

  1. local.conf 开头添加行:
input-conf="~~/.input.conf"
script-opts-append="custom_input-enable=yes"
  1. 在配置目录创建 input.local.conf 文件并添加行:
#@ ~~/input.conf
  1. input.local.conf 文件设置新的快捷键
  2. 每次更改文件后,启动一次 mpv 然后退出,新的快捷键将在下次启动时生效。

如果你需要自定义脚本选项,可以在 local.conf 使用 script-opts-append 设置:

script-opts-append="check_update-check_mpv_update=yes" # 启用 mpv 新版本检查更新

特色功能

使用 fontconfigsub-fonts-dir (native) 加载播放文件路径下字体文件夹的字体文件,native 加载方法需要较新版本的 mpv。如果当前 mpv 构建支持,默认使用 native 方法,否则使用 fontconfig 方法。

支持的字体文件夹:

  • fonts
  • Fonts
  • FONTS
  • 字体

由于 Windows 系统的路径不区分大小写,所以 fonts, Fonts, FONTS 没有区别。

兼容模式: 兼容模式主要用于解决一些 fontconfig 的性能问题和 Windows 系统上特定分区的错误,脚本在兼容模式下加载字体文件时会将 fonts 文件夹复制到指定位置,然后使用新位置进行加载。默认位置为配置目录的 .fonts 目录,如果配置目录所在分区也存在兼容性问题,你还可以自定义兼容目录位置。

兼容模式在 native 模式下也会生效,不过可能没有任何改善。

选项:

兼容模式: auto_load_fonts-compatible_mode=[yes|no] # 默认: no

兼容目录: auto_load_fonts-compatible_dir=[path] # 兼容模式使用的临时字体目录。默认: ~~/.fonts

加载方法:auto_load_fonts-method=[fontconfig|native] # 默认: 当前支持的最佳方法

如果播放文件目录存在 mpv.keys${filename}.mpv.keys,则在文件加载后自动按下按键,文件结束后再次按下按键。

mpv.keys: 每行一个按键,可以是组合键,以 ! 开头的按键不会在文件结束后再次按下,以 # 开头的行会被忽略。

自动将显示设备刷新率设置为支持范围内最适合视频帧率的刷新率,比如视频帧率为 30 FPS,显示设备如果支持 30Hz 刷新率,那么就设置为 30Hz,如果不支持 30Hz,但是支持 60 Hz,就设置为 60Hz,因为 60 是 30 的倍数。

目前仅支持 Windows,不支持 Linux。与其他类似脚本不同的是,此脚本在 Windows 不依赖第三方工具,相关操作使用 PowerShell + Win32 API 实现。

正常情况不推荐使用这个脚本,因为默认的垂直同步已经足够了。除非你有强迫症或者是为了节能想关闭垂直同步。

选项:

启用: best_display_fps-enable=[yes|no] # 默认: no

切换显示设备后的延迟: best_display_fps-change_display_delay=[number] # mpv 移至另一个显示设备后,延迟多少毫秒执行更改刷新率等操作。默认: 3000

文件结束后的延迟: best_display_fps-end_file_delay=[number] # 文件结束后,延迟多少毫秒执行还原刷新率等操作。默认: 3000

更改刷新率时暂停等待时间: best_display_fps-pause_wait_delay=[number] # 更改刷新率时,将暂停播放,然后在指定毫秒后恢复播放。默认: 2000

自动检查配置文件更新,还支持 mpv 新版本检查,mpv 默认检查源 : shinchiro/mpv-winbuild-cmake

配置文件默认每 7 天检查一次, mpv 默认每 1 天检查一次。

可以通过 script-message check-update/configscript-message check-update/mpv 命令强制检查更新。

网络请求依赖于外部工具 curl,如果 mpv 选项 http-proxy 已设置,会自动设置为 HTTP 代理,也支持为这个脚本单独设置 HTTP 代理,以及 curl 会自动使用 HTTP 代理相关环境变量。

选项:

配置文件检查间隔: check_update-check_config_interval=[number] # 每 N 天检查一次配置文件更新。默认: 3

mpv 新版本检查: check_update-check_mpv_update=[yes|no] # 默认: on

mpv 检查间隔: check_update-check_mpv_interval=[number] # 每 N 天检查一次 mpv 版本更新。默认: 1

mpv 检查源: check_update-check_mpv_repo=[mpv-build-github-repo] # GitHub 上的 mpv 构建仓库。默认: shinchiro/mpv-winbuild-cmake (https://github.com/shinchiro/mpv-winbuild-cmake)

mpv 本地版本正则表达式: check_update-mpv_local_version_regex=[JS RegExp string] # 第一个子组为返回值。 默认: -g([a-z0-9-]{7})

mpv 远程发布名称正则表达式: check_update-mpv_remote_name_regex=[JS RegExp string] # 第一个子组为返回值。 默认: mpv-x86_64-([\\w]+-git-[a-z0-9]{7})

mpv 远程发布版本正则表达式: check_update-mpv_remote_version_regex=[JS RegExp string] # 第一个子组为返回值。 默认: -git-([a-z0-9-]{7})

HTTP 代理: check_update-http_proxy=[http-proxy] # 检查更新时使用的 HTTP 代理。默认: 无

如果当前媒体文件没有内嵌媒体标题,则使用多种规则提取媒体文件名包含的信息并格式化。如果提取成功,设置为当前文件的媒体标题 (force-media-title)。

比如文件名 [VCB-Studio] Re Zero kara Hajimeru Isekai Seikatsu [01][Ma10p_1080p][x265_flac_aac] 会被格式化为 Re Zero kara Hajimeru Isekai Seikatsu [01]

选项:

启用: format_filename-enable=[yes|no] # 默认: yes

为 mpv 新增 webplay 协议,用于从浏览器调用 mpv 播放媒体。

可以配合油猴脚本 WebPlay for ytdl 使用。

感谢

感谢 mpv-player 项目以及所有开发者们

感谢以下开源项目以及所有开发者们:

文泉驿

agyild/NVScaler.glsl

bjin/mpv-prescalers

bloc97/Anime4K

CogentRedTester/mpv-scripts

igv/FSRCNN-TensorFlow

igv/KrigBilateral.glsl

igv/SSimDownscaler.glsl

igv/SSimSuperRes.glsl

natural-harmonia-gropius/input-event

TianZerL/ACNetGLSL

tomasklaen/uosc

VideoPlayerCode/mpv-tools

感谢 JetBrains 提供 JetBrains IDE 开源许可证

JetBrains Logo (Main) logo.

About

带有一些优化体验的自制脚本的 mpv 配置文件 (Linux & Windows)

Topics

Resources

License

Stars

Watchers

Forks