基于玩客云(s805)部署的navidrome服务的转码设置

前情概要

因为最近流量达量降速到 1Mbps,用 Dsub 连接玩客云上部署的 navidrome 服务听音乐经常会出现卡顿,难以忍受。我想到 navidrome 是有转码功能的。遂有了这片文章。

准备阶段

当然的第一步,要准备好 navidrome 的 docker 镜像。因为出于安全考虑 navidrome 在 web 页面的转码设置被禁用了,所以需要在容器创建时指定环境变量ND_ENABLETRANSCODINGCONFIG=true。

1
2
3
4
5
6
7
8
9
10
11
12
suyue@onecloud:/mnt/disk0/docker/navidrome$sudo docker run -d \
--name navidrome \
--restart unless-stopped \
-p 4533:4533 \
--user 1000:1000 \
-v $(pwd)/data:/data \
-v $(pwd)/music:/music:ro \
-e ND_LOGLEVEL=info \
-e ND_SCANSHEDULE=1h \
-e ND_ENABLETRANSCODINGCONFIG=true \
-e ND_CONFIG=/data/navidrome.toml \
deluan/navidrome:develop

参数说明

  • –user 1000:1000 : 为了避免权限问题指定用户和组
  • -e ND_CONFIG=/data/navidrome.toml : 可选,指定 navidrome 配置文件的位置,方便修改配置
  • -e ND_ENABLETRANSCODIGCONFIG=true : 开启 navidrome 的转码

小插曲
可能因为当时拉取的镜像的问题,当服务上线后,navidrome 服务器经常会出现断连,同时专辑封面显示不正常,音乐没法正常播放,改为更早拉取下来的镜像后,恢复正常。可能正是因为镜像本身有问题,作者也是在之后连续更新了好几个镜像。参数正确,权限没问题的情况下,服务没法正常运行,可能就是镜像本身的问题了。

客户端设置

主要是两种客户端,一个是 navidrome 的 web端,另一个就是 android 平台的 Dsub了,分别介绍。

  • web 端
    右上角的 Setting -> Players -> NavidromeUI [Chrome/Windows] ,选择需要的音频格式和比特率,保存。
  • Dsub 端
    Settings -> Cache/Network -> Max Audio Bitrate - Mobile,选择对应的码率即可。

最后

接下来,就可以快乐的享受音乐了,即使只有 1Mbps 也能无卡顿的播放了。虽然专辑的初次加载可能需要一点时间,但是相比于中间的卡顿,是可接受的!