GXNAS博客

  • 博客会员
    • 注册会员
    • 重置密码
  • 博客文章分类
    • NAS
    • 虚拟化技术
    • 路由器
    • 网站
    • Linux
    • Windows
    • IPTV
    • 游戏
    • 资源下载
    • 其他
  • ”零刻迷你主机“玩机教程
    • 零刻EQ12迷你小主机评测
    • 零刻SER5 5500U打造新潮派HTPC
    • 零刻SEi10玩ESXI+群晖NAS+Ubuntu
    • 零刻EQ13化身迷你静音省电的NAS
    • 零刻EQ13部署双软路由教程
    • 零刻ME Mini搭建群晖NAS教程
  • 阿里云盘资源
    • 阿里云盘资源更新日志
    • 阿里云盘资源分享
    • 阿里云盘扩容福利码
  • 【GXNAS网盘】
  • 【GXNAS小工具】
    • 免费AI绘图
    • 五子棋小游戏
  • 请博主喝奶茶
GXNAS博客
https://wp.gxnas.com
  1. 首页
  2. NAS
  3. 博文内容

群晖用Jellyfin实现GPU硬解实时转码

发布时间:2019年11月19日 87074次浏览 7人点赞 16条评论

实时转码到底是干嘛用的

举个例子哈:大家在手机APP端看爱奇艺、优酷、QQ视频的时候。影片是可以选择清晰度的。一般有流畅、高清、蓝光等等选项。
当然按照清晰度(分辨率)的不同,相应消耗的流量也不一样。

一般来说;极速<流畅<高清<超清720P<1080P蓝光

其实这些视频播放软件,在服务器中针对同一个视频分别存放了不通分辨率的版本。根据客户端的需求选择播放。来满足不同人群对视频源的需求。

在我们的群晖中。自带的套件Video Station 就有离线转码的功能。

DS video 客户端可让您执行离线转码以将视频转换到不同分辨率的 .mp4 格式,这是在移动设备上最兼容的视频格式。 离线转码启动后,Video Station 将开始转码视频以便可离线使用。完成离线转码后,DS video 将自动下载或在线播放转码视频供您欣赏。当然也会在我们的群晖中生成一份转码成功的视频文件。

Jellyfin 的实时转码

Jellyfin 在客户端,或者网页端播放视频的时候,是支持选择码率的。比方说我们在手机客户端上选择群晖的某个视频进行播放的时候。默认为原始码率播放。若你的原始视频是1080P。则将会以1080P 60Mbps 进行播放。当然,如果你的网络足够流畅。家里的上传宽带足够大的话。原始码率能够带给你最高清晰度的体验。但如果,你是在外面播放家里群晖的视频的话。可能会受到两方面的限制:

  • 家里的上传宽带无法达到原始码率的需求
  • 原始码率播放非常消耗手机流量

这个时候,我们就需要Jellyfin 的实时转码功能啦。比方说我们可以选择 1080P 10Mbps 、或者选择720P 3Mbps来解决刚刚提到的两点问题。

Jellyfin 实时转码消耗CPU资源

如果我们没有在Jellyfin的后台开启硬解的功能.我们的群晖将会使用CPU 来进行软解进行实时转码。在转码的过程中,CPU将会以接近100%的工作模式来帮助我们进行转码。对于CPU来说如此繁重的“体力劳动”可能会带来发热严重,群晖其他功能受到性能影响等等问题。

另外,一般我们群晖系统CPU中的核心显卡是没有用武之地的。所以,本教程将教会大家。如何利用CPU 的核心显卡进行硬解实时转码。

Jellyfin核心显卡硬解实时转码的必要条件

  • 群晖的系统版本需要:DS916+ 或 DS918+ (DS3617xs 、 DS3615xs不支持)
  • CPU 有核心显卡。当然集成的核心显卡越厉害越好
  • 黑群晖、白群晖、全洗白群晖、半洗白群晖均可

[查看系统是否支持显卡硬解转码]

SSH链接成功后。输入 ls /dev/dri 之后若如下图显示,则说明支持显卡硬解。
输出 card0 renderD128

教程开始-搭建并运行Jellyfin容器

在《群晖用Jellyfin搭建媒体服务器》这篇教程中,已经教大家如何在群晖中搭建Jellyfin媒体服务器啦。
今天的这篇教程中,我们将利用命令行的方式搭建。因为图形界面的搭建没法指定容器转载核心显卡的文件。

1. 在群晖的套件中心,安装Docker套件。

2. Docker安装成功后,我们的file station中即可看到多出来一个Docker文件夹。 我们在此文件夹内建里 jellyfin 文件夹。再进入jellyfin文件夹。分别建里 config文件夹及cache文件夹。
(分别为以后jellyfin的配置文件和缓存文件准备目录)

3. 群晖系统中打开SSH功能 (控制面板->终端机和SNMP->启动SSH功能->应用)

4. 利用我们的管理员账号、密码通过ssh客户端登陆群晖系统。 通过 sudo su – 命令切换为root用户

