VPS 安装 Jellyfin 打造私人影院

准备环境

如果根据教程操作遇到预期以外的特殊情况,可以直接复制相关提示去问 AI。

VPS 安装 Jellyfin

先更新系统并安装下curl

1
apt update && apt upgrade && apt install curl -y

Jellyfin 在 10.10.7 版本后官方提供了 BASH 安装脚本,一条命令搞定 Jellyfin 安装,方便很多。

1
curl https://repo.jellyfin.org/install-debuntu.sh | bash

运行命令后提示你按 Enter 键继续安装,直接回车

1
2
3
4
5
6
7
8
9
10
11
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload Upload Total Spent Left Speed
100 10606 100 10606 0 0 25854 0 --:--:-- --:--:-- --:--:-- 25805
> Determining optimal repository settings.

Found the following details from '/etc/os-release':
Real OS: debian
Repository OS: debian
Repository Release: bookworm
CPU Architecture: amd64
If this looks correct, press <Enter> now to continue installing Jellyfin.

安装完成后会显示 Jellyfin 运行状态,如下图看到有绿色的 active (running) 正在运行就表示正常。
jellyfin_00

完成后默认使用http://你的IP地址:8096在浏览器访问,注意修改你的 IP 地址。8096 是 Jellyfin 默认的 HTTP 访问端口,需要先使用下面命令防火墙放行这个端口,否则可能无法访问。

1
ufw allow 8096

下面是一些后期管理命令,这里用不到,如果后期 Jellyfin 要更新的话需要先用停止命令,然后再使用一次前面的 BASH 安装脚本就能更新了。

1
2
3
4
5
6
7
8
# 启动 jellyfin
systemctl start jellyfin
# 停止 jellyfin
systemctl stop jellyfin
# jellyfin 状态检查
systemctl status jellyfin
# 重启 jellyfin
systemctl restart jellyfin

Jellyfin 初始化设置

浏览器登陆后需要先进行简单的设置,首先设置显示语言
jellyfin_01

创建管理员账号
jellyfin_02

点击添加媒体库
jellyfin_03

媒体库如下设置,虽然往下拉还有设置项,不过那些默认就行,设置完图里这几项后点击确定。
jellyfin_04

再设置元数据语言
jellyfin_05

设置远程访问默认即可,点下一个
jellyfin_06

最后就可以使用创建的账号登陆了
jellyfin_07

进阶设置和说明

登陆后页面左上角有个三条杠图标的菜单,点击菜单展开侧边选项,注意现在的侧边选项,倒数第二有个设置选项,这个设置项只在首页第一次点击菜单按钮才出现,后面会提。这里先点击控制台,这时侧边菜单会变多,前面提到的设置项会消失,(如果你想进前面的设置项,可以点击左上角的 Jellyfin 的图标回到首页,再点菜单进入。)进入控制台选项后点击展开播放选项,再点击转码

一、自定义字体设置(必做)

往下拉设置备用字体文件路径并勾选下面的启用备用字体,然后就是上传你观影时喜欢的字体文件到这个路径,我的路径是/usr/share/fonts/custom。备用字体可以解决封面文字无法正确显示的问题。同时如果你外挂的 ass 字幕里使用了同样的字体,就可以正确渲染字幕。我个人中文使用思源黑体 Medium,英文则是SF Pro Display Regular,假如要外挂人人影视的双语字幕,我会先修改字幕样式的中英文字体为上述两个字体。至于单独定义字体的特效台词,不改影响也不大,会用默认字体显示,默认貌似也是思源黑体,不过只有常规和加粗两个字重。

至于如何上传字体,你可以本地安装 WinSCP 和服务器互传文件,教程自己找。不过我推荐你 VPS 上安装下 FileBrowser,顾名思义是个文件浏览器,也相当于私人网盘,方便以后管理影片文件(类似百度网盘,上传下载还不用客户端),也可以用它管理服务器的目录文件。你可以使用和我一样的路径,/usr/share/fonts 默认应该是已存在的路径,只需要进入到 fonts 目录再创建个 custom 文件夹,然后进入 custom 目录,上传本地字体文件即可。
🛠FileBrowser 安装教程传送门
jellyfin_08

