QNAP小威 发表于 2023-5-11 15:47

威联通Jellyfin硬件转码教程

本帖最后由 QNAP小威 于 2023-6-29 14:17 编辑

今天来给大家展示一下威联通新款NAS的解码与转码能力有多强?

本教程采用的是Nyanmisaka出品的Nyanmisaka/jellyfin。

Nyanmisaka原话:由于 Jellyfin 的 GPL 协议和 Intel 的 media-driver (iHD) Linux 驱动(部分开源)在协议上不兼容的缘故,Jellyfin 官方的 Docker 镜像:jellyfin/jellyfin 并不包含 Intel Linux 核显驱动。但是 Intel 的 QuickSync QSV 硬件加速依赖于该驱动,并且 Intel 10 代酷睿(Comet Lake)以及更新的处理器需要该驱动才能正常使用硬件加速。另外 VPP/OpenCL 色调映射也需要该驱动才能正常运作。

本次测试主要涉及2款新处理器,分别为英特尔赛扬最新一代N4505、N5105,N4505 具有 16EU 而 N5105 具有 24EU,更多的 EU(Intel 核显运算单元)有助于加快色调映射。

本篇也适用威联通新品NAS型号:TS-262C、TS-264C、TS-564、TS-464C、TS-462C、TBS-464等

目前版本是Jellyfin 10.8.0 最终版,在NAS上的体现:

1、Nyanmisaka大神给提供一个开箱即用的 Docker 镜像,包含最新的驱动、jellyfin-ffmpeg、补丁、CJK 系统字体等 。

2、此次更新主要带来的是完全基于显卡的缩放、反交错、色调映射、字幕烧录,免去使用软件滤镜造成的性能损失。另外添加了测试版 AV1 硬件解码支持。

3、最新的N4505、N5105处理器可支持实时转码,即使转码最高标准的测试视频(jellyfish-400-mbps-4k-uhd-hevc-10bit.mkv),CPU占用也只有20%左右。

威联通NAS安装方式有2种:通过Compose命令行安装 或通过Docker安装,操作都很简单。


通过Compose命令行安装

首先打开Container Station,没有下载的可以现在下载。威联通的Container Station属于行业内最好用的Docker容器工具,没有之一。它提供 Linux 容器的下一代系统容器管理器 LXD(Linux Container Daemon),它建立在 LXC 之上,以此技术衍生的Linux station服务很惊艳,居然可以流畅运行Ubuntu并直通HDMI输出。


然后选择“创建”,点击页面右方的“创建应用程序”。



然后进入创建应用程序页面。




version: "2.1"
services:
jellyfin:
    image: nyanmisaka/jellyfin:latest
    container_name: jellyfin
    environment:
      - PUID=0
      - PGID=0
      - TZ=Asia/Shanghai
    volumes:
      - /share/Container/jellyfin:/config
      - /share:/media
    ports:
      - 12501:8096
      - 12502:8920
    devices:
         - /dev/dri:/dev/dri</div>

为了防止上传过程中出现乱码,特意提供图片辅证填写:

完成后,进入Container Station总览页面,打开Jellyfin,可以看到链接,点击进去即可进入Jellyfin页面,如果没有出来也可以使用NASIP地址加端口号12501进入。
参考案例:192.168.1.3:12051


进入Jellyfin需要创建用户账号、密码、创建媒体库等,这一部分就和注册新软件差不多,所以跳过。咱们直接进入主页面。


到了这里,咱们需要进行一些转码的设置:首先进入“控制台”,选择“播放”。


然后硬件加速选项选择“Intel QuickSync(QSV)”,下面的启用硬件解码全部勾选上,硬件编码选项,选择“启用硬件编码”。
接下来通过Jellyfin 打开1080P HEVC MKV视频进行转码测试,转码为1080P低码率视频进行播放:

在播放之前截图资源监控器,CPU只占用到2%。下面将一个1080P蓝光视频转码为H264低码率1080P视频进行播放:



请注意,转码之后CPU占用率只有21%。瞬间打开,没有丝毫卡顿,非常流畅丝滑,同时拖动进度条也不会有任何延迟。
该视频播放信息如下:
播放信息播放器:Html Video Player播放方式:转码协议:http串流类型:HLS
视频信息播放器尺寸:1920x947视频分辨率:1920x800丢弃的帧:5损坏的帧:0
转码信息视频编码:H264音频编码:AAC声道:2比特率:8.0 Mbps转码进度:46.1%转码帧率:185 fps转码原因:字幕编码不支持
媒体源信息媒体载体:webm大小:4.6 GiB比特率:6.8 Mbps视频编码:HEVC Main 10视频码率:6.2 Mbps动态范围:SDR色彩初选:bt709音频编码:AC3比特率:640 kbps声道:6采样率:48000 Hz接下来直接采用Jellyfish视频比特率测试文件,我们直接选择最高标准的视频。视频格式如下:
jellyfish-400-mbps-4k-uhd-hevc-10bit.mkv
短短29秒的视频,体积是1.4GB。

