前言废话

这几年陆陆续续入手了QNAP、群晖的两台入门级NAS机器,同时也玩起来了 All in On(Bomb)的小主机,真的是一遍实战一遍踩坑,作为非CS专业,很多东西就边查边学。

现在就打算总结下小经验,写点小文章做个记录也顺带骗一点赞吧,有问题欢迎大家一起讨论。

安装说明

  • 环境:家用300M移动宽带网络,有独立(动态)IP与域名服务
  • 硬件:群晖D220+ | CPU-J4125(4核)| 内存-10GB(DDR4)
  • 系统:DSM 7.2.1

安装步骤

一、基础准备

1.1 创建共享文件夹

使用上需要新建两个共享文件夹,一个用于存储 Jellyfin(Docker) 相关的配置&信息文件,一个用与存储媒体视频文件(供 Jellyfin 读取使用)

PS:纯个人喜好了,其实想弄几个弄几个

  • 本文用例:群晖>控制面板>共享文件夹 | 新增
    • Dockers 存放 Docker 文件
    • ENT_Medias 存放影音文件

1.2 权限配置

给对应的共享文件夹赋予 Everyone 的所有权限

  • 本文用例:群晖>File Station>属性(右键)>权限 | 新增
    • 用户组 Everyone
    • 权限:勾选所有(完全控制)并保存

二、Docker 版 Jellyfin 安装

2.1 下载镜像

本次使用群晖系统 Container Manager 进行操作(从套件中心安装即可)

  • Container Manager >注册表 | 搜索 jellyfin
  • 下载 nyanmisaka/jellyfin 镜像(大佬提供的国内特供版本)

2.2 配置&启动

配置启动在 Container Manager 有两种方法,分别是

  1. 通过 docker-compose.yml ( Container Manager >项目>新增)
  2. 通过 Container Manager 傻瓜式配置

PS:两者差别不大,但是想学习 docker 的朋友建议了解下 compose.yml(yaml)或者 docker run

compose.yml 放到 附录2 略作说明 

这里先讲通过 Container Manager 傻瓜式配置的步骤

2.2.1 运行配置

  1. Container Manager >映像(选中 nyanmisaka/jellyfin)点击【运行】
  1. 创建容器弹窗,开始配置
    • 常规设置
      • 容器名称:nyanmisaka/jellyfin
      • 勾选:启用自动重新启动
  • 下一步,配置服务端口号、文件夹映射关系
    • 80968096
    • /Dockers/jellyfin/config -> /config
    • /Dockers/jellyfin/cache -> /cache
    • /ENT_Medias -> /media
左侧为群晖NAS的配置参数,右侧为 Jellyfin 服务的映射配置参数
  • 往下拉,记得勾选:使用高权限执行容器(确保能调用核显硬解码)
高权限才能调用核显
  • 点击下一步,直到完成启动(启动 Jellyfin 服务成功)

三、配置 Jellyfin

3.1 访问服务

Jellyfin 启动之后,默认的访问端口为 8096,网页通过输入局域网 ip:8096 即可访问

作者配置的外网访问,服务反向代理的端口为 18096

3.2 登录+配置媒体库

设置账号并登录,媒体库的配置可以进入服务后再去配置

登陆后通过 左上角>控制台>媒体库 来添加修改媒体库配置
/media 就是之前配置的 Jellyfin 服务的媒体目录,映射的是 ENT_Medias 文件夹目录

3.3 硬件解码配置

进入到控制台后配置最后的硬件解码

  • Jellyfin >控制台>播放>转码 | 选择硬件加速选项并勾选启用的项目
优先选用 QSV ,其他选项勾选说明参见 附录1

3.4 视频播放

片源为:《拯救大兵瑞恩》4K HEVC HDR | 文件大小:30.2GB

  • 串流播放 VS 转码播放
网页端直接原片串流播放
右下角 设置>质量 改换其他分辨率和码率即使用转码

好了!大功告成,其他就是下一篇片源素材的下载+自动化整理(刮削)的教程了


附录1 - 硬解配置

请在 https://www.cpu-monkey.com/zh-cn/ 网站查看所使用的 CPU 编解码的支持情况,并在 Jellyfin 中进行相应设置

  • 以 J4125 为例,AV1 是不支持编解码的,所以硬件解码就不能勾选
UHD 600 还是老了啊 | 破群晖给的老硬件
  • 对于 Intel 核显,建议优先使用 QSV 而非 VAAPI,QSV 通常能提供更高的吞吐量

参考资料

  

附录2 - compose.yaml

通过 Container Manager >项目 进行创建

  • yaml 配置文件,下一篇的 Docker 其他服务会使用这种模式
version: '3.5'
services:
  jellyfin:
    image: nyanmisaka/jellyfin:latest
    container_name: jellyfin
    volumes:
     - /Dockers/jellyfin/config:/config
     - /Dockers/jellyfin/cache:/cache
     - /ENT_Medias:/media
    environment:
     - PUID=0
     - PGID=0
     - TZ=Aisa/Shanghai
    devices:
     - /dev/dri/renderD128:/dev/dri/renderD128 
    ports:
     - 8096:8096
     - 8920:8920
    network_mode: bridge
    restart: unless-stopped