全国产化GB28181播放器(国产芯片、操作系统、摄像头等)

简介: MetaX 国产播放器 ,支持国产操作系统(麒麟、统信等)、国产芯片、国产CPU等

   随着国际竞争加剧,国产化自主可控将变成产品必备属性。G端客户和重点B端客户加速国产化采购升级,将带来新一轮国产化竞争格局的市场机会。今天介绍下我们自研的国产化播放器,期待合作。MetaX 国产播放器 支持国产操作系统(麒麟、统信等)、国产芯片、国产CPU等


      通过GB28281、SIP等协议接入100+品牌的国产及非国产视频监控设备,包括华为、海康、大华、宇视科技等品牌的摄像头,以及道闸,门禁等周边产品,打破传统的配置方法,自研拖拽式配置工具:配置摄像头、NVR、SIP 国标服务,流媒体服务 MediaServer,存储服务器、推理服务器等,支持图像渲染和增强,AI视图分析,操作简单易用,且通过GB35114和国密算法加密。



1 视频播放


1.1 实时

指定窗口播放视频

在窗口布局中选择需要播放的窗口[1,4,9宫格皆可],左键单击,窗口边缘增加高亮颜色,单机浏览器中指定得GB28181已经注册上sip服务的视频,经过邀请播放后,则在窗口中开始播放改指定视频,其间根据设备得不同,相应的延时事件不同,如碰到设备无法被邀请,则在播放器中展示相应无法播放的错误信息。云台控制在窗口布局中选择需要转动云台GB28181已经注册上sip服务器视频设备,点击后弹出窗口云台信息,如果该设备有云台,则可以根据给定指令指挥[上下左右]转动云台。

历史视频

历史视频分为两种,一为摄像头历史视频,本身摄像头带存储卡,二为nvr硬盘录像。呼出流程为:

1 在窗口布局中指定某一个窗格

2 在已注册列表设备或者通道中指定某一路视频

3 指定开始事件和结束事件

4 点击播放

在设备无错误情况下,播放窗格开始播放该历史时间段视频。

1.2 视频录像

视频录像为播放实时流和历史流的过程中,可以随时开启录像,录像内容为ES流,支持h264和h265,视频录像为启动辅助线程取流,不在窗格中展示,不解码,直接存储ES裸流。

任务创建 删除 启动 停止 打开存放路径

任务创建:启动线程准备开始拉取流,开始创建文件,准备存储到磁盘中。任务的创建相当于线程的启动创建。

删除:停止并且删除该拉取任务,同时停止线程,消除所有线程占用资源,本身并不删除已经存储的文件。

启动:线程开始工作,读取流,解析,脱壳,将ES裸流存储到磁盘,每个文件都会包含相应的解码关键信息,以保证将来可以解码。

打开存放路径: 打开存放路径将会使用操作系统功能自有功能,从而打开资源管理器,到达配置的存储路径,同时显示和定位存储到磁盘中的文件。

1.3 编解码

视频容器中的压缩编码一般为h264,h265,播放器必须将码流解码为RGB或者YUV才能正确显示到窗格中,播放的过程中进行像素的窗口计算,使用放大或者缩小算法渲染。解码使用ffmpeg进行软硬件解码:

  1. 进行解码context的组装,分为h264或者h265
  2. 将接收的包组装成为packet(压缩包)
  3. 送packet到ffmpeg队列中,由ffmpeg判断是否可以解码
  4. 可以解码时,获取frame,该frame为yuv包,包含了yuv和高度宽度等
  5. 送入渲染队列

2 窗口布局

1 4 9宫格布局 窗口布局使用单窗口,4窗口,9宫格窗口进行界面展示。多窗口是为了满足监控视频路数较多的情况,顺序点击视频通道时,该视频将会在相应已经选择的窗口中显示。

设置布局

在工具挑中有单窗口,4窗口,9宫格窗口的三个按钮,一键可直接切换,无论在播放还是静止状态,都可以直接切换,在播放多路的过程中,由多路切换为更少路数播放时,已经播放的其他窗口被隐藏,切换回更多路(1->4 4->9 1->9)时隐藏取消。

