上回书说到折腾了一番我利用Rock5b开发板搭建的NAS,因为eMMC存储被撑爆而无奈另起炉灶,建起了Emby环境,还拿到了小金标。
Emby一直以来运行得都很正常,毕竟是付费软件,比起Jellyfin而言,要稳定很多。但是,Apple在9月份推出的新系统改变了一切,升级后手上的iPhone 14开始频繁无响应自动锁定,直到恢复默认设置后才逐渐恢复正常。而家里的播放器在升级后,Emby客户端播放电影时无法正常加载中文字幕,显示方块,且画面出现明显卡顿,但是切换回英文字幕又一切正常。
一开始我并没有觉得是苹果系统升级的原因,因为播放器是自动升级无感的。
于是按照经验重装Emby APP未果,然后怀疑是不是Emby的当前版本4.7.14.0太低。于是,按照哔哩哔哩上大佬共享的资源(原文地址),重新安装了最新版Emby,命令如下:
sudo docker run -d
--name=emby
-e PUID=1000
-e PGID=1000
-e TZ=Asia/Shanghai
-p 8096:8096
-v /srv/dev-disk-by-uuid-91b16c01-2496-4993-aeee-a99c21d83597/share/appdata/emby/config:/config
-v /srv/dev-disk-by-uuid-91b16c01-2496-4993-aeee-a99c21d83597/share/resources/tv:/tv
-v /srv/dev-disk-by-uuid-91b16c01-2496-4993-aeee-a99c21d83597/share/resources/movie:/movies
-v /opt/vc/lib:/opt/vc/lib
--add-host api.themoviedb.org:13.224.161.90
--add-host api.themoviedb.org:13.35.67.86
--add-host www.themoviedb.org:54.192.151.79
--add-host api.themoviedb.org:52.85.247.30
--add-host api.themoviedb.org:52.85.247.33
--add-host api.themoviedb.org:52.85.247.69
--add-host api.themoviedb.org:52.85.247.81
--device /dev/dri:/dev/dri
--device /dev/vchiq:/dev/vchiq
--device /dev/video10:/dev/video10
--device /dev/video11:/dev/video11
--device /dev/video12:/dev/video12
--restart unless-stopped
--privileged
linuxserver/emby:latest
下载解压文件到embyserver目录中的system里,重启emby服务,进入emby服务端设置,在Premiere Key中随便输入字符确定即可完成本地验证。 注意目录是在Docker中,需要进入Docker后执行拷贝覆盖操作。
随后在浏览器内终端(F12)执行 window.location.reload(true);
可以看到已经升级到最新版本,且有金标。
但是问题依旧存在,后来我查看了设置才想到可能是升级后带来的问题。
可是我不能坐以待毙,等待emby推出新的APP,毕竟看电影是无论如何不能断的。
所以我最终决定,转回Jellyfin!
Rock5b是ARMV8架构,所以只能选择官方的Jellyfin镜像安装。
sudo docker run -d
--name=jellyfin
-e PUID=1000
-e PGID=1000
-e TZ=Asia/Shanghai
-e JELLYFIN_PublishedServerUrl=192.168.1.66
-p 8097:8096
-p 8921:8920
-p 7359:7359/udp
-p 1900:1900/udp
-v /srv/dev-disk-by-uuid-91b16c01-2496-4993-aeee-a99c21d83597/share/appdata/jellyfin_cache:/cache
-v /srv/dev-disk-by-uuid-91b16c01-2496-4993-aeee-a99c21d83597/share/appdata/jellyfin_metadata:/metadata
-v /srv/dev-disk-by-uuid-91b16c01-2496-4993-aeee-a99c21d83597/share/appdata/jellyfin:/config
-v /srv/dev-disk-by-uuid-91b16c01-2496-4993-aeee-a99c21d83597/share/resources/tv:/tv
-v /srv/dev-disk-by-uuid-91b16c01-2496-4993-aeee-a99c21d83597/share/resources/movie:/movie
-v /srv/dev-disk-by-uuid-91b16c01-2496-4993-aeee-a99c21d83597/share/resources/music:/music
-v /srv/dev-disk-by-uuid-91b16c01-2496-4993-aeee-a99c21d83597/share/resources/downloads:/downloads
--device /dev/dri:/dev/dri
--restart unless-stopped
jellyfin/jellyfin:latest
注意这里 -v /srv/dev-disk-by-uuid-91b16c01-2496-4993-aeee-a99c21d83597/share/appdata/jellyfin_cache:/cache的参数是为了将缓存数据存储在我的数据盘上,而非系统盘上。Jellyfin会将转码的缓存数据保存到/var/lib/jellyfin中,占用大量空间。
安装的时候疏忽了,没有加上add-host参数,因为国内的特殊情况,无法刮削电影信息。
无法刮削的症状是这样的,添加了媒体库之后,只会显示1、2部电影,但是搜索电影名可以正常显示。这个问题很具欺骗性,Jellyfin的机制是只有刮削成功才会在默认媒体库视图里显示。
我在国外Jellyfin论坛搜索了好久也没有人遇到类似问题,因为国外不存在特殊情况啊。
解决方法有两种,要么重装Jellyfin加上参数,要么使用MetaShark插件,从豆瓣抓取信息。
具体的步骤如下:
点击我的插件——存储库,点击+号新建存储库。
添加插件存储库:
确认Json地址添加到存储库中。
MetaShark为Active状态。
进入控制台 -> 媒体库,点击任一媒体库进入配置页,在元数据下载器选项中勾选MetaShark,并把MetaShark移动到第一位。
同理也可将图片获取程序改为MetaShark。
配置完成后,所有媒体库的电影信息即可被刮削且正常显示。
顺便把Jellyfin的硬件加速功能也启用了。
完成后,Jellyfin App可以正常播放高清电影了。
准备在未来一段时间内保持Emby和Jellyfin两个Docker同时存在,等待Emby的客户端的下一个版本更新。播放效果上,两者看不出什么差别。但是Jellyfin对于字幕文件的兼容性略差一些,有些ass字幕文件无法显示。
已经修改了字幕设置如下:
并进入容器安装字体。
docker exec -it jellyfin /bin/bash
apt update
apt install fonts-noto-cjk-extra
为了避免字幕显示方块,也可以启用备用字体。
将mysh.woff2(微软雅黑)字体文件拷贝到数据盘上,并重启Jellyfin Docker。
播放ass字幕时还是有明显卡顿,看来Jellyfin确实需要折腾的地方比较多,新手要弄成一个完美配置有一定的难度。
,