惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
雷峰网
雷峰网
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
B
Blog
Y
Y Combinator Blog
WordPress大学
WordPress大学
Microsoft Azure Blog
Microsoft Azure Blog
小众软件
小众软件
G
Google Developers Blog
云风的 BLOG
云风的 BLOG
罗磊的独立博客
博客园 - 三生石上(FineUI控件)
博客园 - 叶小钗
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
量子位
The Cloudflare Blog
T
The Blog of Author Tim Ferriss
博客园_首页
B
Blog RSS Feed
Hugging Face - Blog
Hugging Face - Blog
IT之家
IT之家
阮一峰的网络日志
阮一峰的网络日志
L
LangChain Blog
宝玉的分享
宝玉的分享

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
使用 MPV 播放歌词 - 少数派
2023-09-20 · via 少数派

Matrix 首页推荐 

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


你或许听说过 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 客户端、关注 少数派公众号,解锁全新阅读体验 📰

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