飞牛NAS用Docker装Jellyfin影音库全记录:刮削、转码、电视端一 条龙,我家那台N100终于不吃灰了

家里那台N100小主机装的飞牛NAS,硬盘塞了差不多6个T的电影电视剧,一直靠电脑开SMB共享、电视挂载网络硬盘看。换台设备就得重新挂一遍,字幕还经常读不出来。上个月狠下心用Docker装了个Jellyfin,折腾了两个晚上,现在电视、手机、平板点开就能看,进度还是云同步的。这篇把整个过程按顺序写下来,重点讲我卡住的那几个地方。
先说清楚:Jellyfin是干嘛的,和Emby怎么选
简单说,Jellyfin就是装在NAS上的「私人影视库」:你把电影文件丢进硬盘,它自动去网上抓海报、简介、演员表,整理成一个界面跟爱奇艺差不多的库,家里所有设备打开客户端就能点播。区别在于片源是你自己的,没广告、没会员、没人下架。
同类软件就两个选择:Emby和Jellyfin。我两个都试了,说下实测感受——
| 对比项 | Jellyfin | Emby |
| 收费 | 完全免费 | 基础免费,手机客户端要解锁(约30多元) |
| 刮削能力 | 够用,偶尔抽风 | 更稳一点 |
| 转码 | 支持硬解 | 支持硬解 |
| 上手难度 | 差不多 | 差不多 |
我最后留的是Jellyfin,理由就一个:电视端、手机端全免费。Emby的手机客户端不付费每次打开要等十几秒广告画面,家里老人小孩用着烦。功能上两者90%一样,Emby前世今生就是Jellyfin的分支源头,会一个另一个也会。
第一步:Docker里把Jellyfin跑起来
飞牛的Docker在应用中心装好之后(不会装的看这篇:飞牛NAS用Docker跑应用的记录),打开Docker管理界面, registry里直接搜jellyfin,选jellyfin/jellyfin这个官方镜像,latest标签就行。别下那些名字带linuxserver的旧教程里推荐的版本,现在官方镜像维护得最好。
点创建容器,几个关键参数按我这样填:
- 镜像:jellyfin/jellyfin:latest
- 容器名:jellyfin(随便,英文)
- 重启策略:always,NAS重启它自己爬起来
- 端口:本地8096映射容器8096
- 挂载路径:三挂载,下面细说
挂载是最容易翻车的地方,我第一遍就是路径没映射对,装完扫描不出任何电影。照这个表填:
| 容器内路径 | 填什么 | 作用 |
| /config | vol1/1000/docker/jellyfin | 配置文件,必须单独给 |
| /media | vol1/1000/media | 电影电视剧总目录 |
| /media/缓存 | 可以不挂 | 转码临时文件,内存够就无所谓 |
这里有个坑:/config一定要映射出来。我第一次偷懒没映射,容器一升级配置全没,媒体库重新刮了一遍。另外飞牛里挂载路径选的是「文件夹」不是文件,选错类型下拉列表里是空的。
点启动,浏览器开 NAS的IP:8096,出欢迎界面就是活了。先别急着下一步,把「语言」切成简体中文再继续,不然一堆英文菜单看着累。
第二步:电影目录这样命名,刮削成功率翻倍
媒体库好不好用,八成看刮削。刮削就是Jellyfin根据文件名去TMDB(the movie database,一个影视数据库网站)查这部片子,把海报简介抓回来。文件名乱起,它就查不到,库里的封面全是灰色的占位图。
我实测下来最稳的目录结构是这样:
媒体总目录/电影/流浪地球2 (2023)/流浪地球2 (2023).mkv
媒体总目录/电视剧/漫长的季节 (2023)/Season 1/漫长的季节 S01E01.mkv
几个要点,都是我踩出来的:
- 电影:片名和年份之间留空格,年份用英文括号包起来
- 剧集:文件名带S01E01这种季集编号,一季一个Season文件夹
- 动画、综艺按电视剧建库,别自作主张归到电影
- 片名里有英文冒号的(比如「使命召唤:黑色行动」),冒号必须去掉或换成空格,冒号在文件名里不合法,刮削也认不出
如果你的片源是网上下载的带一堆前缀后缀的(什么「4K.HDR.双语中字」),尽量重命名成上面的格式再入库。嫌一个个改麻烦,可以装个tinyMediaManager在电脑上批量改名,那是另一个话题了。
第三步:首次配置向导,两个选项别选错
回到8096的网页,首次进会弹配置向导。用户名密码设一个,这密码是给家里设备登录用的,设简单点没事,反正只在内网。
到「媒体库」这一步,点添加媒体库,类型选电影,路径指到 /media/电影——注意这里是容器内的路径,就是挂载表里那个/media,不是飞牛自己的vol1路径。我第一次就是填了飞牛的路径,Jellyfin一脸懵逼扫不出东西。
语言选中文,国家选「中国,大陆(简体)」。往下有个「首选下载元数据的语言」,也选简体中文,不然抓回来的海报和简介是繁体或者英文的。
电视剧库如法炮制,类型选节目,路径 /media/电视剧。两个库建完,向导走完进主界面,左上角「控制台→媒体库→扫描所有媒体库」,等它跑完,海报墙就出来了。我家300多部电影扫了差不多20分钟,机械盘会慢些。
第四步:刮削不出来怎么办,我的三板斧
第一次扫描完,十有八九有几部灰的、或者张冠李戴配错海报的。别慌,先确认这三个常见原因:
第一板斧:网络问题。TMDB的服务器在境外,直连经常超时。NAS的网络设置里把DNS改成223.5.5.5或者119.29.29.29,重扫一遍,成功率立刻不一样。还不行就给NAS配代理,Docker容器里也能继承宿主机代理,这个各家环境不一样,不展开。
第二板斧:文件名问题。对着上面第二节的命名规则检查,特别是年份写错的、带乱码前缀的。改完文件名,在Jellyfin里找到这部片,右键(手机端是点右上角三个点)选「刷新元数据」,不用全库重扫。
第三板斧:识别错了手动指定。比如它把《流浪地球2》识别成了第一部,进这部片的详情页,右上角三个点里有个「识别」或者「搜索」,手动输入正确片名加年份,从结果里选对的那张海报,覆盖即可。
还有个隐蔽的坑:综艺和动画要单独建库时,类型里有「电视节目」和「混合内容」两个选项,动画选电视节目就行;混合内容会把电影和剧集混在一个库里扫,识别率会掉,除非你的文件夹真的混着放。
第五步:电视和手机上怎么看
服务端搞定,剩下就是装客户端。各端应用商店搜Jellyfin基本都有:
| 设备 | 客户端 | 体验 |
| 安卓电视/盒子 | Jellyfin Google Play版或DIY包 | 最爽,遥控器操作 |
| 手机 | 官方App,发现里选「用户」模式 | 离线缓存要会员?不,免费的 |
| iPad/iPhone | Swiftfin(第三方) | 比官方App流畅 |
| 电脑 | 直接浏览器开8096 | 够用,不用装 |
我家的主力是小米电视,应用商店里没有,我是用U盘装apk的:手机上的Jellyfin App安装包拷U盘,电视插U盘用「高清播放器」或者当贝市场装。装好第一次打开,会让你填服务器地址,填 NAS的内网IP:8096(比如192.168.1.100:8096),输账号密码就连上了。
这里提醒一句:给NAS在路由器里绑个静态IP,不然哪天路由器重新分配地址,全家电视都连不上,还以为NAS坏了。我家是在小米路由器的「常用设备→静态IP绑定」里设的,路由器侧的具体操作可以看我之前写的小米路由器定时重启那篇,入口在同一个后台。
手机端有个细节:首次登录会让选「用户模式」还是「主页模式」,选用户。主页模式是给一台服务器多个用户分权限用的,家里就你一个人管的话用不上。
第六步:外网访问和转码,新手最容易翻车的两件事
先说外网。装完头一个礼拜,我在公司午休想用流量看家里NAS的剧,发现根本连不上——Jellyfin默认只服务内网。想在公网访问,方案从简到繁:路由器端口映射(把8096映射出去,不建议,等于把登录页裸奔给全网扫描)、飞牛自带的远程访问(fn Connect,够用但只覆盖飞牛自己的界面)、或者上frp/Tailscale这类内网穿透。新手我建议先用Tailscale,手机和NAS各装一个,登同一账号,手机上就像在局域网一样访问,不用动路由器任何设置。
再说转码。这个概念搞不清楚,看片会一直缓冲。直连播放的意思是电视直接读原始文件自己解码;转码是NAS先把它转成电视能放的格式再推过去。什么时候需要转码?片源是HEVC/H.265或者4K HDR,而你的电视比较老不认这些格式的时候。
转码非常吃CPU。我那台N100无核显直通的话,软解一个4K HEVC直接CPU拉满还卡成PPT。解决办法是开硬件转码:控制台→播放→转码,勾选Intel QSV相关的选项(N100是Intel芯,带核显)。开了之后同一个4K片源,CPU占用从98%掉到20%上下,两三个人同时看都不卡。如果你NAS是纯机械盘位机、CPU很弱,老老实实下H.264编码的片源,别硬上4K原盘。
另外提一嘴,Jellyfin的转码里有个「烧录字幕」的坑:外挂的ASS特效字幕在转码时会被烧进画面,这个过程极耗资源。能下内封字幕的片源就下内封,省心。
最后:装完这两个月的一些实话
装完Jellyfin这两个月,家里的Apple TV机顶盒吃灰了,电视打开就是Jellyfin的海报墙,孩子看动画、老人看剧、我看电影,各看各的进度互不干扰。一个月电费没见涨,N100待机功耗低,整机也就十来瓦。
要说缺点也有:刮削对国产剧的支持不如国外剧那么全,一些冷门老剧的海报要自己手动补;Docker升级大版本前记得备份config目录,我升级10.9时配置丢过一次(后来学乖了,升级前先把vol1/1000/docker/jellyfin整个目录打包)。
给想上手的人一个顺序建议:先把飞牛系统和存储空间弄稳(挂盘不清楚的看这篇飞牛NAS挂载硬盘的记录),再装Docker跑Jellyfin,命名规范先照抄我的,跑通一遍之后再折腾硬解和穿透。一次别贪多,我第一晚上又装又改配置又测外网,最后哪里出错都定位不了;第二晚老老实实一步步来,反而两小时全通。

发表评论