通过Jellyfin 打开转码播放:


经过多次转码测试,CPU最高占用只能到15%。

通过播放信息终于查到原因为什么CPU跑不起来,因为视频比特率超过限制。播放信息播放器:Html Video Player播放方式:转码协议:http串流类型:HLS
视频信息播放器尺寸:1920x947视频分辨率:3840x2160丢弃的帧:7损坏的帧:0
转码信息视频编码:H264比特率:59.8 Mbps转码原因:视频比特率超过限制
媒体源信息媒体载体:webm大小:1.4 GiB比特率:400.0 Mbps视频编码:HEVC Main 10视频码率:400.0 Mbps动态范围:SDR
最后又尝试了4K蓝光原盘,CPU占用率最高达到25%。

通过Docker安装
接下来给大家讲解如何通过Docker安装。


首先进入Container Station,没有下载的可以现在下载。选择“创建”,搜索“nyanmisaka/jellyfin”,结果出来然后直接点击安装。


然后进入“高级设置”。点击“网络”,设置端口。


给Jellyfin提供硬件解码,需要分配硬件,硬件名称为:Direct Rendering Infrastructure(226),不要选择错了。

点击“共享文件夹”,把media选项直接删掉。


然后在下方挂载本机共享文件夹再新增一个media文件夹,映射到NAS放电影的文件夹。

最后点击创建即可,后续步骤一致。







sofia2034 发表于 2023-5-11 17:08

之前按照Docker镜像创建的方式硬件解码总是不生效,按照dockerCompose以yaml文件方式创建成功了。赞~

Carsomyr 发表于 2023-5-27 07:16

请问emby可以吗,用4.8测试版,tone mapping无效,4K HDR 总是软解码

smartleon 发表于 2023-6-9 17:08

TS-451D用硬件解码有的视频看不了:提示客户端不支持什么的

maiyachan 发表于 2023-6-10 12:03

TVS-951N 抄作业都抄不了[无奈]


Alexandre 发表于 2023-6-20 09:15

464c按docker模式安装成功,但转码失败。。。。。看log显示FFmpeg exited with code 1,纯软可以,但卡死。。。。。

Alexandre 发表于 2023-6-20 10:47

Alexandre 发表于 2023-6-20 09:15
464c按docker模式安装成功,但转码失败。。。。。看log显示FFmpeg exited with code 1,纯软可以,但卡死。 ...

翻了misaka大的帖子,找到原因了,在高级设置的设备里面,需要勾选“特权模式”否则显卡直通不生效,请大家注意,尤其我看前面有说docker安装不成功的,可能就是这个问题。

err9 发表于 2023-6-21 21:41

466c都抄不了

err9 发表于 2023-6-21 21:43

复制代码 不通过

QNAP小威 发表于 2023-6-26 09:41

err9 发表于 2023-6-21 21:43
复制代码 不通过

格式要按照图片里的来,那边复制过来排列顺序就不对了~

o0o0o 发表于 2023-6-27 14:06

请教下问下独显要怎么设置安装?装了几次都还是使用集显,设置独显转码不成功!

witiger 发表于 2023-7-11 10:14

本帖最后由 witiger 于 2023-7-11 10:15 编辑

以下是我的威联通docker-compose的设置,可以参考下:

version: '3'

services:
    jellyfin:
      image: nyanmisaka/jellyfin:latest
      container_name: jellyfin
      privileged: true
      environment:
            - PUID=0
            - PGID=0
            - TZ=Asia/Shanghai
      ports:
            - 10096:8096
            - 10920:8920
      extra_hosts:
            - "api.themoviedb.org:13.224.161.90"
            - "image.themoviedb.org:104.16.61.155"
            - "api.themoviedb.org:13.35.67.86"
            - "www.themoviedb.org:54.192.151.79"
            - "api.thetvdb.com:13.225.89.239"
            - "api.thetvdb.com:13.249.175.212"
            - "api.thetvdb.com:13.35.161.120"
            - "api.themoviedb.org:13.226.238.76"
            - "image.tmdb.org:99.84.238.101"
            - "image.tmdb.org:138.199.36.9"
            - "api.themoviedb.org:13.35.7.102"
            - "api.themoviedb.org:13.225.103.26"
            - "api.themoviedb.org:13.226.191.85"
            - "api.themoviedb.org:13.225.103.110"
            - "api.themoviedb.org:52.85.79.89"
            - "api.themoviedb.org:13.225.41.40"
            - "api.themoviedb.org:13.226.251.88"
      volumes:
            - /share/Multimedia:/media
            - /share/Container/jellyfin/cache:/cache
            - /share/Container/jellyfin/config:/config
            - /share/Container/jellyfin/fonts:/usr/share/fonts
      devices:
            - /dev/dri/:/dev/dri/
      restart: unless-stopped