5. 运行以下命令:以管理员身份在Docker中下载jellyfin镜像

sudo docker pull jellyfin/jellyfin

6. 运行以下命令:根据指定参数运行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 参数表示装载文件夹。所以第2-4行请根据实际情况更改。

第2-3行指定卷1的两个文件夹分别作为配置文件和缓存文件地址
第4行指定卷1下video文件夹为Jellyfin的媒体文件夹

7. 测试容器是否已经成功挂载device 下的驱动文件

运行如下代码查看运行容器(Jellyfin)的ID:

docker ps
在输出结果中找到jellyfin的CONTAINER ID,记下来,本例的ID是87393c29905f;

 

//进入容器环境

docker exec -it  87393c29905f  /bin/bash

 

//检查显卡驱动

ls /dev/dri

 

输入 ls /dev/dri 后观察输出结果,如果目录下存在 renderD128 则表示驱动已加载,否则回头看一下是不是哪些地方输错了,重新试一下,最后 Ctrl+D 退出容器环境

教程继续-配置Jellyfin设置

访问 http://你的内网ip:8096 即可初始化配置Jellyfin。配置媒体库等。

具体请参照 《群晖用Jellyfin搭建媒体服务器》这篇教程中的:【二、Jellyfin的设置】,这里不再赘述

Jellyfin 后台启用硬件转码功能 [ 硬件加速选择:Video Acceleration API (VA API)(experimental) ,并勾选“启用硬件解码” ]

至此,搭建和配置结束。我们的手机端电脑端,可以实现实时硬解转码啦!

测试实时转码CPU占用率

首先,我们测试一部1080P 电影。影片参数如下图:

开启硬件加速:

后台按照我们刚刚的设置。然后播放该视频,并选择转码为 1080P 10Mbps

打开群晖分别查看 Docker容器,以及系统的CPU占用。

同时,我们链接群晖的SSH 通过 top 命令查看解码过程是否调用了显卡驱动:

关闭后台硬件加速功能。(硬件加速选择“没有”)

可以明显看出,关闭硬件加速后。转码会非常消耗CPU资源。

 


补充说明:

1、如果你的Jellyfin版本升级到10.4.3或者以下的版本,按照上面的设置硬解后保存出错的,需要多做两个步骤:

(1)给容器提权:在Docker容器中找到Jellyfin的容器,先关掉,点编辑容器的常规设置,勾选“使用高权限执行容器”;

 

(2)添加环境:在环境中添加两项,分别是 PUID(值填写为 0)和PGID(值填写为0);

2、如果你的Jellyfin版本升级到10.4.3以后,发现设置硬解后保存出错的或者硬解/转码无效的(就是设置了硬解,但是CPU依然暴红),可以回滚到10.4.3版本;或者多做以下两个步骤:

(1)用root登录ssh输入 docker ps 查看 ID(即本博文安装步骤第7步查看的ID);
(2)下面输入命令:

sudo docker exec --user root -it 容器的ID sh -c 'echo "deb http://http.us.debian.org/debian stable main contrib non-free" | tee -a /etc/apt/sources.list && apt-get update && apt-get install -y i965-va-driver-shaders && vainfo'

 

然后静静等待安装完成就OK了。

标签: Jellyfin NAS 群晖
最后更新:2024年5月21日

本文作者:博主

个人简介:(未填写)

打赏 点赞
< 上一篇
下一篇 >

