软路由 Jellyfin 私有影院安装与配置教程

AI 摘要997笔记AI

Jellyfin 是免费开源自建媒体服务器,可把硬盘上的影视音乐整理成带海报和简介的媒体库,支持多端播放、多用户和硬件转码。文章详解安装前准备、iStoreOS 应用商店安装、首次初始化、豆瓣刮削及 OpenWrt Docker 部署,强调规范命名和配置路径。按步骤操作即可搭好家庭影音库。

此内容由AI根据文章内容自动生成。

硬盘里存了几百部电影,用的时候还是得插到电脑上、翻文件夹、找那个名字像乱码的 mkv——这是很多人「自建影音库」失败的原因:文件有了,但没有一层像样的界面。Jellyfin 补的就是这一层:扫描硬盘、自动刮削海报和简介、生成海报墙,手机、电视、平板、浏览器都能直接点开看。

这篇从「它是什么、能干什么」讲到安装、初始化、刮削、硬解、远程观看和命名规范,iStoreOS 走应用商店,原版 OpenWrt 走 Docker,每一步都写到能照着做。系统还没装的,先看 iStoreOS 安装教程。

一、Jellyfin 是什么

Jellyfin 是一套开源、免费、完全自建的媒体服务器。它不管你的片子从哪来,只负责:把你硬盘上的视频、音乐、照片整理成一个有海报、有简介、有分类的媒体库,再通过网页或客户端播出去。

和几个常见方案的区别:

方案 费用 特点 不足
Jellyfin 免费开源 功能完整、无会员、无硬件绑定、可硬解转码 刮削依赖 TMDB,国内网络要额外处理
Emby 部分功能收费 客户端成熟、硬解强 硬解、离线下载等要开会员
Plex 订阅制 生态最好、远程访问省心 远程播放逐渐要会员,账号在官方服务器
直接插硬盘播放 免费 零配置 没海报、没分类、多设备麻烦

一句话:想要「像 Netflix 一样的界面,但片源在自己硬盘上」,就用 Jellyfin。

二、它能用来做什么

1. 海报墙

扫描媒体库后自动抓取封面、评分、简介、演员、上映年份,按「最近添加」「类型」「演员」分类展示。这是它最直观的价值。

2. 多端播放

同一套库,浏览器、手机、平板、电视盒子、Apple TV 都能看,进度还能同步——在客厅看到一半,回卧室用手机接着看。

3. 多用户与家长控制

可以给家里人各建一个账号,分别记录观看进度,还能给儿童账号限制分级和可见的媒体库。

4. 硬件转码

老片是 H.264,新片是 HEVC / AV1,手机浏览器只认一部分格式。Jellyfin 能把不支持的格式实时转成能播的,用核显硬解时 CPU 占用很低,中端软路由也能同时带几路。

5. 字幕与音轨

支持外挂 srt、ass,支持内封多音轨切换。中文字幕、国语/原声可以随时切。

6. 音乐与照片

除了影视,音乐库(专辑封面、歌手分类)和家庭照片也能一起管。

7. 电视直播与录制(进阶)

配合 IPTV 源或电视卡,可以做直播和定时录制(DVR)。这一块配置复杂,本文不展开。

三、装之前要准备什么

1. 一块挂好载的硬盘

媒体文件必须放在已经挂载的磁盘上。iStoreOS 后台 → 系统 → 挂载点,确认硬盘挂在 /mnt/sda1 这类路径下,并且重启后能自动挂载。

硬盘还没分区、空间不够的,先看 OpenWrt 磁盘扩容教程。

2. 给 Docker 留足空间(关键,很多人卡在这)

iStore 上的 Jellyfin 是 Docker 应用。iStoreOS 默认的 Docker 根目录在系统盘上,可用空间往往只有几百兆,Jellyfin 镜像两百多兆,装到一半就失败。

做法:在硬盘上建一个目录,把 Docker 根目录改过去。

  1. 先在 SMB 共享目录里新建 docker 文件夹
  2. iStoreOS 后台 → Docker → 配置 → Docker 根目录,填 /mnt/sda1/docker
  3. 保存并应用,回概览页确认可用空间已经变大

