jellyfin是什么
jellyfin是一款开源,免费,多平台的媒体管理系统,包括服务端和客户端。服务端部署在存储媒体服务的服务器上,帮助你管理服务器端存放的各类媒体文件,提供服务端解编码,海报墙,元数据刮削,iptv等等各类功能。其他设备可以通过网页或者专用的客户端链接部署好的服务端,从而获得类似私人影院的体验。类似的软件还有emby(jellyfin的前身),plex等等,不过大多是收费或者订阅制的。本人囊中羞涩,没有能力付费体验一下,所以本着免费就是好的原则选择了jellyfin。
jellyfin服务端安装部署
jellyfin官方网站:https://jellyfin.org/,除了安装包以外,官网还提供了非常详实的文档,非常有参考价值,
官网内找downloads>server>windows,点击下面的downloads,然后会跳到一个非常简易的网页里,里面有茫茫多的下载选项。

jellyfin下载页面
jellyfin整套其实是前端页面+后端程序+ffmpeg外置解码器+windows托盘程序(其他环境也许没有这个)构成的,因此jellyfin分别提供了他们的单包下载和整合包,对我们来说,直接下载installer打头的整合安装程序即可,非常省心。
下载完后,双击根据向导安装即可,无脑下一步。安装完成后双击桌面的jellyfin server图标,右下角会出现jellyfin的托盘图标,在上面右键会出现菜单,其中:
autostart勾上开机自动启动
start jellyfin启动服务
close jellyfin关闭服务
open jellyfin打开web页面
exit进程退出
点open打开页面,第一次登录会让你配置一些初始信息,首先显示语言选汉语(简化字),这个是指web页面UI使用的语言:

显示语言
之后会让你配置账号密码,因为我有在公网的需求,所以进行了配置,如果单纯在家庭内网环境使用的话,密码可以留空(说实话在电视上登录的时候用遥控器输入密码真的很痛苦)。完成后,会进入配置媒体库的页面。
jellyfin中一个媒体库映射一个本地文件夹,jellyfin会自动从这个文件夹中搜索媒体文件。创建媒体库会首先让你选择媒体类型,例如文件夹内存放的是电影还是音乐还是电视剧。这个媒体类型会影响后面元数据刮削的结构,所以建议不同类型的文件分开存放(电影跟电影放在一起,动漫跟动漫放在一起,电视剧和电视剧放在一起etc)。我这边主要是存放电影,动漫和电视剧,所以使用的是电影(电影推荐使用这个选项)和节目(动漫,电视剧,综艺节目推荐使用这个选项)两个选项。建议不要使用“混合电影和电视剧”这个选项,实测混合后一坨屎,会出现各种莫名其妙的问题,包括但不限于两个毫不相关的东西被判定为另外一个东西的两季,一些文件扫描不到等等。不建议使用这个选项甚至是写在官方文档里的:

不建议使用混合类型媒体库
选择类型以后,下面会多出很多额外的选项,大多数选项保持默认就好,比较重要的几个:

国家和语言
国家和语言会影响元数据的刮削,这里注意国家在选项里使用的是全称要去P开头的里面找,而不是C开头的。

元数据下载器
jellyfin默认自带了从这两个网站刮削的刮削器,可以通过安装插件来安装更多的刮削器,多个刮削器越前面的优先级越高,右侧的箭头可以改变刮削器的顺序。

将元数据保存为nfo,图像保存在媒体所在文件夹
这两个选项主要是使重装系统或者jellyfin的情况不需要重新刮削数据,再有nfo可以支持其他三方刮削器(例如tinyMediaManager),而不用内置的刮削插件。

图片提取器
这里的配置是优先通过两个刮削器获取电影的封面,海报等等图片,刮削器获取不到的情况会用下面两个内置的截图器,用视频截图来当做封皮,海报等等。
上面是电影的选项,如果文件夹类型为节目,那么会有几个多出来的选项:

季刮削器和剧集刮削器
因为电视节目类(电视剧,综艺节目,动画等)通常不像电影一样只有一集,而是分季播放每季很多集,所以对于电视节目类媒体库多了两级分层。实际上对于电视节目的处理,不同的元数据网站是不一样的,TMDB就是按照前文所说,按照节目名>第几季>第几集这样的顺序来索引,tOMD则是认为一个节目的不同季是不同的节目,按照节目第1季>第几级,节目第2季>第几级这种格式来存放,所以tOMD就没有季元数据下载器(所以显而易见的,混用两种下载器在电视节目这一类上可能不是个好主意,即使有优先级来控制,因为众所周知的网络问题,对这类元数据网站的访问经常不太稳定,因此高优先级刮削器突然抽风导致换用低优先级刮削器这事还蛮常见的)。我个人比较喜欢节目名>第几季>第几集这种格式的存放,所以我在电视节目类的媒体库里通常是把tOMD关掉的(实际上因为我比较喜欢用TMM,所以jellyfin内置的刮削器我全是关掉的233)。
因为刮削这个事情本质是依照文件名和存放路径名来匹配的,想要完美生效就必须要有严格的命名规则和存放方式,jellyfin官方提供了对电影和节目媒体文件的存放路径和文件命名的示例:

电影存放示例

