前文1说到,除了收藏动画,我还存储了不少音乐尚未整理。风格主要为动画的 OP/ED/OST2,而格式则以WAV、Flac为主,总量约700G。
这么多音乐想理清的话,不能说不是一件头疼的事。
首先是资源问题。我可能收集了两种音质的音乐,需要删除低音质的版本;可能下载了不同版本3的专辑,需要将两者区分开来;同一专辑的音乐可能散落在某个不知何处的文件夹中……等等等等。光是分门别类就已经要比摆放整齐的BT文件难上许多倍了。
其次是元数据问题。不同于影视剧能靠媒体程序识别文件名称并匹配与之对应的一个完美的元数据后生成一个nfo
数据文件供后续使用,音乐的 ID3Tags4是直接写入音频文件中的。因此需要寻找一个修改音乐标签的方法,使之能与「MusicBrainz」上的数据匹配5。此外还需解决音乐的歌词问题。
关于音乐的整理方法,请看《MusicBrainz 不完全使用指南》,这里还是水一下音乐库的选择及部署方案。
确定需求
工欲善其事必先利其器,先确定对音乐库的需求,才能选择合适的媒体程序。现阶段我的要求很简单:
- 界面美观:这是个人爱好,喜欢好看的东西
- 远程播放:局域网内还好,外网使用的问题,可以靠Frp解决
- 容易操控:最好有移动端
- 显示歌词:这点不是刚需,可有可无
- 安装方便:并不是什么骨灰玩家,所以只要简单的程序就好了
程序选择
从三月底购买NAS至今,我先后使用了Jellyfin/Emby/Plex 三种媒体程序。综合桌面端和移动端的使用场景,确定使用Plex作为最终的音乐库方案。
Jellyfin
Jellyfin是Emby的一个开源分支,也是大多数用户会选择的一款媒体程序。虽然开源至上,但是Jellyfin对音乐的支持较差,对音乐元数据的匹配能力较弱,不仅界面逊色Emby,还不支持歌词显示。
所以Pass。
桌面端
播放界面仅以下一种可选。
虽然官方指南给出了音乐库的文件夹编排格式6,但设置时并不能像Emby一样有选项可以选择。
移动端
移动端可以选择Web端或Jellyfin的App。界面除了不能显示歌词,大体上与Emby无异。
安装
安装Jellyfin很简单。可以参考「利用 Jellyfin + Bangumi 打造更舒适的动画媒体库」一文中相关安装步骤。
Emby
Emby是Jellyfin的付费实现。单从外观上来说Emby就要比Jellyfin好看很多。
毕竟是付费的软件,如果连UI都不好看,怎么吸引用户消费呢?
桌面端
专辑展示页面与Jellyfin类似,但在UI方面还是更胜前者一筹。
播放界面亦有多种可选。可以展示海报,也可以显示歌词。
不过歌词是付费功能,我用的是开心版所以有歌词。
创建媒体库的时候可以按实际情况选择文件夹结构。
移动端
这里演示的是iPhone的Web端,也就是Safari浏览器下的界面。Web端的emby可以很好地显示专辑列表、播放卡片和歌词。
但由于Emby是闭源的付费程序,所以iOS若是想使用Emby App的话,需要花30块钱购买播放权限,才能解锁App端播放音乐的功能。
支持正版当然是好的,可Emby实在是太贵了。月付45,终身大概在900。所以安卓用户请愉快地使用开心版,iOS请不愉快地使用Web端。
安装
使用Docker & Docker Compose安装Emby。
Docker的安装步骤请参考「AutoBangumi:自动追番,解放双手」中相关教程。我实在是太懒了不想再复制粘贴过来了。
这里安装的是开心版,网页端全功能可用。
version: "3.9"
services:
emby:
image: lovechen/embyserver:latest
container_name: emby
ports:
- 8096:8096
- 8920:8920
- 1900:1900/udp
- 7359:7359/udp
environment:
- PUID=1000
- PGID=1000
- GIDLIST=0
- TZ=Asia/Shanghai
volumes:
- ./emby:/config
- /media:/media
restart: unless-stopped
创建完成后访问ip:8096
即可到达web界面,进行更深入的操作及设置。
媒体库的创建也很简单,只要你预先按文件夹要求分类好音乐,Emby就能直接索引使用这些音乐,并将专辑墙展示出来。
Plex
Plex也是一个付费程序,付费限制的功能和Emby基本一致:App需要付费才能播放影音,否则限制播放一分钟。但网页端是全功能的,不过解码能力很差,需要在PC上额外安装Plex本地程序。
Plex上手难度低,媒体库添加便捷。对未经重命名过的文件,识别率要比前面介绍的二者要高。界面也更加美观,对音乐的支持很好,不过歌词的显示一般。
桌面端
歌词显示是付费功能。我目前挂靠在有购买会员的大佬名下,直接白嫖了。
移动端
Plex的移动端也很好看,要比Emby好看。
Plex还有一款音乐程序「Plexamp」,不过需要购买Plex Pass才能使用。
Plexamp能显示更多的音乐信息。与Jellyfin/Emby的集成App不同,是真正意义上的移动端音乐程序。
不过Plexamp目前还没有汉化,所以英语不好的话使用会有一些些困难。
- Higher Quality Visualizers 高质量的可视化
It'll look great, but your GPU and battery will melt. 它看起来很棒,但是你的GPU和电池将会融化。 - Show Album Codec Badges 显示专辑编解码器徽章
Want to show off your HD music to your dog? 想把你的高清音乐展示给你的狗狗吗?
安装
安装Plex主要参考「使用Plex & Docker搭建自己的媒体服务器」这篇文章。
在安装之前,你需要前往官网注册账户,因为Plex是在线验证的方式。安装完成后,媒体库会自动关联到你的 Plex 账户。这点与Jellyfin/Emby都不同,因此Plex无法破解。
但免费功能够用,所以也没有破解的必要。
同样是使用Docker安装。
下方配置中PLEX_CLAIM=your-claim
一项,需要填入Plex验证码,用于绑定账户。可以从 这里 获取, 有效期 4 分钟 。
version: "3.9"
services:
plex:
image: linuxserver/plex
container_name: plex
network_mode: host
ports:
- 32400:32400
- 1900:1900/udp
- 3005:3005
- 5353:5353/udp
environment:
- TZ=Asia/Shanghai
- PUID=0
- PGID=0
- VERSION=docker
- PLEX_CLAIM=your-claim
volumes:
- ./plex:/config
- /media:/media
restart: unless-stopped
启动完成后可以访问ip:32400/web
进入web界面,需要再登陆一次Plex账户。
媒体库的设置大同小异,但Plex细节更多。这里展示一下我的配置,仅供参考。
语言需要选择「中文」,这样专辑或歌手的信息才能正确显示为中文。
扫描器、代理、可见性、专辑排序均保持默认。
因为我的音乐已经全部内嵌好MusicBrainz的ID3信息,所以首选本地元数据。
存储跟踪进度主要用于长音频,所以不需要开启,否则听过的歌会被记住播放位置而无法从头播放。
艺人简介、专辑评分、热门曲目都可以开启。
类型首选「嵌入的标签」,因为我的音乐已经全部内嵌好MusicBrainz的ID3信息。
至于专辑封面,不知道Plex会不会读取我本地的cover.jpg
,所以使用的是「Plex音乐和本地文件」。
结语
如开头所说,最终我选择了Plex。因为它基本符合我的要求:界面好看、有移动端、界面好看。
就是没有公网ip,内网穿透花了点功夫。
虽然要钱,但是Plex好看,所以值得。
我连影视库都换到Plex了,现在是Emby和Plex双开,手机上用infuse连接Plex看片超棒。
- 详见:「利用 Jellyfin + Bangumi 打造更舒适的动画媒体库」 ↩
- 「OP」指片头曲,「ED」指片尾曲,「OST」指「Original Sound Track」,意为「影视原声音乐大碟」或「原声带」,也就是配乐。 ↩
- 日本的动画专辑会有「初回限定版」和「普通版」之分,「初回限定版」一般会附带歌曲MV,有时与「普通版本」仅仅是封面和礼品上的区别。 ↩
- ID3是一种metadata容器,多应用于MP3格式的音频文件中。它可以将相关的曲名、演唱者、专辑、音轨数等信息存储在MP3文件中,又称作「ID3Tags」。详见维基百科。 ↩
- 目前我用过的媒体程序,如 Jellyfin/Emby/Plex ,在音乐的元数据上使用的都是「MusicBrainz」的数据库。 ↩
- 详见:https://jellyfin.org/docs/general/server/media/music.html ↩
本文作者:mikusa
本文链接:https://www.himiku.com/archives/build-my-music-library-service.html
版权声明:所有文章除特别声明外,均系本人自主创作。转载及引用请联系作者,并注明出处(作者、原文链接等)。
测试了一遍感觉Emby最适合我了,不过大佬在测试Emby的时候,有没有遇到过播放界面专辑图片模糊的情况呢......?查了一圈我也不知道该怎么解决......
这还真没遇到过,试着往专辑目录里丢一张名为 cover 的封面图片看看?
好,我试试看,谢谢大佬
还是不行,高分辨率的专辑图片总是被压缩到几百分辨率
......大佬你的专辑图片是内嵌到歌曲还是什么......我都是内嵌到歌曲里的
哦高分辨率的啊
那你不要内嵌太大的图片,不然确实是会扫不出来封面。
你要是在pc上整理的话,pc文件直接预览不是有封面吗,你看pc都显示不出封面来的时候就得意识到这图太大了……
不,Emby能够识别出来,但是播放的时候就变得比较模糊
......
这里是截图:
https://raw.githubusercontent.com/MedicMoGu/Private-collection-article-images/main/Snipaste_2023-02-03_10-03-16.jpg
一直想找个能显示歌词的(能显示内嵌歌词的就行),lovechen/embyserver的这个只是增加了解码,不能显示歌词,也不太想用emby。还有GitHub上有个finamp的项目,是专门第三方jeffylin的音乐客户端,有安卓和苹果客户端,很美观,目前再用,推荐,就是没有歌词,项目作者短期内也不想增加这项功能。
这个emby可以显示歌词的啊,内嵌lrc文件都行。finamp瞅了眼ios上的app,看着还有点简陋,还是plexamp好看 ୧(๑•̀⌄•́๑)૭
不过还有个navidrome好像还不错?可以试试看
大佬你好,我在尝试安装emby,请问有无见过以下报错:
Start container emby failed: {"message":"driver failed programming external connectivity on endpoint emby (fd7220f40a1df2484192ffe406be09a961581d0b3235e2fe3dc7f1be65bb4d07): Error starting userland proxy: listen udp4 0.0.0.0:1900: bind: address already in use"}.
说是端口被占用,但使用netstat -tanlp命令查询并未看到1900字样的条目,我删去了jellyfin的容器,仍然报此错误
没遇到过,我用容器安装的emby,只桥接了
8096
我使用的你提供的docker-compose,
ports:
这个1900一只提示被占用,我改成1901后能进了,这个端口改了有影响吗
哦哦这样啊,我这是抄的配置,实际上留一个8096就行了。所以其他的你删掉吧直接就
阿这,虽然,但是能听到这个答案太好了
哈喽,能问下docker开心版下,桌面端Theater能使用吗?我安卓端和网页端都能正常使用,但Theater上点击播放就弹出Premiere认证,网页端仪表盘是有Premiere标识的
应该是能用的呀,不过我也有点忘了,等下班回去再看看有没有。
哦我懂了,桌面端也要下破解版,安装一个试试看吧,传送门
芜湖,感谢大佬!
博主用jellyfin的时候有遇到过wav格式音乐中文标签无法识别的问题吗,我用mp3tag/music tag UTF8 UTF16编码都写过,但只要是wav且标签内含中文,就会乱码,全英文标签项则正常
wav格式对标签的支持有限,所以我都是直接转成flac再写入标签的,不直接使用wav
找到解决办法了,如你所说是wav格式本身的问题。可以用kid3标签编辑软件删去文件乱码的tag3,就能读取正常的标签了。
emby开心版,哪里下载?
我文章里没写吗……
感觉你还真的是太清闲了... 我存的东西也不少,但基本上都是简单的文件夹归档而已
哈哈哈主要是觉得好玩,不刷机了自然就折腾别的东西了
群晖NAS 官方的的Audio Station也是一个选择
还有个navidrome的网页版做得不错,不过这玩意没有app,手机版网页操作有点蛋疼。
搜了一下,看官网说是兼容 Subsonic/Madsonic/Airsonic 的客户端,所以手机app应该没问题,但似乎没有中文……就比较难顶了
噢噢,是有中文的,回头docker梭一个看看