Jellyfin转码和色调映射效率提升:开启处理器低电压模式(GuC/HuC)

news2024/11/15 23:46:30

Jellyfin转码和色调映射效率提升

  • 系统环境
  • 拉取nyanmisaka/jellyfin镜像
  • 开启低电压模式
  • Jellyfin配置
    • 开启QSV和低电压模式解码
    • 开启色调映射(基于OpenCL)
  • 实测
    • 验证低电压模式
    • 转码帧率实测
      • 测试视频概况
      • 221029版本 vs 230901版本
      • 开启色调映射的影响
      • 开启低电压模式
  • 总结

系统环境

  1. 操作系统: Ubuntu 20.04,内核版本5.4.0-165-generic
  2. 硬件:工控板
  3. CPU: J4105,1.5GHz, 核显UHD600
  4. Jellyfin: 镜像nyanmisaka/jellyfin:23091-amd64

本文验证J4105硬件平台能否顺畅播放4K/HDR视频(开启HDR转SDR的色调映射),为此部署最新的nyanmisaka版jellyfin,开启QSV硬件解码和低电压模式,将核显的性能尽量释放出来。
本文的重点是加载GuC/HuC固件,使Jellyfin能够开启低电压模式。然后通过实测验证开启低电压模式对转码效率是否有提升。

用于转码 4K HDR HEVC、VP9 10bit 视频的最低配置为 J4005 类似的代号为 GeminiLake 的处理器,即 UHD 600/605.
– by nyanmisaka

拉取nyanmisaka/jellyfin镜像

N大版jellyfin是一个开箱即用的 Docker 镜像,包含最新的驱动、jellyfin-ffmpeg、补丁、CJK 系统字体等。升级了QSV硬件解码和基于OpenCL的色调映射,在转码效率上有所有提升。
由于一些众所周知的网络问题,下载这个镜像还是有点不容易。我没有科学办法,硬拉,试了好几天终于给拉下来了。据说把国内镜像加速关掉后,使用latest可以拉取到最新的镜像,这个我没试过。
注意:拉取镜像必须指定tag,不能使用latest标签

sudo docker pull nyanmisaka/jellyfin:23091-amd64

在这里插入图片描述
nyanmisaka/jellyfin:23091-amd64对应的Jellyfin版本是10.8.10
在这里插入图片描述
进入到容器,可以看到ffmpeg版本是6.0,这个版本是当前最新的稳定版。之前221029-amd64镜像中的ffmpeg版本是5.1.2。
在这里插入图片描述

开启低电压模式

低电压模式需要操作系统加载GuC/HuC两个固件,GuC与核显负载的调度有关,HuC可以将有些工作让GPU来完成,减少CPU与GPU的同步。以上为Intel官方的解释。个人认为开启低电压模式(Low Power Mode,LP Mode)与CPU硬件和Linux内核版本是有关系的,太旧的内核版本可能存在问题。

Jellyfin官方对低电压模式有一段说明:

The setup is not necessary unless you are using an Intel Jasper Lake or Elkhart Lake processor, or you want faster OpenCL tone-mapping speed on Linux. This also applies to the bleeding edge hardware such as 12th Gen Intel processors, ARC GPU and newer but step 2 should be skipped.

官方指出,本项设置不是必须的。也提到开启低电压模式后,对色调映射(tone mapping)的效率有一定的提升。另外,如果CPU是N5105,也需要配置低电压模式,否则Jellyfin的硬件加速将无法正常使用。
个人认为如果CPU性能比较够用了,不需要再配置低电压模式,因为配置是否顺利与操作系统、Linux内核、CPU有一定关系,最新版Nyanmisaka的特供版Jellyfin在不开启低电压模式下已经基本够用了。但是,我的J4105实在有点弱,指望通过开启低电压来提升硬件转码效率。
以下操作参照Jellyfin官方的指引:

1.安装固件

#安装固件
sudo apt update && sudo apt install -y linux-firmware

