威联通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放电影的文件夹。
最后点击创建即可,后续步骤一致。
之前按照Docker镜像创建的方式硬件解码总是不生效,按照dockerCompose以yaml文件方式创建成功了。赞~ 请问emby可以吗,用4.8测试版,tone mapping无效,4K HDR 总是软解码 TS-451D用硬件解码有的视频看不了:提示客户端不支持什么的 TVS-951N 抄作业都抄不了[无奈]
464c按docker模式安装成功,但转码失败。。。。。看log显示FFmpeg exited with code 1,纯软可以,但卡死。。。。。 Alexandre 发表于 2023-6-20 09:15
464c按docker模式安装成功,但转码失败。。。。。看log显示FFmpeg exited with code 1,纯软可以,但卡死。 ...
翻了misaka大的帖子,找到原因了,在高级设置的设备里面,需要勾选“特权模式”否则显卡直通不生效,请大家注意,尤其我看前面有说docker安装不成功的,可能就是这个问题。 466c都抄不了
复制代码 不通过 err9 发表于 2023-6-21 21:43
复制代码 不通过
格式要按照图片里的来,那边复制过来排列顺序就不对了~ 请教下问下独显要怎么设置安装?装了几次都还是使用集显,设置独显转码不成功!
本帖最后由 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
有没在truenas里的安装方法? 我直接用.qpkg装,比这个简单,GitHub上有项目
https://github.com/pdulvp/jellyfin-qnap QNAP小威 发表于 2023-6-26 09:41
格式要按照图片里的来,那边复制过来排列顺序就不对了~
618才入手了464,请问现在怎么解决Nyanmisaka/jellyfin镜像源的问题? 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"
这个是解决无法刮削的地址吧 hugohugh 发表于 2024-6-14 08:22
我直接用.qpkg装,比这个简单,GitHub上有项目
https://github.com/pdulvp/jellyfin-qnap
DOCK里都下不了,用这个安装了这个版本支持硬解嘛 raoshine 发表于 2024-6-14 23:42
DOCK里都下不了,用这个安装了这个版本支持硬解嘛
支持,就是正常安装的版本 raoshine 发表于 2024-6-14 23:28
extra_hosts:
- "api.themoviedb.org:13.224.161.90"
- "image.themoviedb.org ...
是的,去年的帖子都被翻出来了 witiger 发表于 2023-7-11 10:14
以下是我的威联通docker-compose的设置,可以参考下:
大佬请教下 这个是从哪里可以导出呢 谢谢 xlm32 发表于 2025-3-27 21:29
大佬请教下 这个是从哪里可以导出呢 谢谢
我不太明白你的问题。如果你说的是在威联通 Container Station中如何部署,那么是“应用程序->创建”;如果你说的是这些host-IP的设置,你可以到https://dnschecker.org/ 这个网站测试得到最优的IP地址; 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 witiger 发表于 2025-3-28 09:31
如果是在其他 linux 系统中如何部署,我给一段我的脚本。至于如何安装docker 和 docker compose,可以参 ...
好的 没说清楚,我是想把我自己部署的docker的yml搞出来。十分感谢, witiger 发表于 2023-7-11 10:14
以下是我的威联通docker-compose的设置,可以参考下:
大佬,可以分享您的docker的一个配置吗?我这边用docker方法装的,查看容器就有映射的硬件。用yaml安装的 看不到有硬件。这种算正常吗?谢谢 xlm32 发表于 2025-4-4 21:12
大佬,可以分享您的docker的一个配置吗?我这边用docker方法装的,查看容器就有映射的硬件。用yaml安装的 ...
我目前是在威联通上用Plex了,Jellyfin安装在了软路由中。至于你说得情况我没遇到过,在网上找找教程吧。
页:
[1]