2023-10-22 00:48 /


引言

昨日在论坛上看到新的一则关于 PC 本地视频播放器的讨论,其中不少人指出了 PotPlayer 的诸多不足之处,让多年来习惯 PotPlayer 的笔者产生了换用视频播放器的想法。


为何弃用 PotPlayer

PotPlayer 有三个方面的问题。

一是道德问题:PotPlayer 作为闭源软件,却包含了使用 GNU GPL v3 开源协议的 FFmpeg。该协议规定,假设使用该协议的软件A被软件B包含在内,那么软件B也必须使用该协议而成为开源软件。笔者自己的开源软件也都使用该协议,所以很清楚遵守开源协议的必要性。违反开源协议是 PotPlayer 最大的污点。

二是性能问题:PotPlayer 在笔者电脑上的性能表现明显差于 mpvMPC-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.netMPV_lazy),但感觉它们的 GUI 都有些难用。最后笔者还是决定入坑原汁原味的官方版本。

MPC:也很不错,但相对 mpv 而言功能匮乏,例如字幕样式的选项太少。目前有两个版本可用:MPC-HCMPC-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
#1 - 2023-10-22 01:58
(Elohim Essaim,请聆听我的请求)
mark
#2 - 2023-10-22 02:13
对于普通人来说比较麻烦 对于这方面爱好者来说刚刚好 但我已经习惯用PotPlayer了 我比较喜欢他简洁的界面 但有时候确实会有延迟等一些小bug 关于楼主说的补帧问题 我作为一个短视频平台漫剪小博主 个人比较推荐svfi 也是国人开发的一款软件 上手简单且效果可观 至于模型一般可以无脑选一拍二拍三 动漫补帧推荐g开头的模型 不论是慢放还是个人收 藏一些高质量短片或是上传B站 在我看来目前是我用过最好的(不是托 只是分享)
#2-1 - 2023-10-22 12:15
Sam Toki
感谢分享!我看了一下 SVFI 的 GitHub repo,这个工具不是即时补帧而是输出文件,貌似只适合有视频剪辑需求的用户(bgm38)
#3 - 2023-10-22 10:12
(再吻我一次,爱人。请把枪擦亮,同志。)
感谢
#4 - 2023-10-22 11:05
(逐渐沉迷于补番中。)
最近也在为mpv为难,感谢大佬,帮大忙啦!
#5 - 2023-10-22 11:07
(ᗜˬᗜ)
無補幀超分等需求的話,照着 VCB-S 的教程來設置 MPC-HC 正好。不過它的功能也確實匱乏,最難以忍受的是它的「截圖」輸出的不是視頻幀,還得要裝個 VLC 來滿足這個需求。
#5-1 - 2023-10-22 12:21
Sam Toki
原來 MPC 還有這個缺陷,我昨天試用的時候都沒發現(bgm38) 我之前經常使用 PotPlayer 的 Ctrl+E 截取原始幀,所以沒有這個功能我也不能忍
#6 - 2023-11-8 16:33
(路漫漫其修远兮)
你好!我在想如果使用的是 1080P 的显示器和 1080P 的片源,有必要使用 Anime4K 吗?
#6-1 - 2023-11-8 22:41
Sam Toki
因为绝大多数日系动画作品制作过程中的原生分辨率不及 1080P,所以即使是 1080P 的片源,实际清晰度也没有 1080P。
日系动画是以手绘为基础的,不像一些3D动画以及电子游戏以电脑渲染为基础,它们的设定分辨率多高,渲染出来的画面就多清晰。
因此均为 1080P 的显示器与片源,使用 Anime4K 还是可以感受得到可观的效果。其实我自己目前的使用环境就是这样(bgm24)
#6-2 - 2023-11-9 08:53
Jiang10086
Sam Toki 说: 因为绝大多数日系动画作品制作过程中的原生分辨率不及 1080P,所以即使是 1080P 的片源,实际清晰度也没有 1080P。
日系动画是以手绘为基础的,不像一些3D动画以及电子游戏以电脑渲染为基础,...
好的,谢谢解答。回去我就在新电脑试试
#6-3 - 2023-11-10 11:00
Jiang10086
Sam Toki 说: 因为绝大多数日系动画作品制作过程中的原生分辨率不及 1080P,所以即使是 1080P 的片源,实际清晰度也没有 1080P。
日系动画是以手绘为基础的,不像一些3D动画以及电子游戏以电脑渲染为基础,...
太牛了,完全离不开了。太高兴了,后悔没有早点用上 Anime 4K。太清晰了,就好像漫画开了 Waifu2x 一样。感谢楼主分享,虽然早就听说过 Anime 4K,但我下意识会认为很吃性能,就没用上
#7 - 2023-11-9 22:06
(亡死来招会但人迷爱可然虽我。)
(bgm38)谢谢,发现我的MPV没那个配置文件夹,新建了也不行,配置不起作用,应该是版本太老了,下了个新版的终于能用了。
#7-1 - 2023-11-10 00:53
Sam Toki
(bgm38) 这么一说 mpv 确实没有检查更新的功能,毕竟本体连 GUI 都没有……不过本地媒体播放器也不需要经常更新,隔几个月上 GitHub 看一下就行