在这里插入图片描述

2.将GuC的设置写入配置文件i915.conf

# enable_guc=2
sudo sh -c "echo 'options i915 enable_guc=2' >> /etc/modprobe.d/i915.conf"

3.更新initramfs和grub

sudo update-initramfs -u
sudo update-grub

在这里插入图片描述
在这里插入图片描述
4.重启,验证

reboot
# GuC status
sudo cat /sys/kernel/debug/dri/0/i915_guc_load_status
# HuC status
sudo cat /sys/kernel/debug/dri/0/i915_huc_load_status

看到输出的status都是RUNNING,说明开启成功。
在这里插入图片描述
在这里插入图片描述

Jellyfin配置

开启QSV和低电压模式解码

在Jellyfin的控制台->播放页面下,硬件加速选择“Intel QuickSync(QSV)”,勾选“启用低电压模式”的两个选项。
在这里插入图片描述

开启色调映射(基于OpenCL)

开启色调映射,将HDR转换为SDR。色调映射会占用一部分核显性能,因此开启后转码效率会降低。开启色调映射,在不支持HDR的显示器播放HDR视频不会出现画面发灰的情况。
Jellyfin中选择“启用色调映射”,我选择了Mobius算法,参数默认。因为效率问题,不推荐使用VPP色调映射,所以上面“启用VPP色调映射”不要勾选。
在这里插入图片描述

实测

验证低电压模式

Jellyfin播放4K H265视频,使用intel_gpu_top命令查看核显工作情况(如果命令不存在,那么安装sudo apt install intel-gpu-tools)。当未开启低电压模式时,Render负载一直在90%以上;开启低电压模式后,Render负载下来了,大概维持在60~70%。
在这里插入图片描述

在这里插入图片描述

转码帧率实测

测试视频概况

在四个视频上测试nyanmisaka/jellyfin:230901的转码效率,与nyanmisaka/jellyfin:221029进行对比,并且记录开启低电压模式(LP Mode)前后转码帧率,验证低电压模式对转码效率的提升。
前三个测试视频格式如下,都是4K/HDR/H265,码率一般,第四个是高码较高。这四个视频对于我这个硬件平台来说还是有点困难的。
在这里插入图片描述
在这里插入图片描述

221029版本 vs 230901版本

相比去年的221029版本,目前最新的230901版本在其中三个视频上转码效率上有所提高。以《FAST10》为例,在开启色调映射的情况下,从25fps提高到了37fps。对于高码率的,两个版本的转码帧率持平。
在这里插入图片描述
在这里插入图片描述

开启色调映射的影响

实测开启色调映射(Mobius),对转码帧率有比较大影响。以《PI》为例,直接从36fps降到了25fps。所以色调映射还是比较消耗核显性能,至少对于这块J4105来说是这样。
在这里插入图片描述

开启低电压模式

所有四个视频,在开启低电压模式(加载GuC/HuC)后,转码效率都有提升情况。以《FAST》为例开启后,转码帧率确实有提升,开启低电压模式,CPU负载也有所降低,开启时为40-50%,未开启时为50%-55%。

在这里插入图片描述
对于高码率的视频《Transformers》,在不开启LP mode情况下,转码帧率<视频帧率,开启LP mode的情况下,勉强可以流畅播放。
在这里插入图片描述
以下为实验数据汇总:记录了开启色调映射情况下,221029、230901两个版本nyanmisaka/jellyfin的转码帧率实测数据,后两列还对比了未开启低电压模式与开启情况下的转码帧率。总体来说,这个硬件播放4K/HDR还是比较吃力的,转码帧率都比较低。
(为保证数据相对准确,对每个视频的相同时间点进行记录,且保证播放一段时间转码帧率已趋于稳定)
在这里插入图片描述

总结

