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里的安装方法?
页: [1]
查看完整版本: 威联通Jellyfin硬件转码教程