可选设置

备用字体文件路径上面还有个转码路径,用来缓存视频转码文件,通常用网页播放才会产生转码文件,如果用客户端则不会(Jellyfin 有丰富的客户端)。假设你的存储型 VPS 由 SSD 固态盘和 HDD 机械盘构成,而 SSD 固态容量剩余空间很小,那默认的转码路径在播放需要转码的大体积视频时,可能会把 SSD 磁盘写满,导致播放卡死(转码文件在你关闭播放时会自动清理,这点不用担心)。推荐还是使用客户端观影,毕竟转码会导致画质下降并增加服务器负载,非要网页观看那就将路径改到磁盘空间更大的 HDD 盘。

二、HTTPS 访问设置(可选)

前提需要有域名和域名证书,这里不展开了,想搞可以问 AI。

点击侧边栏的网络选项,勾选启用 HTTPS,使用 HTTPS 默认的 8920 端口或者你也可以自己设定,用 HTTP 的也可以修改上面的端口号,修改后记得防火墙放行端口,否则会访问不了。

勾选启用后往下拉到HTTPS 设置项,填写自定义 SSL 证书路径证书密码,注意这里的证书路径和你域名申请的证书不太一样,域名申请证书通常包含两个部分(privkey.pem 密钥文件和 fullchain.pem 证书全链文件),这里只有一个填写框,需要使用下面命令将两个 PEM 文件转换为一个 PKCS #12(.pfx)文件。命令的中文部分需修改为你的路径,通常密钥文件和证书全链文件路径一样,命令里的/pfx文件路径/jellyfin.pfx就是要生成的 .pfx 文件路径,自己设定,建议放到/etc/jellyfin下,这个目录存放 Jellyfin 的配置,便于管理和备份,后面的证书密码自己设定也要填写。

1
openssl pkcs12 -export -out /新密钥路径/jellyfin.pfx -inkey /密钥文件路径/privkey.pem -in /证书全链文件路径/fullchain.pem -passout pass:证书密码

三、最后几个推荐设置

回到首页,再点菜单进入设置项,界面如下,这里播放字幕两个菜单推荐设置如下。
jellyfin_09

  • 播放菜单:找到优先使用 fMP4-HLS 媒体容器打勾,快进长度快退长度根据自己需求设置,音频标准化推荐选关闭,设置完最下面保存。
  • 字幕菜单:字幕语言偏好Chinese字幕模式总是显示,字幕外观的字体默认,其它文本大小、粗细、颜色、位置自己看着调,勾选预览可以看到效果,这里的设置只会影响 srt 字幕和缺少字体文件的 ass 字幕,设置完保存。

播放和字幕这两处的设置使用客户端时可能还得在客户端再设置一下,客户端界面基本也大同小异,其它的设置选项包括控制台里的自己也可以看看有个印象,有些开启会增加服务器负载,其它则根据自身行为习惯看着设置。

目录格式的重要性

如果你想有好看的媒体墙、正确的剧集说明和外挂字幕加载,你就得格外注意媒体文件的管理。还记得创建媒体库时有电影、音乐、节目、书籍等内容类型的选项吗,这是为了针对不对类型的内容提供对应的交互界面,相对的你得规范设置目录名和目录构造。

电影命名和目录结构

先说最简单的电影,有时下载的电影名称会很长,比如这样 [DBD-Raws][杀戮都市:O][1080P][BDRip][HEVC-10bit][FLAC].mkv,如果你直接将这个视频文件丢在媒体库的根目录下,是无法抓取到正确的元数据和封面的,你得改成 杀戮都市:O.mkv才行,为了更好的识别影片还可以在名称后面加上影片发行年份比如 杀戮都市:O (2016).mkv(使用英文括号,与名称间有空格),更进一步你还可以加上 imdb 或 tmdb 的 ID,比如 杀戮都市:O (2016) [tmdbid-396263].mkv。加 ID 这步基本没必要,年份有时还有需要的,因为有不同时间发行的同名电影存在,光名字可能会抓错数据。

