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 Filenavigator、Mpv-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 客户端、关注 少数派公众号,解锁全新阅读体验 📰
> 实用、好用的 正版软件,少数派为你呈现 🚀
© 本文著作权归作者所有,并授权少数派独家使用,未经少数派许可,不得转载使用。