dutian_007 发表于 2024-3-22 21:10

有没在truenas里的安装方法?

hugohugh 发表于 2024-6-14 08:22

我直接用.qpkg装,比这个简单,GitHub上有项目
https://github.com/pdulvp/jellyfin-qnap

lkok 发表于 2024-6-14 17:34

QNAP小威 发表于 2023-6-26 09:41
格式要按照图片里的来,那边复制过来排列顺序就不对了~

618才入手了464,请问现在怎么解决Nyanmisaka/jellyfin镜像源的问题?

raoshine 发表于 2024-6-14 23:28

witiger 发表于 2023-7-11 10:14
以下是我的威联通docker-compose的设置,可以参考下:

extra_hosts:
            - "api.themoviedb.org:13.224.161.90"
            - "image.themoviedb.org:104.16.61.155"
            - "api.themoviedb.org:13.35.67.86"
            - "www.themoviedb.org:54.192.151.79"
            - "api.thetvdb.com:13.225.89.239"
            - "api.thetvdb.com:13.249.175.212"
            - "api.thetvdb.com:13.35.161.120"
            - "api.themoviedb.org:13.226.238.76"
            - "image.tmdb.org:99.84.238.101"
            - "image.tmdb.org:138.199.36.9"
            - "api.themoviedb.org:13.35.7.102"
            - "api.themoviedb.org:13.225.103.26"
            - "api.themoviedb.org:13.226.191.85"
            - "api.themoviedb.org:13.225.103.110"
            - "api.themoviedb.org:52.85.79.89"
            - "api.themoviedb.org:13.225.41.40"
            - "api.themoviedb.org:13.226.251.88"
这个是解决无法刮削的地址吧

raoshine 发表于 2024-6-14 23:42

hugohugh 发表于 2024-6-14 08:22
我直接用.qpkg装,比这个简单,GitHub上有项目
https://github.com/pdulvp/jellyfin-qnap

DOCK里都下不了,用这个安装了这个版本支持硬解嘛

hugohugh 发表于 2024-6-15 05:53

raoshine 发表于 2024-6-14 23:42
DOCK里都下不了,用这个安装了这个版本支持硬解嘛

支持,就是正常安装的版本

witiger 发表于 2024-6-17 14:40

raoshine 发表于 2024-6-14 23:28
extra_hosts:
            - "api.themoviedb.org:13.224.161.90"
            - "image.themoviedb.org ...

是的,去年的帖子都被翻出来了

xlm32 发表于 2025-3-27 21:29

witiger 发表于 2023-7-11 10:14
以下是我的威联通docker-compose的设置,可以参考下:

大佬请教下 这个是从哪里可以导出呢 谢谢

witiger 发表于 2025-3-28 09:11

xlm32 发表于 2025-3-27 21:29
大佬请教下 这个是从哪里可以导出呢 谢谢

我不太明白你的问题。如果你说的是在威联通 Container Station中如何部署,那么是“应用程序->创建”;如果你说的是这些host-IP的设置,你可以到https://dnschecker.org/ 这个网站测试得到最优的IP地址;

witiger 发表于 2025-3-28 09:31

xlm32 发表于 2025-3-27 21:29
大佬请教下 这个是从哪里可以导出呢 谢谢

如果是在其他 linux 系统中如何部署,我给一段我的脚本。至于如何安装docker 和 docker compose,可以参考下面的脚本。