不过我不推荐直接改影片名称,有时我们想保留这些分辨率、编码格式信息,所以建议在媒体库根目录下再创建文件夹,将该文件夹命名为杀戮都市:O (2016),然后将视频文件丢进文件夹就行了。需要加载外挂字幕,就将字幕名称改为和视频名称一样(不是文件夹名称),并放在同个文件夹下。还可以添加字幕语言标记,比如这个字幕名称我后面加了 .chi [DBD-Raws][杀戮都市:O][1080P][BDRip][HEVC-10bit][FLAC].chi.ass,播放视频时就知道这个字幕是中文轨。

电视剧命名和目录结构

电视剧和电影差不多,稍微不同的是文件夹结构要多一层,因为电视剧有季度的存在,虽然有些电视剧它就一季,但也还是要创建季度(season)文件夹。比如我这个 硅谷 电视剧共 6 季,我得在 硅谷 文件夹下再创建 6 个文件夹,分别命名 season 01、season 02、season 03、season 04、season 05、season 06,将不同季度的视频和字幕文件放在对应的 season 文件夹里。

详细信息和其它媒体命名规范请看官方文档:https://jellyfin.org/docs/general/server/media/shows/
命名有误生成错误的媒体图片,重新修改命名后需要等段时间才会更新媒体信息,你也可以进控制台点击扫描所有媒体库这样就能手动刷新了。

客户端使用

官方的客户端导航:https://jellyfin.org/downloads/clients
Jellyfin 有着丰富的客户端,针对不同平台甚至不同媒体的。

  • PC 客户端: 推荐官方的 Jellyfin Media Player ,GitHub 下载时要注意一点,CPU 比较老的(大约 2013 年前)要下 x64-legacy 版本,你也可以先安装 x64 版本看看,如果打开遇到 0xc0000142 错误,就卸载换 x64-legacy 版本。
    PC 客户端默认英文界面,进 Settings 界面,Display 里面第一项 Display language 设为 汉语(简化字) 下拉保存。然后进下首页再点设置就看到变简中了。设置界面再点击 客户端设置,在Audio 栏找到 Normalize 去掉勾选,可以解决播放声音很小的问题,这个设置完直接点 Close 按钮关闭就可保存。

  • 安卓客户端: 推荐第三方的 Findroid,可以在谷歌商店下载。
    没啥复杂设置,重点再 设置播放器 选项,自己看着设置,推荐关闭默认 章节手势,这样看视频长按会变成2倍速播放,而不是跳过章节,毕竟很多视频没章节,而且章节跳过也不是常用项,误按了也很难受。

其它客户端就不赘述了,自己摸索再看看网上别人的反馈,没啥花样。

Jellyfin 备份和恢复

主要数据和配置这两部分要备份,数据位于 /var/lib/jellyfin,配置在 /etc/jellyfin。代码放在下面,不展开说了,你可以直接复制给 AI 讲解。很快可能就不需要这么麻烦了,官方预告了可能会在下一个主要版本 10.11.0 中提供备份和恢复插件,到时会更省心。

1
2
3
4
5
6
7
8
9
10
11
12
13
# jellyfin 备份打包
TIMESTAMP=$(date +%Y%m%d%H%M%S)
VERSION=10.10.7
tar -czvf /mnt/file/backups/jellyfin_data.${TIMESTAMP}_${VERSION}.tar.gz /var/lib/jellyfin
tar -czvf /mnt/file/backups/jellyfin_config.${TIMESTAMP}_${VERSION}.tar.gz /etc/jellyfin

# jellyfin 恢复备份
mv /var/lib/jellyfin /var/lib/jellyfin.bak
mv /etc/jellyfin /etc/jellyfin.bak
tar -xzvf /mnt/file/backups/jellyfin_data.20250320195211_10.10.6.tar.gz -C /
tar -xzvf /mnt/file/backups/jellyfin_config.20250320195211_10.10.6.tar.gz -C /
rm /mnt/file/backups/jellyfin_data.20250320195211_10.10.6.tar.gz
rm /mnt/file/backups/jellyfin_config.20250320195211_10.10.6.tar.gz

VPS 安装 Jellyfin 打造私人影院
http://example.com/jellyfin/
作者
2HA
发布于
2025年4月30日
许可协议