基于 Jellyfin 的家庭媒体库搭建
在 NAS Docker 上部署 Jellyfin 服务端,并对比各平台客户端的选型与接入方案
概述
Jellyfin 是一款开源、免费的媒体服务器软件,从 Emby 3.5 分支而来,不依赖订阅或许可证。它负责扫描本地媒体文件、提取元数据(海报、简介、演职员表等),并通过 HTTP API 向客户端提供流媒体播放能力。
与 Plex、Emby 等商业方案相比,Jellyfin 的核心优势在于完全自主可控:数据留在本地,无需绑定厂商账号,适合在家庭 NAS 或私有服务器上长期运行。
架构
整体采用典型的 C/S 架构:
┌─────────────┐ HTTP / HTTPS ┌──────────────────┐
│ 客户端 App │ ◄──────────────────► │ Jellyfin Server │
│ (Vidhub 等) │ 8096 端口 │ (Docker @ NAS) │
└─────────────┘ └────────┬─────────┘
│ 挂载卷
▼
┌──────────────────┐
│ /media (电影库) │
└──────────────────┘- 服务端:运行在 NAS 的 Docker 容器中,媒体目录通过 Volume 挂载至容器内指定路径。
- 客户端:各平台原生 App 或浏览器,通过局域网 IP + 端口访问服务端。
服务端部署
当前方案将 Jellyfin 直接部署在 NAS 的 Docker 环境中,并将预先规划好的 media 目录挂载为容器内的媒体库路径。Jellyfin 启动后会自动扫描该目录,按电影、剧集等类型建立索引。

典型的 Docker 运行参数如下(路径需按实际 NAS 配置调整):
docker run -d \
--name jellyfin \
-p 8096:8096 \
-v /path/to/media:/media \
-v /path/to/config:/config \
jellyfin/jellyfin:latest首次访问 http://<NAS_IP>:8096 完成初始化向导,添加媒体库并指向 /media 即可。
客户端选型
Jellyfin 官方客户端覆盖主流平台,但在交互细节、转码策略和跨平台一致性上表现一般。以下是在实际使用中对比过的几款第三方客户端:
| 客户端 | 平台 | 优势 | 局限 |
|---|---|---|---|
| Vidhub | iOS / iPadOS / macOS / tvOS / Android | 界面成熟,跨 Apple 与 Android 生态;直连 Jellyfin API,播放体验流畅 | 付费软件(终身授权约 ¥100+) |
| Infuse | Apple 全系 | 解码能力强,支持 8K 与高码率片源 | 仅 Apple 生态;订阅价格较高 |
| SenPlayer | Apple 全系 | 同时支持 Jellyfin 与 IPTV 源 | IPTV 体验不如专用播放器 |
| 官方客户端 | 全平台 | 免费,与服务器版本同步更新 | UI 与操作逻辑相对粗糙 |
| 浏览器 | 任意 | 零安装,适合临时访问 | 无原生解码优化,高码率片源体验较差 |
Vidhub(推荐)
目前在 Apple 生态(iOS、iPadOS、macOS、tvOS)上功能已相当完善。2025 年初起也支持 Android 手机、平板与 TV,在以下设备上实测表现稳定:
- Xiaomi 14 Pro(HyperOS 2.0)
- 红米投影仪(HyperOS For TV)
- Samsung Galaxy Tab S8(OneUI 7.0 For Tablet)
配置方式:在 App 中添加 Jellyfin 服务器地址(http://<host>:8096),登录账号后即可同步媒体库。
Infuse
适合对画质有更高要求的 Apple 用户。Infuse 内置强大的本地与网络解码引擎,可流畅播放 8K 与高码率内容。若终端设备不支持高规格输出,这一优势在实际场景中意义有限。此外,Infuse 不支持 Android,且采用订阅制,长期使用成本较高。
SenPlayer
可作为 Jellyfin 的备选客户端,额外支持 IPTV 直播源接入。若已有专用 IPTV 播放器(如 APTV),建议 IPTV 与点播分 App 使用,各取所长。
浏览器访问
无需安装客户端时,可直接通过浏览器访问:
http://<host>:8096适合偶尔查阅媒体库或在未安装 App 的设备上临时播放,不建议作为日常主力方案。
效果预览
