瑞芯微rk3568移植openbmc(三)

news2024/11/29 12:49:34

2022.11.04 更新

1、关于h264 novnc

   openbmc中使用的ipkvm其server端调用的是libvncserver库,而其web client端调用的则是novnc的库,既上篇研究修改了libvncserver后,再次继续研究了一下novnc。

        Github搜索一圈以后,发现https://github.com/martin19/noVNC 此项目基于树莓派开发板,作者fork了原始novnc工程,添加修改的H264的novnc解码器,于是笔者fork了该作者的工程,基于该工程之上适配了rk3568的H264相关工作,修改了该工程的H264协议定义,按此open H264制定的协议规范对libvncserver和novnc两端进行了调整:https://github.com/rfbproto/rfbproto/blob/master/rfbproto.rst#open-h-264-encoding 

先是在novnc的环境中把h264解码调试ok

 再将novnc打包成库,集成到了openbmc当中:

     1080P分辨率下对比了一下H264编码占用的带宽(上图),以及JPEG Tight编码占用的带宽(下图),确实在清晰度差不多的情况下,H264编码带宽仅有JPEG Tight的1/4左右如果是静止不动的桌面,H264几乎没有什么流量B帧传输期间,流量在几十KbpsI帧时2Mbps左右,而JPEG Tight编码即便在桌面静止不动的情况下占用带宽依然为20Mbps左右。

         尽管把H264添加到了novnc中,实际测试确实省流量带宽,但仍然存在不少问题:

        如直接使用TigerVNC连接BMC VNC服务器时,帧率最高可以接近50帧,平均帧率在45左右,且此帧率下带宽占用也仅有10Mbps,但使用novnc后,因novnc需要将bmc上的VNC TCP port 5900转为websocket与novnc web的客户端通信,中间多了一层数据转发,使得novnc帧率直线下降,实际测试中novnc下无论是H264编码还是JPEG的Tight编码,帧率仅在15~25之间浮动,H264编码的性能直接被拉低到与JPEG Tight编码相差无几。

       相信novnc和websocket方面优化一下,性能上H264肯定还能再提升一点点,但是这个优化起来难度就相对高了。novnc的研究就先到这里吧,后续有时间再来考虑相关优化。

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

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

相关文章

Java设计模式之单例模式详细讲解

设计模式与单例模式 1、什么是单例模式 ​ 单例模式是指保证某个类在整个软件系统中只有一个对象实例,并且该类仅提供一个返回其对象实例的方法(通常为静态方法) 2、单例模式的种类 ​ 经典的单例模式实现方式一般有五种 2.1 饿汉式 //…

【SpringBoot】SpringBoot整合SpringSecurity+thymeleaf实现认证授权(配置对象版)

一.概述 1.框架概述 Spring Security 是 Spring 家族中的一个安全管理框架,Spring Security 的两大核心功能就是认证(authentication)和授权(authorization)。 认证 :你是什么人。授权 :你能…

RHCE学习 --- 第一次作业

RHCE学习 — 第一次作业 首先我们先设置网卡开机自动启动 vi /etc/sysconfig/network-scripts/ifcfg-ens160 最下面修改ONBOOTyes 然后安装好chrony,配置/etc/chrony.conf文件,添加题目要求的时间服务器 然后设置一个例行性工作,每天早上九…

美国FBA海运专线究竟是什么?美国fba海运专线都有那些?

美国FBA海运专线究竟是什么?美国FBA特别航运线,顾名思义就是海运发送的特别货运线,那么它的收费标准是什么呢?一、美国FBA海运专线究竟是什么 美国FBA特别航运线,顾名思义就是海运发送的特别货运线,那么它的收费标准是什么呢? …

猿创征文|『编程与创作』10款颜值颇高的宝藏工具

🌟个人主页:Mymel_晗,一名喜欢鼓捣 Java 的在校学生。 🌟撸代码本来是一件枯燥的事情,而一款高颜值工具加持可能会让你事半功倍,今天就给大家推荐一下我在大学学习中发现的几款颜值工具~ 从写代码&#xff…

录音m4a怎么转换成mp3

有小伙伴问手机录音文件电脑上播放不了怎么办?这是很多小伙伴在用手机录完音后遇到最多的问题,尤其是那些第一次遇到这个问题的人,根本不知道这是什么原因导致的,还总以为自己的录音文件出了问题,回去检查发现手机上还…

03-Nginx性能调优与零拷贝

