一种Linux操作系统上系统级进程间视频共享方法技术方案

技术编号:33746174 阅读:22 留言:0更新日期:2022-06-08 21:45
本发明专利技术涉及视频传输技术领域,具体涉及一种Linux操作系统上系统级进程间视频共享方法,包括如下步骤:S1、创建内存虚拟文件;S2、后端进程采集视频数据;S3、将所述视频数据的每一帧图像写入所述内存虚拟文件;S4、写入完成后,所述后端进程向前端进程发送图像写入完成信号;S5、所述前端进程接收所述图像写入完成信号,从所述内存虚拟文件中读取所述视频数据的每一帧图像进行绘制。该方法基于Linux操作系统提供一种系统级进程间视频消息的传递方式。式。式。

【技术实现步骤摘要】
一种Linux操作系统上系统级进程间视频共享方法


[0001]本专利技术涉及视频传输
,具体涉及一种Linux操作系统上系统级进程间视频共享方法、电子设备和可读存储介质。

技术介绍

[0002]随着人脸识别技术的日益普及,越来越多的操作系统选择将人脸识别作为解锁登录设备的一种方式。但人脸识别登录技术在应用于操作系统级别时,往往采用的是前后端进程分离的设计架构,即后端进程进程负责对人脸数据的采集及验证,前端进程进程负责相应的UI界面绘制;此时便涉及到操作系统领域的一个问题:进程间通信的问题,需要把后端进程进程进行采集和验证时的相关状态信息同步给前端进程UI进程。
[0003]根据调研,目前市场上比较常用的操作系统如Windows、安卓、IOS在进行人脸识别登录时的处理都仅采用了动态图来代表人脸识别过程的状态和结果,均未对人脸识别的画面进行实时展示。但在一些应用场景中,用户由于人脸采集设备(摄像头)位置的不确定性,需要在人脸识别展示实时画面通过确定人脸的位置以提高识别的精度和准度,因此操作系统级别进程间视频数据的传输显得愈发重要。

技术实现思路

