2026 Jellyfin 家庭媒体服务器:Docker 部署加硬件转码打造私人 Netflix
家里已经用 Immich 管照片、用 Daisy 看漫画,自托管媒体的版图就差最后一块——视频。平时下载的电影和剧集散落在硬盘各个角落,想看的要翻半天目录,没有封面海报也没有剧情简介。更麻烦的是不同设备的格式兼容问题——同一部电影在电视上能播,在手机上就卡住不动了,因为视频编码不兼容。
Jellyfin 就是来解决这些的。一套完全开源的媒体服务器软件,把你的电影和电视剧整理成 Netflix 一样的海报墙界面,自动下载封面和剧情简介。而且支持实时转码——视频格式不兼容?Jellyfin 在后台自动转码成你设备能播放的格式再发给你,用户不需要关心什么 H.264、HEVC 这些技术细节。
完全免费,没有付费功能藏着掖着。对比 Plex 月费或 Emby 买断才能解锁硬件转码,Jellyfin 全功能免费,一分钱不用花。而且它是开源项目,GitHub 上 33k+ Star,社区非常活跃——几乎每个月都有版本更新和新功能加入。
部署好之后,你在电视上打开 Jellyfin 客户端看到的画面跟打开 Netflix 一模一样:海报墙、分类浏览、继续播放、收藏列表。把你硬盘里散乱的文件变成流媒体平台那样的体验,差别就是”数据在我自己硬盘里”对”数据在云端”。
一、Jellyfin vs Plex vs Emby
| 对比项 | Jellyfin | Plex | Emby |
|---|---|---|---|
| 价格 | 完全免费 | 基础免费,硬件转码需 Plex Pass | 基础免费,硬件转码需购买 License |
| 开源 | 是(GitHub 33k+ Star) | 否 | 否 |
| 硬件转码 | 免费 | 需付费 | 需付费 |
| 客户端 | 全平台都有 | 全平台都有 | 全平台都有 |
| 插件系统 | 支持 | 支持(部分需付费) | 支持 |
| 数据所有权 | 完全归你 | 需要 Plex 账号认证 | 需要 Emby Connect |
三个软件核心功能差不多,但 Jellyfin 是唯一完全免费且开源的。如果你不想交”硬件转码税”,选 Jellyfin 是唯一的选择。
二、Docker 部署
先准备好目录结构。创建一个 jellyfin 文件夹,里面放 docker-compose.yml,再建 config、cache 和 media 三个子目录。media 下面再分 movies(电影)和 tvshows(电视剧)两个目录——这样分类是 Jellyfin 推荐的,刮削海报时能自动识别。
services: jellyfin: image: jellyfin/jellyfin:latest container_name: jellyfin restart: unless-stopped ports: - "8096:8096" volumes: - ./config:/config - ./cache:/cache - ./media:/media environment: TZ: Asia/Shanghai devices: - /dev/dri:/dev/dri注意 devices 那一行是把物理机的核显设备映射进容器——如果你之后想用 Intel 核显做硬件转码,这行不能少。没有独立显卡也没关系,先默认配着,不影响服务运行。
启动服务:
docker compose up -d访问 http://你的IP:8096,进入初始化向导。几个关键设置:
- 语言选简体中文
- 创建管理员账号——密码别太简单
- 添加媒体库——选择库的类型为电影,文件夹指向
media/movies,刮削语言选简体中文。同样的操作为电视剧再添加一次,文件夹指向media/tvshows
完成后你会看到一面漂亮的海报墙——封面、年份、剧情简介、评分、演员列表都自动加载好了。按一下播放,不需要考虑格式兼容问题。体验跟商业流媒体平台没有任何区别,但数据全在你自己的硬盘里。
三、文件命名规范
文件命名是影响刮削准确率的关键因素。很多新手部署完 Jellyfin 后发现刮不出海报,八成是文件名不规范。Jellyfin 要去互联网数据库里查这部电影的信息,如果你的文件名只有中文,数据库里大概率匹配不到。
电影推荐格式:
media/movies/星际穿越 (2014)/星际穿越 (2014).mkv电影名称后面必须用括号标注发行年份。互联网电影数据库(如 TMDB)就是按年份来区分同名电影的——1994 年的《肖申克的救赎》和别的电影重名时,年份是唯一的区分依据。
电视剧推荐格式:
media/tvshows/权力的游戏/Season 01/权力的游戏 S01E01.mkvmedia/tvshows/权力的游戏/Season 01/权力的游戏 S01E02.mkvS01E01 表示第一季第一集,S01E02 表示第一季第二集。如果某集是一集特别长拆成了上下两部分,可以用 S01E01-E02 表示。
不规范的命名示例:
media/movies/星际穿越.mkv ❌ 没有年份media/movies/Interstellar-2014.mkv ❌ 年份格式不对media/tvshows/权力的游戏/第一集.mkv ❌ 没有季数和集数随便命名的文件也能播放,但大概率刮不出海报和简介。很多新手在这里卡住,以为是 Jellyfin 的问题,其实只是文件名写错了。
批量重命名的小技巧: 如果文件很多不想一个个改,可以用 TinyMediaManager 这个工具批量整理。它能自动识别电影和剧集、刮削元数据、按规范格式重命名文件,整理完后直接扔进 media 目录,Jellyfin 自动识别。不过这是辅助手段,不是必须的——手动改几个文件名也就一两分钟的事。
四、硬件转码配置
当你在家用电视看 4K 电影时,电视直接解码播放,不需要转码。但当你出门在外用手机 4G 网络看同一部电影时——手机屏幕只有 1080p,网络带宽也可能只有几兆——Jellyfin 需要实时把 4K 视频转码成 1080p 再发送出去。这个转码过程如果靠 CPU 软解,4K 视频能让 CPU 跑满到 100%,同时画面卡顿缓冲。
GPU 硬件转码能把这个过程加速 5-10 倍,同时 CPU 占用率降到 10% 以下。
Intel 核显配置步骤:
- 确认系统里有
/dev/dri设备——执行ls /dev/dri,能看到renderD128等设备文件 docker-compose.yml里已经加了devices映射,不需要额外操作- 在 Jellyfin 后台:设置 → 播放 → 转码 → 硬件加速选 Intel QuickSync (QSV)
- 勾选所有可用的解码器和编码器
Nvidia 独显配置步骤:
- 安装 Nvidia Container Toolkit(参考 Ollama 文章的安装方法)
- 在
docker-compose.yml的 Jellyfin 服务加上 GPU 资源配置 - Jellyfin 后台硬件加速选 Nvidia NVENC
配置好之后播一部 4K 电影,打开服务器的资源监控:如果 CPU 占用率明显降低、GPU 占用率升高——说明硬解生效了。CPU 占用率从 90% 降到个位数,效果非常明显。
没有 GPU 怎么办: 如果只在家里局域网播放(电视、电脑、平板),大多数设备支持直接解码播放,不需要转码。只有远程播放时才需要转码,所以你可以在没有 GPU 的情况下先跑着,以后再升级。
五、客户端和远程访问
Jellyfin 的客户端覆盖所有主流平台:
| 平台 | 推荐客户端 | 备注 |
|---|---|---|
| Android / Android TV | Jellyfin 官方 App | 支持 Google Cast 投屏 |
| Apple TV | SwiftFin | 第三方客户端,体验更好 |
| iOS / iPadOS | Jellyfin Mobile 官方 | 支持离线下载 |
| Windows / Mac / Linux | Jellyfin Media Player | 官方桌面客户端 |
| 浏览器 | 直接访问 Web 端 | 功能齐全,支持播放 |
远程访问方案(按推荐顺序):
- Tailscale 组网(推荐)——手机装 Tailscale,通过虚拟 IP 直接连回家里的 Jellyfin。速度接近局域网,端到端加密,不需要配 HTTPS。
- Nginx Proxy Manager 反代——配一个域名和 HTTPS 证书,在任何浏览器上都能访问。配置方法和本站其他文章提到的 NPM 一样。
- 不要直接暴露端口——Jellyfin 的默认端口 8096 没有加密。直接暴露到公网上意味着你的视频流在互联网上裸奔。
如果 Jellyfin 跑在 PVE 的虚拟机上,别忘了用 Tailscale 或者 NPM 来访问——PVE 的管理页面也能通过同样的方式在外面访问。关于 PVE 的部署可以看这篇。Tailscale 的具体配置方法参考这篇组网指南。
六、常见问题
Q:刮削不出海报?
八成是文件名的问题。检查你的电影是否包含年份,电视剧是否包含 S01E01 格式。如果文件名没问题,检查 Jellyfin 服务器是否能访问 TMDB——有些网络环境下需要配置代理。Jellyfin 默认使用 TMDB 和 OpenMovieDatabase 两个数据源来获取海报和简介,如果你的服务器无法访问这些网站,刮削就会失败。这时候可以考虑给服务器配个 HTTP 代理。
Q:播放 4K 视频卡顿? 局域网内卡顿通常是网速问题,检查电视和服务器是否都连了千兆有线网络。如果电视机用 Wi-Fi 看 4K 原盘,码率太高确实会卡,插网线或者用 5G Wi-Fi 能改善。远程卡顿通常是宽带的上行带宽不够——在 Jellyfin 转码设置里把码率上限调低到 10Mbps 就行,画质影响不大,流畅度提升明显。
Q:用核显还是独显好? Intel 核显的 QuickSync 对视频编解码的支持非常成熟,功耗低,不占额外 PCIe 插槽。如果不是重度转码需求(同时 3 路以上的 4K 转码),核显完全够用。独显的优势是显存大,适合多路并发转码。
Q:字幕显示乱码? 在 Jellyfin 设置里把字幕渲染模式改为”图像格式”,或者安装中文字体到服务器。这里说的是 ASS/SSA 字幕特效显示的常见问题,不是简单的编码问题。
延伸阅读
- Docker 换源避坑指南 — 部署前的必备准备
- Nginx Proxy Manager 反代面板 — 统一管理所有服务的访问入口
- Uptime Kuma 自建服务监控 — 所有服务状态一目了然
Jellyfin 加上合适的硬件,部署一次后的体验基本可以替代 Netflix——而且没有月费、没有区域限制、没有内容下架、没有会员专享这些烦人的东西。电影想存多少存多少,封面刮削和转码这些事情服务器帮你自动搞定,你只需要把下载好的文件扔进对应文件夹。外网配好 Tailscale 之后,出差或旅游的时候打开手机上的 Jellyfin App,跟在家里看电视没有任何区别。
推荐指数:⭐⭐⭐⭐⭐
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!