在本文使用的软硬件环境下:

  1. 开启核显的低电压模式(加载GuC/HuC),对转码效率有所提高;
  2. 在使用最新版本nyanmisaka/jellyfin镜像以后,J4105硬件平台对于一般码率(30Mbps以下)4K/HDR视频基本上能实现流畅硬件转码,包括色调映射(虽然转码帧率不高);对于高码率4K/HDR视频,需要开启低电压模式,否则无法流畅播放。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1163953.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI智能分析网关高空抛物算法如何实时检测高楼外立面剥落?

高楼外立面剥落是一种十分危险的行为&#xff0c;会造成严重的人身伤害和财产损失。TSINGSEE青犀智能分析网关利用高楼外立面剥落的信息&#xff0c;结合高空抛物算法来进行处理就可很好解决此问题。 1. 数据收集 首先&#xff0c;需要收集关于高楼外立面剥落的数据。这可以通…

Restful风格与Wesocket之间的关联

RESTful 风格和 WebSocket 本质上是两种不同的通信机制&#xff0c;它们在设计理念和用途上有明显的区别。 RESTful 是一种基于 HTTP 协议的架构风格&#xff0c;它使用标准的 HTTP 方法&#xff08;如 GET、POST、PUT、DELETE 等&#xff09;来进行资源的操作&#xff0c;并倾…

计算机毕业设计选题推荐-招聘信息推荐系统-Python项目实战

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

浅谈煤矿井下6kV动力电缆绝缘线监测系统的设计与应用

贾丽丽 安科瑞电气股份有限公司上海嘉定 201801 摘要&#xff1a;针对供电系统绝缘问题检测技术限制煤炭产量效率的问题&#xff0c;以某煤炭企业6kV井下供电系统为研究对象&#xff0c;开展了在线监测系统设计与应用工作。结果表明&#xff0c;系统工作稳定&#xff0c;满足井…

为什么开设项目管理专栏

首先&#xff0c;向各位同道同行&#xff0c;分享一个来自博主的好消息&#xff1a; 2023年8月&#xff0c;经过一次为期3个月的紧张、有序、活泼、生动的学习之旅&#xff0c;博主顺利通过了PMP认证&#xff0c;并且拿下3A。 其次&#xff0c;为记录本次学习过程的点滴和心得…

【云栖大会】我与“云栖”共成长

目录 一&#xff1a;何为云栖 二&#xff1a;初识云栖 三&#xff1a;被云栖圈粉 四&#xff1a;感受与体会 五&#xff1a;期待与建议 一&#xff1a;何为云栖 我们都说“万物皆可云”&#xff0c;这充分说明了云计算的重要性&#xff0c;而阿里云是云计算行业的领头羊之一…

计算机由于找不到msvcr120.dll无法执行代码的解决方法分享(亲测有效)

在使用软件过程中&#xff0c;我们可能会遇到一些错误提示&#xff0c;其中之一就是“找不到msvcr120.dll无法继续执行代码”。这个问题通常是由于缺少Microsoft Visual C Redistributable Packages for Visual Studio 2013&#xff08;简称MSVCRT&#xff09;导致的。MSVCRT是…

5.1 创建和销毁线程

方法 pthread_create(thread, attr, start_routine, arg)pthread_exit(status)pthread_cancel(thread)pthread_attr_init(attr)pthread_attr_destroy(attr) 创建线程 最开始main()程序只有一个默认的线程&#xff0c;其他的线程需要由编程人员显式创建。pthread_create()可以…

【算能】stream在docker的环境下编译报错

错误问题一&#xff1a; /workspace/sophon-stream/element/multimedia/encode/../../../3rdparty/websocketpp/websocketpp/common/asio.hpp:56:14: fatal error: boost/version.hpp: No such file or directory 56 | #include <boost/version.hpp> 解决方法&a…

三门问题 最通俗解释+拓展