[0004]解决的技术问题针对现有技术所存在的上述缺点,本专利技术提供了一种Linux操作系统上系统级进程间视频共享方法,该方法基于Linux操作系统提供一种系统级进程间视频消息的传递方式。
[0005]技术方案为实现以上目的,本专利技术通过以下技术方案予以实现:本专利技术提供了一种Linux操作系统上系统级进程间视频共享方法,其特征在于,包括如下步骤:S1、创建内存虚拟文件;S2、后端进程采集视频数据;S3、将所述视频数据的每一帧图像写入所述内存虚拟文件;S4、写入完成后,所述后端进程向前端进程发送图像写入完成信号;S5、所述前端进程接收所述图像写入完成信号,从所述内存虚拟文件中读取所述视频数据的每一帧图像进行绘制。
[0006]进一步地,步骤S1还包括获取所述内存虚拟文件的文件描述符,步骤S3通过所述文件描述符的指向将所述视屏数据的每一帧图像写入所述内存虚拟文件。
[0007]进一步地,步骤S1具体包括:所述内存虚拟文件通过memfd_create创建,创建完成后的api返回值通过认证接口同步给所述前端进程,所述api返回值为所述文件描述符。
[0008]进一步地,所述后端进程通过摄像头采集所述视频数据。
[0009]进一步地,利用opencv相关类,实例化所述摄像头,并循环读取所述摄像头的视频帧,得到所述视频数据。
[0010]进一步地,所述Linux操作系统上系统级进程间视频共享方法用于人脸识别。
[0011]进一步地,人脸识别完成后,所述后端进程停止获取所述视频数据,并且所述内存虚拟文件释放。
[0012]进一步地,所述前端进程和所述后端进程之间通过dbus通道传递信息。
[0013]基于同一专利技术构想,本专利技术提供了一种电子设备,包括处理器和存储器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时,实现上述任一项所述的方法。
[0014]基于同一专利技术构想,本专利技术提供了一种可读存储介质,所述可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现上述任一项所述的方法。
[0015]有益效果1)本专利技术基于Linux操作系统提供一种进程间视频消息的传递方式,可以解决在Linux系操作系统级别进行人脸识别认证时无法实时展示人脸采集画面的问题;2)本专利技术利用内存虚拟文件进行视频数据转存,由于是直接在内存中进行操作,避免了创建实际磁盘文件带来的IO开销;3)本专利技术在视频消息传递结束时,将创建的内存虚拟文件和文件描述符的释放,避免了内存垃圾的产生,进而避免了多次进行视频消息传递时对性能造成的影响。
附图说明
[0016]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0017]图1为本专利技术一实施例提供的Linux操作系统上系统级进程间视频共享方法步骤示意图;图2为本专利技术一实施例提供的Linux操作系统上系统级进程间视频共享方法流程框架图;图3为本专利技术一实施例提供的Linux操作系统上系统级进程间视频共享方法应用于人脸识别时的流程框架图。
具体实施方式
[0018]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0019]首先,对本专利技术用到的技术术语进行解释:进程:进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。进程间通信:进程的用户空间是互相独立的,一般而言是
不能互相访问的,不同进程之间传播或交换信息,叫做进程间通信。视频帧:构成视频信息的每一张图像。内存虚拟文件:这个文件就像是一个普通文件一样,所以能够被修改,截断,内存映射等等。不同于一般文件,此文件是保存在RAM中。dbus通道:Linux上一种进程间消息传递总线。Linux:在本文指基于Linux开发的桌面操作系统,如ubuntu,centos,统一操作系统(UOS),麒麟操作系统(KylinOS)等。
[0020]参阅图1,本专利技术一实施例提供了一种Linux操作系统上系统级进程间视频共享方法,其特征在于,包括如下步骤:S1、创建内存虚拟文件;S2、后端进程采集视频数据;S3、将所述视频数据的每一帧图像写入所述内存虚拟文件;S4、写入完成后,所述后端进程向前端进程发送图像写入完成信号;S5、所述前端进程接收所述图像写入完成信号,从所述内存虚拟文件中读取所述视频数据的每一帧图像进行绘制。
[0021]该方法可以基于Linux操作系统提供一种进程间视频消息的传递方式,且利用内存虚拟文件进行视频数据转存,由于是直接在内存中进行操作,避免了创建实际磁盘文件带来的IO开销。
[0022]具体实施的时候,参阅图2,在Linux系操作系统上,有两个进程,一个是由systemd服务拉起的进程A,即所述后端进程,负责采集所述视频数据,并进行相关权限认证处理动作;另一个进程为所述前端进程,负责进行相关界面的绘制,例如该进程可以是UI图像绘制进程。虽然后端进程在应用级别进程时,可单独绘制相关窗体,进行采集图像的绘制。但在操作系统上应用时,由于设计操作系统权限认证、登录等操作,往往被当作一个系统服务被拉起,特别是在Linux系操作系统上则可被认为是systemd进程。由于没有相关图形资源为其进行图像显示,所以必须将相关视频图像帧数据传递给所述前端进程进行绘制,即涉及到Li本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种Linux操作系统上系统级进程间视频共享方法,其特征在于,包括如下步骤:S1、创建内存虚拟文件;S2、后端进程采集视频数据;S3、将所述视频数据的每一帧图像写入所述内存虚拟文件;S4、写入完成后,所述后端进程向前端进程发送图像写入完成信号;S5、所述前端进程接收所述图像写入完成信号,从所述内存虚拟文件中读取所述视频数据的每一帧图像进行绘制。2.根据权利要求1所述的Linux操作系统上系统级进程间视频共享方法,其特征在于,步骤S1还包括获取所述内存虚拟文件的文件描述符,步骤S3通过所述文件描述符的指向将所述视频数据的每一帧图像写入所述内存虚拟文件。3.根据权利要求2所述的Linux操作系统上系统级进程间视频共享方法,其特征在于,步骤S1具体包括:所述内存虚拟文件通过memfd_create创建,创建完成后的api返回值通过认证接口同步给所述前端进程,所述api返回值为所述文件描述符。4.根据权利要求1所述的Linux操作系统上系统级进程间视频共享方法,其特征在于,所述后端进程通过摄像头采集所述视频数据...

【专利技术属性】
技术研发人员:刘旸刘云鹤蒋林轩史晶张超彭欢郭俊余张铎魏立峰程启
申请(专利权)人:麒麟软件有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1