文章评论

  • yichujifa

    大佬你好,我的NAS 处理器是 D1581 ,没有集成显卡,独显是 Radeon HD 8470。
    我在ESXI 将独显直通给群晖,打算在 jellyfin 开启转码。
    群晖ssh 运行 “ls /dev/dri”提示 “ls: cannot access '/dev/dri': No such file or directory
    ” ,还需要额外的操作吗 ?
    https://s21.ax1x.com/2024/05/12/pke7kw9.png
    https://s21.ax1x.com/2024/05/12/pke7FeJ.png

    2024年5月12日
    登录以回复
    • 博主

      @yichujifa 首先ls /dev/dri是看核显不是看独显的命令,你这个CPU没有核显,所以敲命令肯定是没有东西的。其次群晖暂时只支持A卡独显硬解,所以你这个独显也是不能硬解的。还有,DS3622不支持硬解,如果你用开独显硬解,请使用A卡独显装DS920或SA6400的群晖系统,再装好独显驱动就可以。

      2024年5月13日
      登录以回复
  • 不走寻常路爱你

    ERR] [16] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 139
    [07:52:11] [INF] [16] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe brea
    ks but one is requested, ignoring that request
    [07:52:11] [INF] [16] Jellyfin.Api.Helpers.TranscodingJobHelper: /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -init_hw_d
    evice vaapi=va:/dev/dri/renderD128 -filter_hw_device va -hwaccel vaapi -hwaccel_output_format vaapi -autorotate 0 -canvas_size 19
    20x1080 -i file:"/movie/dianying/X战:第一战.2011 UHD BluRay REMUX 2160p HEVC DTS-HD MA5.1 2Audio-CHD.mkv" -autoscale 0 -map_meta
    data -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -codec:v:0 h264_vaapi -rc_mode VBR -b:v 59360000 -maxrate 59360000 -bufsize
    118720000 -profile:v:0 high -force_key_frames:0 "expr:gte(t,0+n_forced*3)" -filter_complex "[0:3]scale=s=3840x2160:flags=fast_bi
    linear[sub];[0:0]setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale_vaapi=format=nv12,hwdownload,format=nv12[
    main];[main][sub]overlay=eof_action=pass:shortest=1:repeatlast=0,hwupload_vaapi" -start_at_zero -codec:a:0 libfdk_aac -ac 6 -ab 6
    40000 -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type mpe
    gts -start_number 0 -hls_segment_filename "/config/transcodes/4184d6e3dde1e5e55e5673ff4ae5a2d0%d.ts" -hls_playlist_type vod -hls_
    list_size 0 -y "/config/transcodes/4184d6e3dde1e5e55e5673ff4ae5a2d0.m3u8"

    2022年12月2日
    登录以回复
  • 不走寻常路爱你

    整整搞了两天:
    我的机器是PVE 黑裙7.0 CPU是牙膏厂7500
    top 之后显示这个,我也不知道成功了没有,264可以,265是一直不行,不知道啥原因。大佬,我这个算成功了么?
    /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -init_hw_device vaapi=va:/dev/dri/renderD128 -filter_hw_device va -hwaccel vaapi -hwaccel_output_format vaapi -autorotate 0 -canva+

    2022年12月2日
    登录以回复
  • cocoa

    大神,您好! :good: 能不能给我一个核显ID 3185的驱动,我现在用的J4125 CPU。
    感觉核显驱动有问题,我现在用的DSM_DS918+_42962版本。

    2022年9月14日
    登录以回复
    • cocoa

      @cocoa HW control enabled的后面是yes,但不知道为啥还是不支持硬解 :lei: :lei:
      是需要打显卡补丁么?

      2022年9月14日
      登录以回复
  • maxd

    我也是同样的问题,用的是最新版jellyfin,群晖内直通ls /dev/dri回显正常,docker内回显也正常,jellyfin设置也可以打开硬解,但是实际播放就会报错
    “该客户端与媒体不兼容,服务器未发送兼容的媒体格式。”
    然后打i965-va-driver-shaders,报:
    Preparing to unpack .../i965-va-driver-shaders_2.3.0-1_amd64.deb ...
    Unpacking i965-va-driver-shaders:amd64 (2.3.0-1) ...
    Setting up i965-va-driver-shaders:amd64 (2.3.0-1) ...
    sh: 1: vainfo: not found
    请问如何解决

    2021年7月13日
    登录以回复
    • 博主

      @maxd 用APP来播放。因为有些视频编码,浏览器不支持网页播放。

      2021年7月14日
      登录以回复
      • maxd

        @博主 谢谢,但是app也没用,我几乎所有jelly版本试了个遍,看log里面
        libva: /usr/lib/jellyfin-ffmpeg/lib/dri/i965_drv_video.so init failed 这个始终解决不了
        浪费太多时间,直接换套件了,用着也还行

        2021年7月15日
        登录以回复
        • 博主

          @maxd 你试一下把视频类别从改为“混合内容”,看看能不能正常播放。

          2021年7月15日
          登录以回复
      • maxd

        @博主 改成混合内容还是不行。。。我放弃了,直接用套件版就好

        2021年7月17日
        登录以回复
        • 不走寻常路爱你

          @maxd 混合内容在哪?

          2022年12月2日
          登录以回复
  • cm86

    我自己是直接在套件里面安装了,不过搞不懂咋回事,内网无线看个1080p都不爽,加载半天,拖动也卡一会,核显驱动有,bios
    睿频啥的也关了…烦人3455真不行

    2021年1月24日
    登录以回复
    • 博主

      @cm86 可以用第三方解码,比如KODI

      2021年1月24日
      登录以回复
  • cm86

    为啥要在docker里面安装呢?

    2021年1月24日
    登录以回复
    • 博主

      @cm86 以前只有用Docker安装,套件没出呢。

      2021年1月24日
      登录以回复
  • 您需要 登录 之后才可以评论
    站内搜索
    分类
    • IPTV / 15篇
    • Linux / 34篇
    • NAS / 252篇
    • Windows / 21篇
    • 其他 / 37篇
    • 游戏 / 3篇
    • 网站 / 126篇
    • 虚拟化技术 / 55篇
    • 资源下载 / 2篇
    • 路由器 / 46篇
    归档
    统计信息
    • 243
    • 2,756
    • 571
    • 16,806
    • 2025年7月25日

    © 2025 GXNAS博客 版权所有,未经许可不得转载或引用本站的内容。

    COPYRIGHT ALL RIGHTS RESERVED.

    网站备案号:桂ICP备18008717号