外观
Jellyfin:开源媒体服务器
和飞牛影视定位相同:扫描媒体库、刮削元数据、提供播放。选它的理由通常是客户端生态(电视、投影、各类播放器上的支持面广)和完全开源无付费功能。
要不要装
fnOS 自带的影视应用已经能满足多数需求,不要为了「多一个选择」而同时跑两套——两套都扫描同一批文件,会重复占用 CPU 和内存。
考虑 Jellyfin 的合理理由:某个播放设备只有 Jellyfin 客户端、需要特定插件、或者你希望媒体服务独立于 NAS 系统以便将来迁移。
部署
yaml
services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
restart: unless-stopped
ports:
- "8096:8096"
volumes:
- /vol1/docker/jellyfin/config:/config
- /vol1/docker/jellyfin/cache:/cache
- /vol1/media:/media:ro
devices:
- /dev/dri:/dev/dri
group_add:
- "video"要点:
- 媒体目录挂载为
:ro(只读),除非需要它写入 NFO 和字幕。 devices映射/dev/dri是硬件转码的前提,没有这一项就只能软件转码。cache目录会存放转码临时文件,可能占用较多空间,建议放在固态盘上。
硬件加速
映射了设备只是第一步,还要在管理后台的播放设置里启用对应的硬件加速方式,并勾选支持的编解码格式。设置完成后实际播放一个需要转码的文件,观察 CPU 占用——占用很低才说明生效了。原理见转码。
数据与备份
config 目录包含数据库、用户、播放记录和元数据,值得备份。媒体文件本身按你的备份策略处理。cache 目录可以不备份。
已知坑
- 媒体目录的命名规范和刮削逻辑与飞牛影视不完全一样,迁移时可能需要重新整理,见媒体库创建。
- 容器内的用户需要有权限读取媒体目录,权限不对时表现为「扫描不到文件」。
- 使用
latest标签会跟进大版本更新,需要可回滚时固定版本号。