3 辅助功能

3.1 单窗体/全部窗体 抓拍

对正在播放实时流或者历史流的某个窗体或者所有窗体进行图像的抓拍,同时存储到指定配置的磁盘目录中,文件根据时间命名,图像的存储压缩格式为通用jpg。

3.2 单窗体/全部窗体 录像

对正在播放实时流或者历史流的某个窗体或者所有窗体进行录像,同时存储到指定配置的磁盘目录中,文件根据时间命名,本身录像没有加容器壳为ES流。

3.3窗口最大化

将某一个窗口进行放大,放大到整体窗口中,作用域4和9宫格中的某一路流,指定某一路正在播放的流,单击放大按钮,该宫格窗口分辨高宽将会铺满播放区域,且为最上层窗口,其他窗口被掩盖到该窗口以下。

3.4 窗口关闭

点击关闭流按钮,关闭窗口中的实时流或者历史流播放,同时释放两个线程,释放队列已经存储的队列包。

3.5 全屏

将播放区域全屏化,使用窗口脱离原定父级窗口,使得播放区域窗体的父级窗体为桌面窗体,在多显示器的情况下,同时判定是属于多显示桌面中的一个显示编号,全屏到该显示器编号下的桌面区域中。

3.6 设备名称展示

设备名称为所有设备展示和设备通道展示,设备必须注册到sip服务中,由sip服务通知浏览器,浏览器获取内容后展示设备或者通道的名称,如果已经定义设备名称,则显示设备的名称,如果无,则显示通道号码。

3.7 启动/停止录像

工具栏中点击启动或者停止,可以启动或者停止该路流的录像功能,开始时启动线程,停止时释放线程。

3.8 一键实时转历史 历史转实时

工具栏中可以在播放实时流的情况下,点击回放,则停止实时流,开始显示回放子窗体,选择回放开始和结束时间,可以播放历史视频,在历史视频中,点击实时,则切换回实时播放。

技术方法和路线:

播放器嵌入:

整个播放器为客户端程序,嵌入到浏览器中,使用父级窗口变化的技术将播放器的父级窗口改变成浏览器,同时在浏览器变化的过程中,和播放器进行通信,从而使得播放器掌握浏览器的内部容器大小,从而适应和改变播放器的大小。

软解码:解码过程为双线程:线程A为读取流线程 线程B为解码线程,线程通信通过队列进行,同时为了保证安全,使用互斥锁锁定队列资源,保证AB线程不会同时增加和删除队列内容,以下为过程:

1 读取流,同时解析,脱去容器壳

2 分析为h264或者h265

3 将ES 流存储到队列中

4 根据码流信息,使用不同的(264解码环境,265解码环境)使用cpu指令解码,265解码会消耗较多的cpu时间。

硬解码:使用qsv(intel)和cuda(nvidia)指令解码,硬解码过程使用GPU多核心计算算力,释放cpu,过程中会有cpu和gpu之间的数据拷贝,会带来一定的cpu消耗,总体来说,比单独使用cpu要更加高效,同时,硬解在多路播放的过程中的效率会提升。

问题:硬件解码带来GPU能耗增加,过多的路数会使得GPU发热急剧增加,可以综合使用软解和硬件解码。

纹理贴图: 纹理(Texturing)是一种针对物体表面属性进行“建模”的高效技术。图像纹理中的像素通常被称为纹素(Texels),区别于屏幕上的像素。通过将投影方程(projector function)运用于空间中的点 ,从而得到一组称为参数空间值(parameter-spacevalues)的关于纹理的数值,再使用一个或者多个映射函数(corresponder function)将参数空间值(parameter-space values )转换到纹理空间。这个过程就为贴图(Mapping,也称映射 ),也就是纹理贴图(Texture Mapping,也称纹理映射 )。

投影函数: 投影函数(projector function)的功能就是将空间中的三维点转化为纹理坐标,也就是获取表面的位置并将其投影到参数空间中。过程是经投影结果的像素存储在模型顶点数据中。

各种常见投影的不同要点:

球形投影(The spherical projection)。球形投影将点投射到一个中心位于某个点的虚拟球体上。