Docker 的网络模式和挂载细节,可以对照 iStoreOS Docker 教程。

3. 把片子按规范放好(很重要)

Jellyfin 靠文件名识别影片。名字乱写,海报墙就是一堆「未知影片」。最低要求:

类型 推荐结构
电影 /media/movies/流浪地球 (2019)/流浪地球 (2019).mkv
剧集 /media/tv/怪奇物语 (2016)/Season 01/怪奇物语 S01E01.mkv
动画 同剧集,用 S01E01 编号
音乐 /media/music/歌手/专辑/01 - 曲名.flac

记住三点:年份加括号、剧集用 SxxExx、文件名和文件夹名一致。规范化的整理一次,后面省很多事。

4. 一台性能别太差的机器

纯直连播放(客户端能直接解码)对 CPU 几乎没要求,ARM 盒子、N100 都够。要做实时转码,Intel 核显(QSV)体验最好;AMD 和 ARM 的硬解支持有限,容易退化到 CPU 软解。

四、在 iStoreOS 上安装

iStoreOS 把 Jellyfin 做成了带图形配置的应用,不用敲命令。

1. 打开 iStore 应用商店

后台 → 左侧 iStore → 全部软件,搜索 Jellyfin。条目名是「Jellyfin私有影院」,点 安装。

2. 填写配置(安装前就要填)

这个应用会在安装前让你填四个路径,都是容器内的映射关系,别填错:

字段 填什么 说明
媒体文件路径 /mnt/sda1/media 你的片子所在目录,会映射到容器内 /media
配置数据路径 /mnt/sda1/jellyfin/config 默认在 /root,一定要改到硬盘,否则重装系统配置全丢
转码缓存路径 /mnt/sda1/jellyfin/cache 可不填,填了能减少系统盘写入
端口 8096 默认值,被占用再改
注意:配置数据路径千万别留在 /root。iStoreOS 升级或重装时 /root 可能被清空,媒体库、用户、观看记录全部要重来。

3. 选择网络模式并安装

安装界面里有 宿主网络(host 网络)选项,勾上。用 host 模式,局域网内客户端能自动发现服务器,DLNA 也能用。

点安装,等它拉镜像。镜像两百多兆,网速一般要几分钟,界面上会有进度。

4. 打开 Jellyfin

安装完回到 iStore 的「已安装」或后台 服务 → Jellyfin,点 打开,会跳到 http://路由器IP:8096。

五、首次初始化:六步走完

第一次打开是设置向导,跟着点就行。

1. 选择显示语言

下拉选 简体中文。这一步只影响后台界面,不看也能改。

2. 设置管理员账号

填用户名和密码,密码建议别用弱口令——后面要开远程访问的话,这就是唯一一道门。

3. 添加媒体库

点 添加媒体库:

  • 内容类型:电影 / 节目(电视剧)/ 音乐,按你的目录选
  • 显示名称:随便起,比如「电影」「剧集」
  • 文件夹:点 + 号,路径选 /media(就是安装时映射进来的那个目录)。新固件也可以直接选 /mnt 下挂载的磁盘

4. 设置元数据语言

向下找到 首选下载语言 选 Chinese,国家/地区 选 China。这两项决定了海报和简介抓哪种语言,不设的话简介全是英文。

5. 刮削器保持默认

默认勾选的是 TheMovieDb 等,不用动,直接下一步。

6. 完成并登录

点「完成」,等它扫描。扫描进度在 控制台 → 计划任务 里能看到。扫完回首页,海报墙就出来了。

六、豆瓣刮削器(国内网络建议装)

Jellyfin 默认走 TMDB,国内直连经常超时,结果是「有片子没海报」。装豆瓣插件是成本最低的解法。

1. 下载插件

在 iStoreOS 官方文档里能找到豆瓣刮削插件的下载地址,下下来是一个插件文件夹(一般叫 Douban)。

