2023-10-22 00:48 /
引言
昨日在论坛上看到新的一则关于 PC 本地视频播放器的讨论,其中不少人指出了 PotPlayer 的诸多不足之处,让多年来习惯 PotPlayer 的笔者产生了换用视频播放器的想法。
为何弃用 PotPlayer
PotPlayer 有三个方面的问题。
一是道德问题:PotPlayer 作为闭源软件,却包含了使用 GNU GPL v3 开源协议的 FFmpeg。该协议规定,假设使用该协议的软件A被软件B包含在内,那么软件B也必须使用该协议而成为开源软件。笔者自己的开源软件也都使用该协议,所以很清楚遵守开源协议的必要性。违反开源协议是 PotPlayer 最大的污点。
二是性能问题:PotPlayer 在笔者电脑上的性能表现明显差于 mpv 与 MPC-BE 等。不管打开什么视频都要等待两三秒,有时按 F5 会延迟两秒才弹出设定窗口。此外还有一个不太起眼的谜之 bug,状态栏中的已播时间(elapsed time)会变成剩余时间(而且这个剩余时间还不带负号,误导性很强),且调回来之后过一段时间会自动变回去。
三是功能问题:虽说 PotPlayer 功能丰富、UI 设计良好,但其对视频插件的支持不友好。且不说「滤镜」的配置很麻烦,最要命的是其不支持「GLSL 着色器」,而下文将提到的 Anime4K 就是一种 GLSL 着色器。即使对 Anime4K 没有兴趣,将 PotPlayer 从堪称垃圾的默认配置折腾到还算不错的配置,这一过程也是蛮痛苦的。它的设定界面虽然有不错的 GUI,但看上去仍然非常复杂。
在熟悉了 mpv 并且将其作为主力视频播放器了之后,笔者还是将 PotPlayer 保留了下来,以备不时之需。
货比三家
目前 PC 平台(Windows)上口碑比较好的本地视频播放器,除 PotPlayer 以外主要有三款:mpv、MPC、VLC。它们均为开源项目。
mpv:性能最优秀,功能最丰富。但门槛也最高(先别着急),对于新手而言最要命的是它没有图形界面(GUI)!笔者一开始试用了两个带有 GUI 的第三方版本(mpv.net 与 MPV_lazy),但感觉它们的 GUI 都有些难用。最后笔者还是决定入坑原汁原味的官方版本。
MPC:也很不错,但相对 mpv 而言功能匮乏,例如字幕样式的选项太少。目前有两个版本可用:MPC-HC 与 MPC-BE,个人推荐后者。
VLC:相对而言逊色于前两者。笔者也还未试用过,因此不多讨论。
mpv 的下载与安装
mpv 官方不提供编译好的软件包(二进制可执行文件),但有半官方性质的资源可用。前往 mpv Windows build 的 latest release,找到并点击下载「mpv-x86_64-v3」开头的压缩包。
接下来将压缩包解压至您希望 mpv 软件呆着的地方。推荐放至「C:\Program Files\mpv\」,或者「C:\mpv\」「D:\Apps\mpv\」诸如此类也都可以。但注意路径中要避免出现中文或其他非拉丁文字符。
打开「installer」文件夹,以管理员身份运行「mpv-install.bat」。这个批处理程序将建立文件关联,这样一来在资源管理器中双击视频文件就可以用 mpv 打开了。
随便找一个视频,右键→打开方式→mpv,先测试一下 mpv 能否正常工作。若没有问题,就可以开始给 mpv 进行具体配置,让它符合我们的使用习惯。
mpv 的配置文件
上文中提到,mpv 没有 GUI,这是令新手最困惑的地方。但若您能顺利掌握它的配置文件的使用方法,这玩意用起来真的比 GUI 还要方便。
mpv 在播放界面提供了一个很简陋的控制器(姑且算半个 GUI),个人感觉很鸡肋,因此笔者基本上都是用键盘来控制。播放器的设定,例如性能、字幕、OSD 信息、插件、快捷键等,都是通过配置文件来调整的。
前往 C:\Users\您的用户名\AppData\Roaming\mpv\(若找不到「AppData」文件夹,请在资源管理器选项中显示隐藏文件;若找不到「mpv」文件夹,新建一个即可)。新建两个文件,分别命名为「mpv.conf」与「input.conf」。前者为 mpv 的系统配置,后者是 mpv 的快捷键配置。用文本编辑器打开之,粘贴以下代码。
mpv.conf 的代码:
# Sam Toki's mpv System Configuration (mpv.conf)
# 2023/10/21
#
# 配置参考手册:https://mpv.io/manual/master
#
# ----------
# 文件 File
keep-open=no # 播放完毕时自动退出。若不要自动退出则改为「yes」。
# 播放 Playback
hwdec=auto # 使用硬解。若不要硬解则注释掉即可。
# 视频 Video
profile=high-quality
# 音频 Audio
audio-file-auto=fuzzy
volume-max=200
# 字幕 Subtitle
sub-auto=fuzzy
sub-ass-override=yes # Override ASS 字幕的 Default 样式。
sub-border-size=8
sub-blur=1
sub-border-color="#000000"
sub-color="#FFFFFF"
sub-margin-y=40
sub-font=Source Han Sans Medium # 当字幕文件指定的字体不存在(未在系统中安装)时,使用此字体作为 fallback。解决了 PotPlayer 中 fallback 成奇丑无比的中易宋体的问题。个人推荐适合用于视频字幕的字体有:思源黑体、冬青黑体、筑紫黑体等。请将「Source Han Sans Medium」改为您喜好的字体即可。若不想折腾,直接使用「微软雅黑」也可以。
sub-font-size=60
# 外观 Appearance
geometry=50% # 初始窗口大小。
fullscreen # 启动时全屏。
osd-level=1
osd-duration=2000
osd-font=Source Han Sans Medium # OSD 信息的字体。同样地,请根据个人喜好自行更改。
osd-font-size=36
osd-align-x=center # 居中显示 OSD 信息。
osd-margin-y=10
osd-border-size=4
osd-border-color="#000000"
osd-color="#FFFF00"
osd-playing-msg="打开: ${media-title}"
osd-msg2="${media-title}\n${file-format}, ${file-size}\n\n${time-pos/full}/-${time-remaining/full} (${percent-pos}%), 帧 ${estimated-frame-number}/${estimated-frame-count}, 章节 ${chapter}\n\n模式: ${hwdec}\n视频: ${video-codec}, ${width}x${height}, ${estimated-vf-fps}fps, ${video-bitrate}\n音频: ${audio-codec}, ${audio-device}, ${audio-bitrate}\n\n${mpv-version}"
osd-msg3="${time-pos}/-${time-remaining} (${percent-pos}%)"
osd-on-seek=msg # Seek 时显示 osd-msg3 而非进度条。
# 截屏 Screenshot
screenshot-format=png
screenshot-template="mpv Capture %n - %f_%P"
screenshot-directory="C:\Users\SamTo\Pictures\Screenshots" # 将「SamTo」替换成您的用户名。
input.conf 的代码:
# Sam Toki's mpv Hotkey Configuration (input.conf)
# 2023/10/21
#
# 配置参考手册:https://mpv.io/manual/master/#command-interface
#
# ----------
# 文件 File
q quit-watch-later # 退出时记住状态(例如播放进度)。
Ctrl+q quit
# 播放 Playback
LEFT seek -5 # 常规 seek。
RIGHT seek +5
Ctrl+LEFT seek -30
Ctrl+RIGHT seek +30
BS seek 0 absolute # Backspace 键:从头开始播放。
Alt+LEFT sub-seek -1 # 根据字幕关键帧来 seek。
Alt+RIGHT sub-seek +1
PGUP add chapter -1 # Seek 至章节开头。
PGDWN add chapter +1
d frame-back-step # 逐帧播放。狙击手快报告颜色!
f frame-step
HOME playlist-prev # 切换文件。
END playlist-next
, add speed -0.25 # 倍速调节。
. add speed +0.25
/ set speed 1.00
# 视频 Video
#
# 音频 Audio
a cycle audio # 切换音频轨。
UP add volume +10 # 调节音量。不得不吐槽 mpv 默认的音量调节键 9 和 0 太奇怪了……
DOWN add volume -10
v set volume 100
m cycle mute
# 字幕 Subtitle
s cycle sub # 切换字幕轨。
- add sub-scale -0.10 # 调节字幕缩放。此功能也是 mpv 对于 PotPlayer 的另一大优势,后者至今不支持缩放 ASS 字幕。
= add sub-scale +0.10
0 set sub-scale 1.00
[ add sub-delay -0.10 # 调节字幕同步。
] add sub-delay +0.10
\ set sub-delay 0
# 外观 Appearance
ENTER cycle fullscreen
KP_ENTER cycle fullscreen
t cycle ontop
o show-progress
F1 set osd-level 1
F2 set osd-level 3 # 这里并没有搞反哦~
F3 set osd-level 2
# 截屏 Screenshot
p screenshot video # 截取原始帧,不带字幕。
Ctrl+p screenshot # 截取原始帧与字幕。
# 着色器 Shaders
F5 no-osd change-list glsl-shaders clr ""; show-text "已禁用 Anime4K"
F6 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl;~~/shaders/Anime4K_Restore_CNN_VL.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl;~~/shaders/Anime4K_Restore_CNN_M.glsl;~~/shaders/Anime4K_AutoDownscalePre_x2.glsl;~~/shaders/Anime4K_AutoDownscalePre_x4.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "已启用 Anime4K (Mode A+A)"
# 屏蔽部分默认快捷键 Block Some Default Hotkeys
w ignore
e ignore
r ignore
y ignore
u ignore
g ignore
h ignore
j ignore
k ignore
l ignore
z ignore
x ignore
c ignore
b ignore
n ignore
您可根据自己的习惯与喜好修改这两个配置文件,但前提是您足够理解这些代码的含义。若有兴趣进一步学习,可参考配置文件开头的配置参考手册(官方)。
Anime4K
Anime4K 是一套视频「着色器」。笔者也不太了解着色器(shader)到底是什么,总之它有一套针对动画(尤其是日系动画)的算法,能显著提升视频的清晰度(让人直呼卧槽的程度)。但由于采用即时演算的方式,它比较吃性能,视具体情况有时可能比打游戏还烧显卡。一般而言,只要读者的电脑不算太旧,开着它播放 1080P 24fps 的普通动画问题不大。
Anime4K 的部署方法也不难。首先前往 Anime4K 的 latest release,同样找到「Assets」下方的压缩包并点击下载。然后在 C:\Users\您的用户名\AppData\Roaming\mpv\ 下新建名为「shaders」的文件夹,由此这个路径下应该已有三个项目:shaders、input.conf、mpv.conf。最后将压缩包解压至 shaders 文件夹即可。
现在您可以打开一个动画视频(最好是 VCB-Studio 压制的 1080P MKV 视频)来测试效果。若您没有更改上文配置文件中有关 Anime4K 的快捷键,按 F6 即可开启 Anime4K 并立即观察到画面优化效果。
[VCB-Studio] Yama no Susume Second Season [01][Ma10p_1080p][x265_flac_aac].mkv
笔者的配置文件默认使用较为激进的 Anime4K 方案,这在部分画面中会造成一点失真,例如文字变细(见下图)。若读者介意这一点,可参考 Anime4K 的官方教程,改用其他方案。
[Sakurato] Bocchi the Rock! [01][HEVC-10bit 1080p AAC][CHS&CHT].mkv
关于补帧
最后讨论一下「补帧」这个充满争议的玩意。补帧确实能让视频看上去更加流畅,如果放在实拍电影里问题不大,但动画的特性导致其不适合补帧。简单地说,补帧会毁掉动画独有的「一卡一卡」的表现力,甚至导致人物间断性地缺胳膊少腿,而且不尊重动画师的本意与劳动成果。
由于笔者试用过的 MPV_lazy 自带补帧插件(不过效果真不太行),笔者抱着随便玩玩的心态试着在原版 mpv 上部署补帧插件。结果尝试了三次均以失败告终,vapoursynth 在控制台报错,死活无法正确加载。因此笔者放弃了补帧插件,本文也就不提供有关补帧的教学。
延伸阅读
字幕组动画资源惯用文件名含义科普
通俗科普什么是音视频「编码」与「码率」
利用 waifu2x 优化日漫图片,让壁纸看起来干净清爽
参考资料
在此感谢 mpv、Anime4K 的开发者,以及以下资料的作者。
[1] hooke007. mpv播放器的使用引导
[2] Boday. 跨平台播放器 mpv 配置入门
[3] mpv Official Manual
日系动画是以手绘为基础的,不像一些3D动画以及电子游戏以电脑渲染为基础,它们的设定分辨率多高,渲染出来的画面就多清晰。
因此均为 1080P 的显示器与片源,使用 Anime4K 还是可以感受得到可观的效果。其实我自己目前的使用环境就是这样