公开/公告号CN113870470A
专利类型发明专利
公开/公告日2021-12-31
原文格式PDF
申请/专利权人 深圳柏成科技有限公司;
申请/专利号CN202111054091.3
发明设计人 林振南;
申请日2021-09-08
分类号G07C9/22(20200101);H04N7/14(20060101);H04N7/18(20060101);G06F3/038(20130101);
代理机构44814 深圳市江凌专利代理事务所(普通合伙);
代理人左涛
地址 518000 广东省深圳市罗湖区清水河街道清水河社区清水河一路112号深业进元大厦塔楼2座1705、1706
入库时间 2023-06-19 13:29:16
技术领域
本发明涉及门禁系统技术领域,特别涉及一种基于FFMPEG的门禁系统及处理方法。
背景技术
门禁系统是基于android主板写的APP软件。开门的原理是:客户刷卡或者二维码,APP收到卡号或者二维码后传送到云服务器进行逻辑处理,如果需要开门,那么APP就通过GPIO口写入中断信号实现开门。
现有的门禁设备一般都是跟随电线埋入墙壁中,而且无法外接显示屏。因此,系统一旦出问题,无法知道APP或者系统的运行情况。给运维人员带来了不少的烦恼。
传统的解决办法有:
1)凿墙拿出设备接上显示器进行调试:这种方法成本高,操作不便;
2)在设备写日志,然后上传到服务器,开发人员拿到日志后进行分析,这种方法效率低,因为日志不是实时上传的,且只能看到APP的日志。
因此,我们需要一种方案,既能远程看到设备的屏幕,又能远程操作设备。就好比在直机操作一样。
发明内容
本发明的主要目的是提出一种基于FFMPEG的门禁系统及处理方法,旨在解决现有门禁系统维护不便,成本高和效率低的技术问题。
为实现上述目的,本发明提出一种基于FFMPEG的门禁开门系统,包括设备端、服务端和播放器,所述设备端包括用来驱动鼠标的虚拟鼠标驱动器和用于录制屏幕桌面的录屏服务,所述服务端包括流媒体服务器和设备控制服务器,所述录屏服务连接流媒体服务器和播放器,所述虚拟鼠标驱动器连接设备控制服务器和播放器,所述播放器用于播放屏幕流。
优选地,所述录屏服务用于录制屏幕桌面并编码成h264格式,并向所述流媒体服务器进行推流,所述播放器从所述流媒体服务器拉流并进行播放。
优选地,所述播放器能捕获鼠标状态,并上报到设备控制服务器,所述设备控制服务器将鼠标状态下发到虚拟鼠标驱动器,由鼠标驱动进行执行相应的操作。
优选地,所述设备控制服务器用于接收转发鼠标事件,所述播放器为基于SDL2编写的流播放器,用于投屏和捕获鼠标事件。
优选地,所述设备端上需要植入虚拟鼠标驱动器,用来驱动鼠标,植入后,将在系统字符设备中添加一个鼠标字符设备,主设备号为INPUT_MAJOR。
优选地,所述播放器通过捕获鼠标事件,监听鼠标的拖或拉或按等操作,将鼠标事件产生的事件类型、坐标信息通过socket的方式即时上报到设备控制服务器,所述设备控制服务器将鼠标事件转发到设备上去,转交给虚拟鼠标驱动去实现鼠标的相关操作。
本发明还提出了一种基于FFMPEG的门禁处理方法,处理步骤为:
S1:获取当前屏幕数据,通过MediaProjectionManage申请录屏权限,用户允许后开始使用录屏服务录制屏幕;然后通过ImageReader.OnImageAvailableListener对视频数据进行处理;
S2:格式转换,由于获取到的屏幕数据是YUV_420_888格式,需要转换成YUV420P格式;
S3:推流,将YUV420P格式的数据转换成AVFrame格式的数据包,通过编码器编码成AVPacket帧数据,调用av_interleaved_write_frame将数据包推送到流媒体服务器;
S4:拉流和播放,通过FFMPEG从流媒体服务器中拉取一帧一帧的数据,并解封装为YUV420p格式的数据,通过SDL2库显示在流播放器上。
优选地,步骤S3在Native层实现,推流前先设置好编码器为H264编码器。
本发明技术方案的有益效果在于:
本发明的一种基于FFMPEG的门禁系统,主要包括设备端、服务端和播放器,其中,设备端包括虚拟鼠标驱动器和录屏服务,服务端包括流媒体服务器和设备控制服务器,流媒体服务器可以为RTMP服务器或SRS服务器,播放器主要用于播放屏幕流;服务端连接设备端和流播放器,在使用时,三者处于TCP的长连接状态。本发明的门禁系统在操作时,先将屏幕流推送到客户端,再利用播放器去播放屏幕流,就能远程检测门禁系统的运行问题,给维护人员带来了方便,减少了维护成本、提高了维护效率。
附图说明
图1为本发明一种基于FFMPEG的门禁开门系统一实施例的结构框图;
图2为本发明一种基于FFMPEG的门禁开门处理方法的步骤框图。
图中:1-设备端、11-虚拟鼠标驱动器、12-录屏服务、2-服务端、21-流媒体服务器、22-设备控制服务器、3-播放器。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的方案进行清楚完整的描述,显然,所描述的实施例仅是本发明中的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提出一种基于FFMPEG的门禁开门系统,参照图1,包括设备端1、服务端2和播放器3,设备端1包括用来驱动鼠标的虚拟鼠标驱动器11和用于录制屏幕桌面的录屏服务12,服务端2包括流媒体服务器21和设备控制服务器22,录屏服务12连接流媒体服务器21和播放器3,虚拟鼠标驱动器11连接设备控制服务器21和播放器3,播放器3用于播放屏幕流。
本发明的一种基于FFMPEG的门禁开门系统,主要包括设备端1、服务端2和播放器3,其中,设备端1包括虚拟鼠标驱动器11和录屏服务12,服务端2包括流媒体服务器21和设备控制服务器22,流媒体服务器21可以为RTMP服务器或SRS服务器,播放器3主要用于播放屏幕流;服务端2连接设备端1和流播放器3,在使用时,三者处于TCP的长连接状态。本发明的门禁系统在操作时,先将屏幕流推送到客户端,再利用播放器去播放屏幕流,就能远程检测门禁系统的运行问题,给维护人员带来了方便,减少了维护成本、提高了维护效率。
在一个较佳实施方式中,参照图1,录屏服务12用于录制屏幕桌面并编码成h264格式,并向流媒体服务器21进行推流,播放器3从流媒体服务器21拉流并进行播放。
在一个较佳实施方式中,参照图1,播放器3能捕获鼠标状态,并上报到设备控制服务器22,设备控制服务器22将鼠标状态下发到虚拟鼠标驱动器11,由鼠标驱动进行执行相应的操作。
在一个较佳实施方式中,参照图1,设备控制服务器22用于接收转发鼠标事件,播放器3为基于SDL2编写的流播放器,用于投屏和捕获鼠标事件。
在一个较佳实施方式中,参照图1,设备端1上需要植入虚拟鼠标驱动器11,用来驱动鼠标,植入后,将在系统字符设备中添加一个鼠标字符设备,主设备号为INPUT_MAJOR。
在一个较佳实施方式中,参照图1,播放器3通过捕获鼠标事件,监听鼠标的拖或拉或按等操作,将鼠标事件产生的事件类型、坐标信息通过socket的方式即时上报到设备控制服务器22,设备控制服务器22将鼠标事件转发到设备上去,转交给虚拟鼠标驱动去实现鼠标的相关操作。
本发明还提出了一种基于FFMPEG的门禁处理方法,参照图2,处理步骤为:
S1:获取当前屏幕数据,通过MediaProjectionManage申请录屏权限,用户允许后开始使用录屏服务12录制屏幕;然后通过ImageReader.OnImageAvailableListener对视频数据进行处理;
S2:格式转换,由于获取到的屏幕数据是YUV_420_888格式,需要转换成YUV420P格式;
S3:推流,将YUV420P格式的数据转换成AVFrame格式的数据包,通过编码器编码成AVPacket帧数据,同时设置pts、dts、duration参数,调用av_interleaved_write_frame将数据包推送到流媒体服务器;
S4:拉流和播放,通过FFMPEG从流媒体服务器中拉取一帧一帧的数据,并解封装为YUV420p格式的数据,通过SDL2库显示在播放器3的屏幕上。为了方便操作,播放器3的分辨率和设备端1上的分辨率保持一致。
更进一步地,步骤S3在Native层实现,推流前先设置好编码器为H264编码器。
本发明的一种基于FFMPEG的门禁处理方法,首先需要获取屏幕数据,具体获取方式为,Context.getSystemService(MEDIA_PROJECTION_SERVICE)获取一个MediaProjectionManager的实例,然后MediaProjectionManager.createScreenCaptureIntent()弹出dialog询问用户是否授权应用捕捉屏幕,在onActivityResult()获取授权结果,如果授权成功,通过MediaProjectionManager.getMediaProjection获取一个MediaProjection实例。通过MediaProjectionManager.getMediaProjection获取一个MediaProjection实例,通过MediaProjection.createVirtualDisplay(Stringname,intidth,intheight,intdpi,intflags,Surface,VirtualDisplay.Callbackcallback,Handlerhandler)来创建一个虚拟屏幕的实例,surface参数传入ImageReader.GetSurface()的实例,ImageReader需要注入OnImageAvailableListener接口,通过OnImageAvailableListener.onImageAvailable方法获取屏幕数据。
以上所述的仅为本发明的部分或优选实施例,无论是文字还是附图都不能因此限制本发明保护的范围,凡是在与本发明一个整体的构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明保护的范围内。
机译: 基于计算机的用于处理地下矿井中的多次潜水的方法,存在的介质,基于计算机的用于基于矿井中的矿物处理井底数据的方法的方法一个基于计算机的地下信息系统。根据地下矿井中的矿物来处理数据,并基于计算机对地下矿井中的数据进行处理的方法,仓储腿目前的计算机系统是基于计算机的,用于处理基于地下的一种形式的多次潜水。计算机根据地下矿井中的矿物质来处理数据u00e7o地下,以及基于计算机的数据处理方法
机译: 基于补丁的色度值校正图像数据的图像处理器,一种颜色处理方法,一种打印机以及一种用于校正色度值的表格生成方法
机译: 一种数据处理方法,一种执行这种数据处理方法的设备,一种通过执行这种数据处理方法产生的数据载体,一种与这种数据处理方法一起使用的解码器以及一种包括这种解码器的设备