虽然小雅提供了Emby全家桶的一键安装,Jellyfin并没有被直接支持。Jellyfin,作为一个完全开源的媒体服务器平台,提供了灵活的安装选项,包括Docker部署,这可以很容易地集成到小雅的系统中。
用户可以通过自定义Docker容器和配置文件,将现有的媒体库加入到Jellyfin中,同时保留原有的数据和设置,并且完成元数据的实时同步。
一、安装resilio
关于配置文档详见resilio-sync - LinuxServer.io
docker run -d \
--name=resilio-sync \
-e PUID=0 \
-e PGID=0 \
-e TZ=Asia/Shanghai \
-p 8888:8888 \
-p 55555:55555 \
-v /path/to/config:/config \
-v /path/to/downloads:/downloads \
-v /path/to/data:/sync \
--restart unless-stopped \
linuxserver/resilio-sync:latest
-d
:这个参数指定容器在后台运行(daemon mode),让命令行界面可以立即返回,而不是挂起到容器的日志输出。--name=resilio-sync
:这个参数为容器设置一个名称,这里的名称是resilio-sync
。通过这个名称,你可以更容易地管理容器,比如查看其状态、启动、停止或删除等。-e PUID=0
和-e PGID=0
:这两个环境变量参数用于指定容器内进程运行的用户 ID 和组 ID。这里设置为0
,即表示以 root 用户权限运行容器内的进程。-e TZ=Asia/Shanghai
:此环境变量设置容器的时区,这里设置为Asia/Shanghai
。-p 8888:8888
和-p 55555:55555
:这两个参数将容器内部的端口映射到宿主机的相应端口。8888
通常用于 Resilio Sync 的 web 界面访问,而55555
可能用于设备间的数据同步。(建议以host模式运行)-v /path/to/config:/config
、-v /path/to/downloads:/downloads
和-v /path/to/data:/sync
:这三个参数都是卷(volume)挂载命令,用于将宿主机的目录挂载到容器内的指定目录。这允许容器访问外部目录的数据,并保持容器重启后数据的持久性。
/path/to/config:/config
:将宿主机的配置文件目录挂载到容器内的/config
。/path/to/downloads:/downloads
:将宿主机的下载目录挂载到容器内的/downloads
。/path/to/data:/sync
:将宿主机用于数据同步的目录挂载到容器内的/sync
。--restart unless-stopped
:此参数控制 Docker 的重启策略。设置为unless-stopped
表示除非明确停止,否则在容器退出时总是重新启动容器,包括 Docker 系统的重启。linuxserver/resilio-sync:latest
:这是要运行的 Docker 镜像的名称和标签。这里使用的是linuxserver/resilio-sync
镜像的latest
版本。
注意:/path/to/data
就是存放小雅元数据的位置!
可选配置项:
-m 5126M \
--cpus=0.5 \
--log-opt max-size=1m \
--log-opt max-file=1 \
--device-write-iops /dev/sda:30 \
--device-read-iops /dev/sda:50 \
/dev/sda
需要替换成对应的磁盘(使用df
命令查看)
-m 5126M
:设置容器可以使用的最大内存,此处限制为5126兆字节。--cpus=0.5
:为容器分配单个CPU核心的50%的计算能力。--log-opt max-size=1m
:设置日志文件的最大大小为1兆字节。当日志文件达到这个大小时,它将会进行轮换。--log-opt max-file=1
:限制在覆写之前维护的日志文件数量。这里只保留一个日志文件。--device-write-iops /dev/sda:30
:限制对设备/dev/sda
的写入每秒输入/输出操作数(IOPS)为30。--device-read-iops /dev/sda:50
:限制从设备/dev/sda
读取的每秒输入/输出操作数为50。
二、下载最新元数据
虽然在同步目录下创建空文件夹,同样能够完成同步,但是这样会花费较长的时间,同时会加大其他用户的上传负担。
建议下载all.mp4后手动解压,上传至/sync
目录(选择想要的元数据文件夹,不需要全部上传)
三、配置resilio
xiaoya提供以下文件夹的每日更新:
/每日更新/电视剧 (保存到 /sync/xiaoya/每日更新/电视剧 )
BHB7NOQ4IQKOWZPCLK7BIZXDGIOVRKBUL/每日更新/电影 (保存到 /sync/xiaoya/每日更新/电影 )
BCFQAYSMIIDJBWJ6DB7JXLHBXUGYKEQ43/电影/2023 (保存到 /sync/xiaoya/电影/2023 )
BGUXZBXWJG6J47XVU4HSNJEW4HRMZGOPL/纪录片(已刮削) (保存到 /sync/xiaoya/纪录片(已刮削) )
BDBOMKR6WP7A4X55Z6BY7IA4HUQ3YO4BH/每日更新/动漫 (保存到 /sync/xiaoya/每日更新/动漫 )
BQEIV6B3DKPZWAFHO7V6QQJO2X3DOQSJ4/每日更新/动漫剧场版 (保存到 /sync/xiaoya/每日更新/动漫剧场版 )
B42SOXBKLMRWHRZMCAIQZWNOBLUUH3HO3/音乐 (保存到 /sync/xiaoya/音乐 )
BHAYCNF5MJSGUF2RVO6XDA55X5PVBKDUB
(注意只需要选择对应的文件夹就行,路径并不需要一摸一样,同时文件夹的名称同样可以随意修改)
四、resilio高级配置
resilio-sync运行时会占用大量的CPU和IO资源,因此进行限制和优化是完全有必要的。
1.建议关闭调试日志
调试日志会产生大量的日志,导致储存空间和高IO占用
2.高级用户偏好设置
详细说明详见Power user preferences – Sync (resilio.com)
名称 | 建议值 | 说明 |
---|---|---|
log_size | 1 (MB) | Amount of memory allocated for debug logs |
disk_low_priority | true | Forces all disk read-write operations to low priority |
worker_threads_count | 1 | Number of CPU threads to use during indexing. "0" means "use as many threads as possible on all cores available". 1 means one thread only, and so on. *** |
show_service_disk_thread | true | Shows or hides disk threads in overview graphs |
rate_limit_local_peers | true | Limits LAN bandwidth |
folder_rescan_interval | 1800(sec) | Every folder_rescan_interval Sync rescans folder for changes it could miss with other means |
3.定时启动关闭容器
0 2 * * * docker start resilio-sync
0 6 * * * docker stop resilio-sync
五、常见问题
1.resilio常见问题
2.jellyfin媒体库扫描常见问题
①媒体库扫描缓慢/UI界面卡顿
目前,Jellyfin 在进行大规模媒体库扫描时仍然存在性能问题,尤其是在首次扫描时。这一问题主要源于扫描过程中的数据库争用和资源管理不当,导致I/O等待时间过长,严重时甚至会影响到整个服务器的响应速度。
据最新的讨论显示,虽然开发团队已经在一些测试版中尝试了修复措施,但到目前为止,这些问题并未完全解决。用户反映即使在新版本(如10.8.9和10.8.13)中,当库容量很大时,扫描仍旧非常缓慢,有时需要几天时间才能完成,并且在扫描期间Jellyfin几乎无法使用。
开发团队已经意识到这一问题,并计划在未来的更新中继续对这些性能问题进行优化。但具体的修复时间和解决方案尚未明确公布。因此,如果在使用Jellyfin时遇到了相似的问题,建议关注其官方论坛和GitHub问题跟踪页面,以获取最新的更新和可能的解决方案。
对于这类问题,可以查看以下讨论和反馈页面:
Very slow initial Library scan · Issue #2600
Slow performances when scanning large amount of files inside a directory · Issue #6906
评论区