圆柱投影(Cylindrical projection)。与球体投影一样,圆柱投影计算的是纹理坐标u,而计算得到的另一个纹理坐标v是沿该圆柱轴线的距离。这种投影方法对具有自然轴的物体比较适用,比如旋转表面,如果表面与圆柱体轴线接近垂直时,就会出现变形。

平面投影(The planar projection)。平面投影非常类似于x-射线幻灯片投影,它沿着一个方向进行投影,并将纹理应用到物体的所有表面上。这种方法通常使用正交投影。播放器使用正交平面投影。

渲染方法:使用d3d和opengl 技术进行渲染。放大和缩小使用相应的均值算法和线性插值算法。将h264或者h265图像转化成为RGB后,由显卡作为d3d或者opengl的纹理进行线性插值,显示到窗口中。


相关文章
|
4月前
|
Linux 芯片 Docker
【国产适配】国产龙芯操作系统上安装minio
【国产适配】国产龙芯操作系统上安装minio
113 0
|
6月前
|
人工智能 供应链 Linux
《国产服务器操作系统发展报告(2023)》重磅发布
根据近期信通院面向用户群体的调研显示,国产服务器操作系统逐渐成为各行业替换首选,其中,龙蜥操作系统位列用户意愿迁移系统的首位。
|
22天前
|
Java 关系型数据库 MySQL
国产麒麟操作系统 myCat1.6读写分离
国产麒麟操作系统 myCat1.6读写分离
18 0
|
2月前
|
人工智能 安全 Linux
|
3月前
|
人工智能 安全 Linux
国产服务器操作系统如何加快发展,迎接人工智能带来的新机遇?
近些年来人工智能的飞速发展正在为服务器操作系统产业带来新的机遇,尤其是云智融合的浪潮正在推动着服务器操作系统产业的发展。而国产操作系统需要与时俱进、面向未来,提供支撑人工智能基础设施的底层能力。那么本文就来探讨一下关于国产服务器操作系统的发展方向,云智融合,以及英特尔与龙蜥的合作如何促进国产操作系统的发展,并介绍阿里云的操作系统产品Alibaba Cloud Linux相关内容。
90 1
国产服务器操作系统如何加快发展,迎接人工智能带来的新机遇?
|
4月前
|
Linux 编译器 Go
创新奋进,共筑国产基础软硬件的美好未来 | 2023 龙蜥操作系统大会
从初心使命、贡献模式、建设成果、未来展望等四个方向分享龙芯中科在社区实践和思考。
创新奋进,共筑国产基础软硬件的美好未来 | 2023 龙蜥操作系统大会
|
4月前
|
人工智能 Linux 云计算
【专访阿里云】云智融合转型期,国产服务器操作系统路在何方?
在云智融合转型趋势引领服务器操作系统迭代升级的时期,国产服务器操作系统社区该如何应对?
|
7月前
|
人工智能 安全 Linux
从龙蜥Anolis OS看国产操作系统的未来
作为我国的自主研发操作系统之一,龙蜥操作系统在技术创新和生态建设方面取得了一定的成绩。该操作系统以Linux为内核,结合国产化软硬件技术,具备了高度的自主可控性和安全性,在国家信息安全和国防安全方面具有重要意义。本文结合龙蜥操作系统的一些背景和亮点,引出对国产操作系统现状的深思,号召通过加强技术创新和生态建设、促进行业间的合作与交流、建立更加规范化的管理体系等方面,推动国产操作系统健康有序发展。只有这样,我们才能建立一个技术领先、安全可控、生态完善的国产操作系统生态,真正让国产操作系统成为一张具有丰富内涵和价值的名片。
从龙蜥Anolis OS看国产操作系统的未来
|
9月前
|
人工智能 Linux Go
|
9月前
|
Linux 数据安全/隐私保护 Android开发
Deepin操作系统丨一台10年前的家用联想台式机重装国产Linux系统,制作成生信服务器(下)
Deepin操作系统丨一台10年前的家用联想台式机重装国产Linux系统,制作成生信服务器(下)

热门文章

最新文章