## 基于 Jellyfin 打造家庭影音中心 – 笔记
### 一、 项目概述
– **目标**: 利用开源免费的媒体服务器软件 **Jellyfin** 打造一个功能强大的家庭影音中心。
– **主要功能**:
– **NAS 安装 Jellyfin 并实现硬件加速转码**: 在群晖 NAS 上安装 Jellyfin,并利用 GPU 实现硬件加速转码,提升视频播放流畅度。
– **内网连接使用 Kodi 直传**: 在局域网内使用 Kodi 播放器直接连接 Jellyfin 服务器,访问影视资源。
– **外网连接使用实时转码**: 通过外网访问 Jellyfin 服务器,并利用实时转码功能,确保手机等移动设备流畅播放视频。
### 二、 遇到的挑战与解决方案
#### 1. **Docker 默认不加载 GPU 驱动**
– **问题**:
– 按照通用教程在 Docker 内安装 Jellyfin 后,发现无法实现硬件转码,播放视频时 CPU 占用率飙升至 100%。
– **原因**:
– Docker 默认不会加载 GPU 驱动文件,导致 Jellyfin 无法调用 GPU 进行硬件加速转码。
– **解决方案**:
– **命令行方式安装 Jellyfin**:
– 使用命令行方式启动 Docker 容器,并在启动参数中明确映射 GPU 驱动文件,例如 `–device=/dev/dri/renderD128`。
– **图形界面安装**:
– 在 Docker 创建容器的图形界面中,在“环境”一栏尝试添加 `–device /dev/dri/renderD128` 参数,但未能成功加载驱动文件。
#### 2. **安装过程详解**
1. **检查显卡驱动**:
– 使用命令 `ls /dev/dri` 检查群晖 NAS 是否识别到 GPU 驱动。
– 如果输出结果中包含 `renderD128`,则表示驱动已安装,可以进行下一步。
2. **创建文件目录**:
– 在 Docker 共享文件夹内新建 `jellyfin` 文件夹,并分配读写权限。
– 在 `jellyfin` 文件夹内创建两个子文件夹:
– `cache`: 用于存放 Jellyfin 缓存文件。
– `config`: 用于存放 Jellyfin 配置文件。
3. **安装 Jellyfin**:
– 使用以下命令安装 Jellyfin:
“`bash
sudo su
sudo docker pull jellyfin/jellyfin
sudo docker run -d –name jellyfin \
-v /volume1/docker/jellyfin/config:/config \
-v /volume1/docker/jellyfin/cache:/cache \
-v /volume1/video:/video \
-p 8096:8096 \
-p 8920:8920 \
–device=/dev/dri/renderD128 \
–restart unless-stopped \
jellyfin/jellyfin
“`
– **参数说明**:
– `-v`: 挂载主机目录到容器内。
– `-p`: 映射端口号,8096 为 HTTP 端口,8920 为 HTTPS 端口。
– `–device`: 映射 GPU 驱动文件到容器内。
– `–restart unless-stopped`: 设置容器自动重启策略。
4. **检查驱动装载**:
– 使用 `docker ps` 获取 Jellyfin 容器的 ID。
– 使用 `docker exec -it <容器ID> /bin/bash` 进入容器环境。
– 在容器内使用 `ls /dev/dri` 检查 GPU 驱动是否已加载。
5. **配置 Jellyfin**:
– 在浏览器中访问 `Nas地址:8096` 进入 Jellyfin 配置页面。
– 在转码设置中,将硬件加速设置为 `VA API`,并勾选 `硬件编码`,以启用 GPU 硬件转码。
– 实际测试表明,1080P 视频实时转码时,CPU 占用率在 50% 以下。
### 三、 内网直传
– **工具**: **Kodi** 播放器
– **步骤**:
1. 下载 Jellyfin 的 Kodi 插件 `repository.jellyfin.kodi.zip`。
2. 下载 Kodi 安装包并安装。
3. 打开 Kodi,进入 `设置` -> `系统` -> `插件`,允许“未知来源”。
4. 返回 `设置` -> `插件`,选择 `从 Zip 文件安装`,选择第一步下载的 zip 包。
5. 返回 `设置` -> `插件`,选择 `从库安装`,选择 `Jellyfin` -> `视频插件`。
6. 安装完成后,配置服务器地址为 `Nas地址:8096`,并登录即可。
### 四、 外网访问
– **前提**: 家庭网络拥有公网 IP。
– **步骤**:
1. 在路由器上设置 DDNS(动态域名解析)和端口映射。
2. 使用 `域名:映射端口号` 即可通过外网访问 Jellyfin 媒体库。
– **客户端**:
– Jellyfin 提供了 Android 客户端,利用实时硬件转码功能,手机等移动设备可以流畅播放视频。
### 五、 对比与选择
| 应用 | 优点 | 缺点 |
|—|—|—|
| **VideoStation** | 集成于群晖 NAS,易于使用 | 刮削器功能较弱,手机播放偶尔会出现黑屏 |
| **Plex** | 功能强大,用户界面友好 | 高级功能需要付费订阅 |
| **Jellyfin** | 开源免费,实时转码功能强大 | 需要一定的技术知识进行配置 |
### 六、 总结
通过本文的详细介绍,您可以了解到如何利用 Jellyfin 搭建一个功能强大的家庭影音中心。 虽然过程中可能会遇到一些技术难题,但通过合理的解决方案,最终可以实现高效的视频播放体验。 Jellyfin 的开源免费特性以及强大的实时转码功能,使其成为家庭影音中心的理想选择。