2. 放进配置目录

把文件夹放到你安装时设置的配置数据路径下的 plugins 目录,也就是:

/mnt/sda1/jellyfin/config/plugins/

开了 SMB 共享的话,在 Windows 资源管理器里打开 \路由器IP,进到 sda1/jellyfin/config/plugins 直接拖进去就行。

3. 重启 Jellyfin

回 iStore 或 Docker 里把 Jellyfin 容器重启一次,后台 控制台 → 插件 里就能看到 Douban。

4. 调整刮削顺序

进 控制台 → 媒体库 → 选中你的电影库 → 管理媒体库 → 在「元数据下载器」「图像获取器」里勾上 Douban,并拖到第一位。

5. 重新扫描

回媒体库点「扫描媒体库」,让它重新抓一遍元数据。

七、在原版 OpenWrt 上用 Docker 部署

不是 iStoreOS 也能装,用官方镜像起一个容器即可。

1. 建目录

mkdir -p /mnt/sda1/jellyfin/config /mnt/sda1/jellyfin/cache /mnt/sda1/media

2. 启动容器

docker run -d 
  --name jellyfin 
  --net=host 
  --restart=unless-stopped 
  -v /mnt/sda1/jellyfin/config:/config 
  -v /mnt/sda1/jellyfin/cache:/cache 
  -v /mnt/sda1/media:/media 
  --device=/dev/dri:/dev/dri 
  jellyfin/jellyfin:latest

3. 参数说明

参数 作用 要不要改
--net=host 用宿主机网络,客户端能自动发现 保留
-v .../config:/config 配置、用户、媒体库元数据 换成你的硬盘路径
-v .../media:/media 片子目录 换成你的媒体路径
--device=/dev/dri 把核显透传给容器,用于硬解 有 Intel/AMD 核显就加
--restart=unless-stopped 重启后自动拉起 保留

4. 确认核显已经透传

ls -l /dev/dri/

能看到 renderD128 就说明核显在。没有的话检查 BIOS 里核显是否开启,或者换个带核显的平台。

5. 打开并初始化

浏览器访问 http://路由器IP:8096,走第五节的六步。

八、客户端与播放

1. 各平台客户端

平台 客户端 说明
电脑 / 局域网 浏览器 直接开 IP:8096,最省事
Android Jellyfin 官方 APP 支持直连和转码
iOS / iPadOS Swiftfin、Infuse Infuse 播放能力更强,收费
Android TV / 盒子 Jellyfin for Android TV 遥控器操作,体验最好
Apple TV Swiftfin –
Kodi Jellyfin 插件 把 Jellyfin 当片源

2. 直连还是转码

客户端能直接解码,服务器就只负责传文件,CPU 几乎不干活,这叫直接播放。触发转码的常见情况:

  • 视频编码不被支持(浏览器放 HEVC、AV1)
  • 音频是 DTS / AC3,浏览器解不了
  • 字幕是图片型(PGS)或特效 ASS,需要「烧」进画面
  • 客户端设置的码率上限低于片源码率

想少转码,就选支持格式多的客户端(Infuse、Kodi、Android TV 版),字幕优先用外挂 srt。

3. 字幕

最常见的问题是乱码:外挂 srt 如果是 GBK 编码,Jellyfin 可能读成乱码。用文本编辑器另存为 UTF-8 即可。文件名和视频同名、放同一目录,就会自动挂上。

九、硬件加速怎么开

iStoreOS 那个 Jellyfin 镜像已经预配好硬解,装完不需要再动「硬件加速」选项——官方文档明确写了这点。

用 Docker 自己装的,需要手动开:

  1. 控制台 → 播放 → 转码
  2. 硬件加速 选 Intel QuickSync (QSV) 或 VAAPI
  3. 勾选 启用硬件解码,编码同样勾上
  4. 下方把 HEVC、H.264、VP9 等常用编码都勾上
  5. 保存后随便播一个高码率片子,在控制台「活动」里看是不是显示 (hw)