root@JulianHome:~# docker compose ls
NAME                STATUS            CONFIG FILES
jellyfin            running(1)          /docker/app/jellyfin/docker-compose.yml
root@JulianHome:~# cat/docker/app/jellyfin/docker-compose.yml
services:
jellyfin:
    image: nyanmisaka/jellyfin:latest
    restart: unless-stopped
    container_name: jellyfin
    environment:
      - PUID=0
      - PGID=0
      - TZ=Asia/Shanghai
    volumes:
      - ./config:/config
      - ./cache:/cache
      - /mnt/nfs/nas_private:/media
    ports:
      - 8096:8096
      - 8920:8920
    devices:
      - /dev/dri:/dev/dri
    extra_hosts:
      - "api.themoviedb.org:54.230.228.65"
      - "www.themoviedb.org:52.85.65.125"
      - "image.tmdb.org:143.244.50.211"
      - "github.githubassets.com:185.199.108.154"
      - "central.github.com:140.82.113.22"
      - "desktop.githubusercontent.com:185.199.111.133"
      - "camo.githubusercontent.com:185.199.108.133"
      - "github.map.fastly.net:185.199.111.133"
      - "github.global.ssl.fastly.net:146.75.117.194"
      - "gist.github.com:140.82.113.3"
      - "github.io:185.199.108.153"
      - "github.com:140.82.121.3"
      - "api.github.com:140.82.114.6"
      - "raw.githubusercontent.com:185.199.109.133"
      - "user-images.githubusercontent.com:185.199.111.133"
      - "favicons.githubusercontent.com:185.199.111.133"
      - "avatars5.githubusercontent.com:185.199.111.133"
      - "avatars4.githubusercontent.com:185.199.110.133"
      - "avatars3.githubusercontent.com:185.199.111.133"
      - "avatars2.githubusercontent.com:185.199.109.133"
      - "avatars1.githubusercontent.com:185.199.110.133"
      - "avatars0.githubusercontent.com:185.199.111.133"
      - "avatars.githubusercontent.com:185.199.109.133"
      - "codeload.github.com:140.82.113.9"
      - "github-cloud.s3.amazonaws.com:54.231.197.217"
      - "github-com.s3.amazonaws.com:3.5.27.245"
      - "github-production-release-asset-2e65be.s3.amazonaws.com:3.5.29.57"
      - "github-production-user-asset-6210df.s3.amazonaws.com:3.5.21.127"
      - "github-production-repository-file-5c1aeb.s3.amazonaws.com:3.5.30.217"
      - "githubstatus.com:185.199.108.153"
      - "github.community:140.82.114.17"
      - "media.githubusercontent.com:185.199.110.133"
      - "objects.githubusercontent.com:185.199.109.133"
      - "raw.github.com:185.199.109.133"
      - "copilot-proxy.githubusercontent.com:20.85.130.105"
    networks:
      docker_net:
      ipv4_address: 10.10.10.96

networks:
docker_net:
    external: true


在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,在两个系列的 linux 系统上都可以使用这套脚本安装,另外可以通过 `--mirror` 选项使用国内源进行安装:执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker 的稳定(stable)版本安装在系统中。

$ curl -fsSL get.docker.com -o get-docker.sh    #获取bash脚本
$ sudo sh get-docker.sh --mirror Aliyun         #通过bash脚本安装docker

$ sudo systemctl enable docker                  #开机启动
$ sudo systemctl start docker                   #当前启动

$ sudo groupadd docker                        #创建docker用户组,一般脚本安装完就已经创建

$ sudo usermod -aG docker $USER               #centOS
$ sudo gpasswd -a ${USER} docker                #ubuntu


$ sudo mkdir -p /etc/docker
$ sudo tee /etc/docker/daemon.json <<-'EOF'   #配置镜像加速
{
"registry-mirrors": [
    "https://xxxxxxxx.mirror.aliyuncs.com/",    #阿里云镜像加速
    "https://hub-mirror.c.163.com/"             #网易镜像加速
]
}
EOF
$ sudo systemctl daemon-reload && sudo systemctl restart docker

$ docker info                                 #验证docker的镜像加速是否生效
                ..........
    127.0.0.0/8
   Registry Mirrors:
    https://xxxxxxxx.mirror.aliyuncs.com/
    https://hub-mirror.c.163.com/
   Live Restore Enabled: false
   Product License: Community Engine

xlm32 发表于 2025-4-4 17:29

witiger 发表于 2025-3-28 09:31
如果是在其他 linux 系统中如何部署,我给一段我的脚本。至于如何安装docker 和 docker compose,可以参 ...

好的 没说清楚,我是想把我自己部署的docker的yml搞出来。十分感谢,

xlm32 发表于 2025-4-4 21:12

witiger 发表于 2023-7-11 10:14
以下是我的威联通docker-compose的设置,可以参考下:

大佬,可以分享您的docker的一个配置吗?我这边用docker方法装的,查看容器就有映射的硬件。用yaml安装的 看不到有硬件。这种算正常吗?谢谢

witiger 发表于 2025-4-8 13:58

xlm32 发表于 2025-4-4 21:12
大佬,可以分享您的docker的一个配置吗?我这边用docker方法装的,查看容器就有映射的硬件。用yaml安装的 ...

我目前是在威联通上用Plex了,Jellyfin安装在了软路由中。至于你说得情况我没遇到过,在网上找找教程吧。
页: [1]
查看完整版本: 威联通Jellyfin硬件转码教程