节目存放示例
但是有个很现实的问题是,大家搞到的资源通常不会放的这么规范(或者说做资源的人使用的跟你不是同一种规范),所以经常导致刮削错误,识别的不对,季和集数匹配的不对或者匹配不到,把两季匹配成同一季都是常有的事,而每次下载下来都手动规范的重命名一遍多少有点蛋疼,而且还涉及刷pt的话改了名字没法做种的问题。所以我最终还是换TMM来手动刮削解决问题了,虽然本质上还是通过tmdb来刮削,但是TMM可以比较方便的手动编辑信息。
另外有dalao开发了一个从豆瓣刮数据的刮削器,叫metashark,因为数据来源在国内来说链接稳定性比tmdb要好,豆瓣本身因为是国内的站中文信息也更加丰富。但是因为这个插件刮电视节目的季信息还是通过tmdb,所以最终我还是统一用TMM了。
有需要metashark的这里提供作者的github:https://github.com/cxfksword/jellyfin-plugin-metashark。安装方法在github页面上有比较详细的安装、使用说明,这里不再赘述。
另外,媒体库有个“自动添加到合集的选项”,我建议关掉它,非常不好用。
创建媒体库后点击下一步,会让你再选一次国家和地区,这个国家和地区是相当于全局默认设置,当媒体库没有手动配置国家和地区的时候,会采用这个值(手动配置的会优先级高于默认的,比如你默认用简体中文,然后建个港片的媒体库手动配置繁体中文,这种情况会使用繁体中文)。
再下面是网络设置,保持默认就好。我个人是打开了upnp的,但是允许远程连接一定要打开,否则只有本机通过127.0.0.1或者localhost才可以访问jellyfin服务。

切记打开允许远程连接
完成配置后,jellyfin会要求你重新登陆,输入账号密码登录即可。
除了账号密码以外,jellyfin支持quick connect功能,方便你在电视,投影仪等没有键盘的设备上登录。点击quick connect以后,会生成一串随机数:

quick connect
然后通过在另外的设备上登录账号,在设置>快速连接中输入这串验证码,就可以共享登录状态。省去在电视上用遥控器输密码的尴尬。

输入验证码后点授权即可
jellyfin配置硬件解码
之前折腾了半天的核显直通,就是为了在jellyfin开启硬件解码。这里选择控制台>播放一栏进入开始配置硬件解码。

配置硬件解码
首先因为gpu是intel,操作系统是windows,所以选择Intel QuickSync(QSV),根据官方文档,这是wintel的唯一可用也是推荐组合。如果是linux的话,还有VA-API的选项可以用。下面选择要进行硬件解码的视频格式,这里因为我使用的是UHD630,支持AV1以外的所有格式的硬件解码,所以除了AV1全勾上了(网上看到有跟我相同配置的人把所有项目都勾上了,我没有测试过能否正常播放AV1,我手头没有这么高级的资源,但是根据相关资料,intel从11代U开始以后的核显才支持av1)。
附一份知乎老哥整理的各种gpu支持的解码格式表,包括大部分主流的核显和独显:
https://zhuanlan.zhihu.com/p/559028359

编码选项
编码这里可以开启图里的选项,其中低电压HEVC可以在11代以后核显环境下开启。
从前文提到的官方下载地址里(或者官方github里:https://github.com/jellyfin/jellyfin-ffmpeg),找到jellyfin-ffmpeg。注意不要使用其他来源或者自行编译的ffmpeg,jellyfin使用的ffmpeg是自己定制的,使用其他来源的ffmpeg能不能正常使用是看缘分的。下载后解压到纯英文路径下。

jellyfin-ffmpeg
在页面上配置好ffmpeg的路径,路径指定到ffmpeg.exe这个文件。同时指定一个目录作为转码的临时目录,这个目录用于存储播放转码过程的中间文件,目录所在的磁盘读写速度越快越好,推荐使用ssd甚至内存盘。
不过要注意,这个目录虽然是临时目录,但是需求比较大的容量,在播放视频的过程中,因为需要支持向前拖动滚动条来看回放,所以在播放结束前不能删除已经完成解码的临时文件,如果这个临时目录所在的磁盘容量不足,可能导致你的视频在播放到一半的情况下因为临时目录空间不足而无法继续解码,从而无法继续播放后面的内容。理论上,这个临时目录应该比你媒体库里最大的视频所占用的空间再大一点点。考虑到非常高清的电影可能一个就有30-40GB,个人推荐这个临时目录有50GB以上的可用空间(以上基于你的服务器一次只播放一个视频,如果你有多端同时播放不同视频的需求,建议自行压缩视频文件大小并成比例的增大缓存空间)。另外,虽然确实读写速度越快越好,但是实际上因为你看视频的速度通常不可能追上解码的速度,即使使用机械硬盘作为缓存盘,也不会有很大的影响。

一些路径配置
另外,针对一些ass等格式的字幕在播放过程中会存在字体缺失而显示方框的问题,这里可以配置一个存放备用字体文件的路径,推荐把中日韩三语字体各丢一份进去,并开启“启用备用字体的选项”,基本可以彻底告别方框框了。
附一份简繁日韩woff2格式字体(这字体哪来的我也忘了,如有冒犯,立刻删除)
链接:https://pan.baidu.com/s/1ewaRH3Z39W8BIgorPKg6pg?pwd=77pw
提取码:77pw
完成播放相关的配置后,重启jellyfin服务,然后可以选择一个在硬件解码范围内的视频播放一下试试效果。PS:找高清电影来试验,低码率短时长的视频可能看不出效果。

CPU划水,GPU拉满
像截图里这样,GPU拉满,CPU划水就说明硬件解码配置成功了。如果相反,GPU一动不动,CPU拉满,就说明配置有问题(jellyfin在硬件加速这里不管你配的对不对都能正常保存,只是配的不对播放不了或者依旧软解)。