AMD 和 ARM 平台注意:硬解支持不如 Intel 完整,容易出现花屏或直接失败。遇到问题就把硬件加速关掉,退回软解,虽然吃 CPU 但至少能播。

十、远程观看

在家看很简单,外网看要解决「怎么连进来」。三种方案:

1. DDNSTO(最简单)

iStore 里装 DDNSTO,给 8096 端口加一个域名,外网通过 HTTPS 域名访问。免费套餐带宽有限,适合偶尔看看,别指望流畅播 4K。配置见 iStoreOS DDNSTO 教程。

2. IPv6 + DDNS(速度最好)

现在的宽带基本都有公网 IPv6,给路由器配个域名,外网直接用 https://域名:8096 访问,带宽就是你家上行,看 1080P 没问题。前提是光猫和防火墙放行对应端口。

3. 组网(最省心)

Tailscale、ZeroTier 这类点对点组网,手机装个客户端就相当于回到家里局域网,不用管端口和域名。适合长期在外使用。

十一、常见问题

1. 装到一半失败,提示空间不足

Docker 根目录还在系统盘。按第三节把 Docker 根目录改到 /mnt/sda1/docker,再重装。

2. 媒体库扫出来是空的

  • 路径填错:容器里看到的是 /media,不是 /mnt/sda1/media
  • 权限问题:容器用户读不到文件,检查目录权限
  • 文件扩展名不在支持列表里(比如 .rmvb 有时识别不到)

3. 有片子没海报

先看文件名是否符合规范(年份要带括号),再看 TMDB 能不能连通。国内网络建议按第六节装豆瓣插件。

4. 海报是英文的

媒体库的「首选下载语言」没设成 Chinese,或者设置后没有重新扫描。改完要手动触发一次「扫描媒体库」。

5. 播放很卡、CPU 100%

在看转码而不是直连。去控制台「活动」里看播放状态:如果是 (hw) 说明硬解在跑;如果没标就是软解,检查硬解有没有开、/dev/dri 有没有透传。

6. 字幕乱码

srt 是 GBK 编码。用记事本另存为 UTF-8,或者用 Subtitle Edit 转一下。

7. 时间显示不对

容器时区没设。iStore 应用一般自动处理;Docker 手动装的话加一个环境变量 -e TZ=Asia/Shanghai,或者挂载 /etc/localtime。

8. 忘记管理员密码

停掉容器,删掉配置目录里的 data/jellyfin.db 会重置所有数据(不建议)。更稳的做法是进配置目录找密码重置文档,或者重建一个管理员账号。

9. 换了硬盘,媒体库全红

挂载路径变了。把新盘挂到原来的路径(比如还是 /mnt/sda1),或者在媒体库里重新指定文件夹。

十二、总结

整个流程:挂硬盘 → Docker 扩容 → iStore 装 Jellyfin(填三个路径 + 8096)→ 初始化设中文和账号 → 添加 /media 媒体库 → 装豆瓣插件补刮削。

真正决定体验的是三件事:文件名规范、刮削能不能连通、播放是直连还是转码。这三件处理好,N100 级别的软路由也能撑起一个像样的家庭影院;处理不好,再强的 CPU 也是一堆「未知影片」。

装完之后如果还想继续折腾,这几篇可以接着看:

  1. iStoreOS Docker 教程:3 种安装、4 种网络、3 种磁盘位置——Jellyfin 就是跑在 Docker 上的,扩容和挂载全在这篇。
  2. OpenWrt 磁盘扩容教程:5 种方式一步步操作——影音库吃空间,先解决存储再谈海报墙。
  3. iStoreOS DDNSTO 教程:路由远程访问安装与网络配置——在外面也能打开家里的 Jellyfin。
  4. iStoreOS 网络插件盘点:DNS、去广告、穿透与 VPN——组网、穿透方案一次看全。
上一篇 iStoreOS DDNSTO 教程:路由远程访问安装与网络配置
下一篇 iStoreOS/OpenWrt 容器魔王安装与配置教程