目录 Nginx 性能调优 零拷贝(Zero Copy) 零拷贝基础 A、 实现细节 B、 总结 零拷贝方式 A、 实现细节 B、 总结 A、 实现细节 B、 总结 A、 实现细节 B、 总结 Nginx 性能调优 在 Nginx 性能调优中,有两个非常重要的理论点(面试点…

【C++红黑树】带图详细解答红黑树的插入,测试自己的红黑树是否正确的代码

目录 1.红黑树的概念 1.1红黑树的特性(41) 2.红黑树的框架 3.红黑树的插入 3.1parent在grandfather的左边 3.1parent在grandfather的右边 4.测试自己的红黑树是不是平衡的 1.红黑树的概念 红黑树,是一种二叉搜索树,但在每个…

米联客FDMA3.1数据缓存方案全网最细讲解,自创升级版,送3套视频和音频缓存工程源码

米联客的FDMA数据缓存方案发布也有五六年了,但真正能熟练使用的兄弟却很少,其实还是没有好的例程作为参考和同熟易懂的讲解,这里我做如下解析: FDMA部分:这部分是米联客封装了用户接口的AXI4-FULL协议代码,…

xhs-web校验流程分析

经测试,cookie中需携带gid和timestamp2。参数整理有点乱,仅供参考。 xhsFingerprintV3,VERSION: ‘2.1.2’ 文章目录流程概述timestamp2滑块验证参数Params轨迹FNcaptcha deviceIdProfileDatax-s-commonx5生成x8生成x9生成smidV2a1x-b3-trac…

Jenkins配置linux节点

之前在Windows下安装Jenkins 但是通过windows节点进行构建有诸多的不便,于是想到通过Jenkins里添加linux节点,让构建的时候,使用远程的linux服务器构建 目录一、配置凭据二、配置节点一、配置凭据 Manage Jenkins → Manage Credentials→Je…

Cadence Allegro PCB设计88问解析(十三) 之 Allegro中artwork层的建立

一个学习信号完整性的layout工程师 作为layout工程师,我们经常接触到的是PCB文件,用Cadence设计的是.brd文件。但是我们发给板厂的都是gerber文件。这就涉及到在我们设计好PCB文件之后,怎么把这些文件给到板厂。也就是我们Allegro中的artwork…

Java知识点--IO流(上)

Java知识点--IO流(上)一、文件1、文件的含义2、文件流二、常用的文件操作1、创建文件对象相关构造器和方法2、创建文件案例演示(三种创建方法)3、获取文件相关信息的方法4、获取文件相关信息方法案例演示5、目录的操作与删除6、应…

电脑系统重装下载的系统在哪找到

​因为现在很多人都在使用小白一键重装系统,但是很多人都不太能够了解小白系统重装下载的系统在哪儿,下面是小编提供的具体位置供大家参考。 工具/原料: 系统版本:win10 品牌型号:联想yoga13 软件版本:小白…

期货开户有什么规定

有很多朋友刚刚接触到资本市场,当他们听到期货时,他们觉得它非常遥远和高端,这是普通人无法接触到的。但事实上,情况并非如此。期货是一种非常普通的金融产品,很容易接触。让我们来看看期货开户有哪些必要条件以及有什…

postman环境变量的设置

背景:由于我们项目接口入参都有加密,每次接口调试都得启动项目,运行项目才能把对应的参数给传到后台,然后后台再解密参数,才能进行接口调试,很麻烦(启动前端项目),如果接…

Linux篇【3】:Linux环境基础开发工具使用(中)

目录 一、Linux 编译器:gcc/g 的使用 1.1、知识拓展: 1.2、如何安装 C/C 标准静态库: 1.3、头文件与库文件: 1.4、静态库,静态链接,动态库,动态链接: 二、简单 vim 配置 2.1、…

【SpringBoot】一文了解SpringBoot热部署

文章目录前言手动启动热部署热部署种类手动进行热部署自动启动热部署热部署范围配置热部署的关闭总结🌕博客x主页:己不由心王道长🌕! 🌎文章说明:一文彻底搞懂SpringBoot热部署🌎 ✅系列专栏:Sp…

深入理解Java虚拟机:Java类的加载机制

本篇内容包括:Java 类的加载机制(Jvm 结构组成、Java 类的加载)、类的生命周期(加载-验证-准备-解析-初始化-使用-卸载)、类加载器 以及 双亲委派模型。 一、Java 类的加载机制 1、 Jvm 结构组成 Jvm 整体组成可分为…

坤坤音效键盘(Python实现)

文章目录坤坤音效键盘说明坤坤音效键盘效果展示代码实现安装第三方库准备音频监听键盘播放音频编写逻辑引入线程打包成exe程序坤坤音效键盘说明 坤坤音效键盘说明: 单独按下 j、n、t、mj、n、t、mj、n、t、m 按键,会对应触发 “鸡”、“你”、“太”、…