三门问题是概率论比较经典的一个问题&#xff0c;答案有点反直觉&#xff0c;所以值得学习&#xff0c;理性第一&#xff01;但是&#xff0c;很多网上解释都让人云里雾里&#xff0c;或者干脆解释就是错了&#xff0c;或一上来就贝叶斯公式开始搞数学&#xff0c;其实很简单可…

uniapp循环列表单选框实现单选

目录 图片源码参考最后 图片 源码 参考 大佬 最后 感觉文章好的话记得点个心心和关注和收藏&#xff0c;有错的地方麻烦指正一下&#xff0c;如果需要转载,请标明出处&#xff0c;多谢&#xff01;&#xff01;&#xff01;

PP-MobileSeg: 探索移动设备上又快又准的语义分割模型

论文&#xff1a;https://arxiv.org/abs/2304.05152 代码&#xff1a;https://github.com/open-mmlab/mmsegmentation/tree/main/projects/pp_mobileseg 0、摘要 transformer在CV领域的成功之后&#xff0c;出现了很多在移动设备上使用它们的尝试性工作&#xff0c;但是这些工作…

AI绘画 | stable-diffusion-web-ui的基本操作

前言 我们下载安装完成stable-diffusion-web-ui以后&#xff0c;下载对应风格的模型&#xff0c;就可以开始我们的绘画操作了。进行Ai绘画操作前&#xff0c;我们最好先弄清楚web ui界面上的参数按钮的含义。这样我们就能更轻松的绘画出我们想要stable-diffusion-web-ui创作出…

【蓝桥杯选拔赛真题08】C++最大值最小值平均值 青少年组蓝桥杯C++选拔赛真题 STEMA比赛真题解析

目录 C/C++最大值最小值平均值 一、题目要求 1、编程实现 2、输入输出 二、算法分析</

7个UI设计必备课程,小白必看!

无论你是想提高技能的资深UI设计师还是网站开发人员&#xff0c;又或者是刚转行不久的UI设计新手&#xff0c;学习UI设计课程都会让你做出更美观、更有影响力的UI界面设计作品。现在网上有很多网上的UI设计课程。通过这些课程&#xff0c;你可以自己学习、掌握一些UI设计的基础…

内网渗透-域防火墙+入站出站规则+组策略对象同步+不出网隧道上线

一.单机-防火墙-限制端口出入站-熟悉常见主机配置不出网的方式 配置防火墙属性 1.win10虚拟机本地搭建一个网站&#xff0c;配置防火墙属性的入站连接为默认值。 局域网中另一台主机能正常访问 2.入站连接设置为 阻止所有连接 。 因为是我们去访问他的网站&#xff0c;所以是入…

利用HTML和CSS3新特性实现太极图旋转

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>太极图</title><style>.box{box-sizing: border-box;width: 400px;height: 400px;margin: 50px auto;border: 1px solid black;position: …

EtherNET/IP转Mpdbus Tcp协议网关协议

JM-EIP-TCP 是一款 ETHERNET/IP 从站功能的通讯网关。该产品主要功能是将各种 MODBUS-TCP 设备接入到 ETHERNET/IP 网络中。 本网关连接到 ETHERNET/IP 总线中做为从站使用&#xff0c;连接到 MODBUS-TCP 总线中做为主站&#xff08;客户端&#xff09;或从站&#xff08;服务…

Poshmark 如何刺激流量?如何快速出单?

PoshMark可是美国市场上最大的二手交易平台&#xff0c;基本上啥都有&#xff0c;电商界的“菜市场”啊&#xff01;而且还有社交功能&#xff0c;好玩儿又实用&#xff0c;你可以和好友分享喜欢的商品&#xff0c;还能知道你的好友在买啥&#xff01;可是新手卖家会觉得怎么才…

概念解析 | 微波光子雷达:打通雷达性能增强的“光通道“

微波光子雷达:打通雷达性能增强的"光通道" 注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:微波光子雷达。 一、背景介绍 雷达是现代战争中极为重要的军事装备,被誉为各兵种的“眼睛”。它可以在全天候条件下发现和…