Matrix 首页推荐 

Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。 
文章代表作者个人观点,少数派仅对标题和排版略作修改。


关于 mpv

你或许听说过 mpv,根据官方介绍,它是一款免费、自由且开放的媒体播放器,支持多种媒体格式、音视频编解码器和字幕类型,具备一些或基础、或高级的特性,包括高质量视频输出、显卡硬件解码、脚本编写定制、可作为库进行嵌入开发(比如少数派读者更熟悉的 IINA)等

所以尽管 mpv 是一款媒体播放器,在大多数读者的认知中,mpv 作为视频播放器的存在感显然更强、也更常见一点。

而对我而言,直到去年之前我都一直在用轻便、好用、有真正的图形用户界面的 MPC-HC 作为播放器——但它在播放 HDR 影像时有些问题,所以我最后也选择了 mpv。装上两个插件(替换控件 UI 的 uosc、制作和显示键位小抄的 mpv-cheatsheet)后我终于适应过来,并将 mpv 作为了默认的视频播放器。

但 mpv 究竟是怎样的?

打个比方来说,MPC-HC 始终是一个好的、已成型的「建筑物」,mpv 默认有「建筑」的概念,但除了建筑的壳,它还有种种抽象的资产:好读的文档手册、活跃的用户社区氛围等。这些额外的资产赋予了 mpv 作为默认视频播放器之外的更多可能性。

比如作为音乐播放器。

作为音乐播放器的 mpv 和想看歌词的我

日常生活中我会使用多个本地音乐播放器,比如我习惯在 Exaile 中按文件夹播放,也会将一些临时的文件拖拽进 Qmmp;前些年我还用音频标签编辑器 TagScanner 制作了一些自用的 .m3u 格式的播放列表文件,用来配合插件 Mpv FilenavigatorMpv-Playlistmanager 在 mpv 中播放歌曲。

有时候我也想看看歌词。上面提到的 Exaile 只能静态地显示 .mp3 格式、元数据包含 lyric 的内容,Qmmp 在曲目的右键菜单中虽然有一个 显示歌词 功能但不能用。

mpv 则能以字幕的形式显示 .lrc 格式歌词,尽管它们从视觉到实质上都只是字幕。

一切都得从我在 mpvacious 这个库下面看到了一段演示说起。那段演示提到了 mpv 的 --secondary-sid= 设置,这个选项用于选择第二字幕,这条字幕会显示在画面的顶部,因为这个契机,配置 mpv 来播放歌词的想法便在我的脑海中萌发了。

思路来源与成果展示

起初我想要呈现的效果是:

  • 要有原文和翻译两行歌词
  • 歌词样式要美观
  • 要有封面

带着这样的想法,我在 reddit 的一个问答帖下找到了「如何在 mpv 中设置双字幕」的基本方法。之后通过翻阅 mpv 官方手册,我一一找到并测试了相关选项,中途还从可信源 SourceForge 上下载了 mpv 便携版替换测试用的环境。在这个过程中也发现并修改了原帖中 不少的错误和疏忽。

最后我用这个配置听了一遍 Until The Ribbon Breaks - Orca 还有一些其他的歌。这套配置总结下来主要有这么几个特点:

  • 关键功能几乎都基于 mpv 自带
  • 视觉风格可根据自己偏好设置
  • 可使用插件来获得更好的用户体验,或处理一些特殊情况

它的呈现效果如下:

功能方面,音乐播放器一般功能,包括随机播放、列表循环、单曲循环、文件浏览器等一应俱全,基于 mpv 的字幕功能,它还支持:

  • 切换第二歌词(字幕轨)、手动修改歌词样式、显示静态歌词(以 .srt 字幕格式)
  • 添加多个图片作为封面、添加循环的视频作为封面(视频轨)
  • 播放时可切换封面,且窗口会根据画面比例自动调整

配置方法

首先,我们需要安装 mpv 和相关插件,我用到的插件包括:

然后我们新建一个名为 lyric.cmd 的文件,粘贴进下面的内容,删除 // 和后面的注释内容:

mpv ^
	--video-aspect-override=no ^
	--force-window=yes ^
	--autofit=x500 ^
	--cover-art-files="cover01;cover02;cover03" ^
	--external-files="video-loop.mp4" ^
	--vid=1 ^ // 以上跟封面有关
	--sub-auto=fuzzy ^
	--sid=2 ^
	--secondary-sid=1 ^
	--sub-color="#ffffff" ^
	--sub-back-color="#000000" ^
	--sub-border-size=0 ^
	--sub-font="LXGW WenKai Mono GB Light" ^
	--sub-font-size=25 ^
	--sub-align-y=center ^
	--sub-margin-y=320 ^
	--sub-justify=left ^
	--vo=gpu-next ^ // 以上跟歌词字幕有关
	--loop-file=no ^
	--idle ^ 
	--ontop ^ // 一些可选项
	%*

其中:

  • --cover-art-files的值填写成封面图片的完整路径
  • --external-files的值留空,或者填写成视频封面的路径

然后就可以安装字体了。个人比较推荐收录范围很广的「霞鹜文楷 GB」,从 GitHub 猫啃网 下载都可以。

最后设置好 PATH,在终端中运行 lyric yourmusic 就可以看到效果了。

一些特殊情况

播放歌曲文件夹

当你拖拽文件夹进 mpv 来播放时,mpv 不会将 .lrc  等文件排除在播放列表外。这时,你可以使用 reload.lua 进行重载。它会清除当前播放列表并启用文件浏览器。

显示静态歌词

创建一个字幕格式的 .srt  文件,文件内只写一条时间轴,就可以静态地显示多行歌词了:

1
00:00:00,000 --> 01:00:00,000
your lyrics
your lyrics
\n
your lyrics
...

首次加载时因为前面的设置的关系,它会从居中位置、而不是顶部开始显示歌词,这时依然可以使用 reload.lua 进行重载。或者忽略掉也可以。

不想从终端启动

如果你不想从终端启动 lyric.cmd,可以再新建一个 mpv_lyric.vbs

Set WshShell = CreateObject("WScript.Shell")
  WshShell.Run chr(34) & "yourpath/lyric.cmd" & Chr(34), 0
Set WshShell = Nothing

你可以把 mpv_lyric.vbs  当做是快捷方式,它能让你像使用常规应用那样去打开,并且打开后控制台窗口也能得到隐藏。

结语

最后提一下封面加载的默认顺序,上述方案默认加载的封面顺序依次是:内镶封面 → --cover-art-files 处设置的封面 → --external-files 处设置的视频 → 同名文件.* 图片 → cover.* 图片。

一些播放效果

> 下载 少数派 2.0 客户端、关注 少数派公众号,解锁全新阅读体验 📰

> 实用、好用的 正版软件,少数派为你呈现 🚀