基于安卓平台的本地录像与同步推送的方法及执法记录仪与流程

文档序号:12279536阅读:733来源:国知局
基于安卓平台的本地录像与同步推送的方法及执法记录仪与流程

本发明属于警用执法设备技术领域,具体地说,是针对基于Android平台开发的执法记录仪提出的一种录像本地保存与远程同步推送的实现方法。



背景技术:

执法记录仪又称警用执法记录仪或现场执法记录仪,集数码摄像、数码照相、对讲送话器功能于一身,能够在执法过程中进行动态、静态的现场情况数字化记录,便于公安干警在各种环境中执法使用。

近年来,执法记录仪随着一些社会事件的发生而被越来越多的公安干警所使用。现有的执法记录仪在对执法现场进行录音、录像时,通过麦克风和摄像头采集到的音频数据和视频数据有三种处理方式:

其一,先将现场采集到的音视频数据保存在本地,即保存在执法记录仪中,等回到单位后再同步到云端进行备份;

其二,将现场采集到的音视频数据实时上传到指挥中心,使指挥中心可以同步观看到现场情况;

其三,将现场采集到的音视频数据实时上传到指挥中心,指挥中心在同步观看现场情况的同时,利用NVR或者DVR录像机对接收到的音视频数据进行备份。

也就是说,现有的执法记录仪要么将采集到的音视频数据保存在本地,要么直接推送到远程的指挥中心(本地不保存),无法实现本地保存与远程推送的同步进行。究其原因,是因为现有的执法记录仪基本上都是基于安卓Android平台开发的。在Android系统中,麦克风在同一时刻只能被Android系统的一个应用所占用,当使用MediaRecoder应用进行录像时,MediaRecoder应用会独占麦克风,并将麦克风采集到的音频数据进行本地保存。此时,由于麦克风已被MediaRecoder应用所占用,因此其他的应用将无法使用麦克风获取其输出的音频数据,因而也就无法将音频数据推送到远程的指挥中心,实现本地保存与远程推送同步进行的功能。



技术实现要素:

本发明基于现有执法记录仪所存在的上述问题,提出了一种基于安卓平台的录像本地保存与远程同步推送的实现方法,规避了Android平台上麦克风的独占问题。

为解决上述技术问题,本发明采用以下技术方案予以实现:

一方面,本发明提出了一种基于安卓平台的本地录像与同步推送的方法,在启用录像功能时,在Android系统的应用层直接获取摄像头输出的原始视频数据和麦克风输出的原始音频数据;创建视频预处理模块和音频预处理模块,分别对获取到的所述原始视频数据和原始音频数据统一进行预编译;创建视频编码器和音频编码器,分别对预编译后的视频数据和音频数据进行编码;创建视频分流器和音频分流器,分别将编码后的视频数据和音频数据分成两路,将其中一路编码后的视频数据和其中一路编码后的音频数据传送至RTP通信模块进行打包封装,并向远程实时推送;将另外一路编码后的视频数据和另外一路编码后的音频数据发送至媒体混合器MediaMuxer进行音视频混合处理后,进行本地保存。

优选的,所述原始视频数据可以通过摄像头的Preview接口回调获取;所述原始音频数据可以通过Android系统的AudioRecoder接口获取。

由于音视频数据在分发前的预编译需要统一,如果按照Android系统常规的处理方式在native层做视频数据的预编译,那么在应用层还需做RTP前的预编译,导致数据处理不统一、繁琐。为了解决此问题,本发明在Android系统的应用层创建所述的视频预处理模块和所述的音频预处理模块,在Android系统的应用层完成对所述原始视频数据和原始音频数据的预编译,以统一数据来源,便于数据的统一处理。

优选的,本发明优选在Android系统的应用层利用标准API的MediaCodec编码接口创建所述的视频编码器和音频编码器,在Android系统的应用层完成对所述预编译后的视频数据和音频数据的编码处理。

优选的,本发明优选在Android系统的应用层创建所述的视频分流器和音频分流器,分别对编码后的视频数据和音频数据进行拷贝,以形成两路编码后的视频数据和两路编码后的音频数据,并进行分发。

另一方面,本发明基于上述本地录像与同步推送的方法,还提出了一种执法记录仪,其系统软件基于Android平台开发设计,包括摄像头、麦克风、视频数据采集模块、音频数据采集模块、视频预处理模块、音频预处理模块、视频编码器、音频编码器、视频分流器、音频分流器、RTP通信模块和媒体混合器MediaMuxer;所述视频数据采集模块创建于Android系统的应用层,在启用录像功能时,采集所述摄像头生成的原始视频数据;所述音频数据采集模块创建于Android系统的应用层,在启用录像功能时,采集所述麦克风生成的原始音频数据;所述视频预处理模块对所述视频数据采集模块采集到的原始视频数据进行预编译;所述音频预处理模块对所述音频数据采集模块采集到的原始音频数据进行预编译;所述视频编码器对所述视频预处理模块编译输出的视频数据进行编码;所述音频编码器对所述音频预处理模块编译输出的音频数据进行编码;所述视频分流器将所述视频编码器编码输出的视频数据分成两路,一路发送至RTP通信模块,另一路发送至媒体混合器MediaMuxer;所述音频分流器将所述音频编码器编码输出的音频数据分成两路,一路发送至RTP通信模块,另一路发送至媒体混合器MediaMuxer;所述RTP通信模块将接收到的视频数据和音频数据进行打包封装,并向远程的指挥中心实时推送;所述媒体混合器MediaMuxer将接收到的视频数据和音频数据进行音视频混合处理,并保存在所述执法记录仪内部的存储器中。

优选的,所述视频数据采集模块优选通过摄像头的Preview接口回调获取所述的原始视频数据;所述音频数据采集模块优选通过Android系统的AudioRecoder接口获取所述麦克风输出的原始音频数据。

为了避免视频数据在不同层进行两次编译处理,本发明在Android系统的应用层创建所述的视频预处理模块和所述的音频预处理模块,在Android系统的应用层完成对所述原始视频数据和原始音频数据的预编译,以统一数据来源,便于数据的统一处理。

优选的,所述视频编码器和音频编码器可以在Android系统的应用层利用标准API的MediaCodec编码接口创建,利用所述视频编码器和音频编码器在Android系统的应用层完成对预编译后的视频数据和音频数据的编码处理。

优选的,所述视频分流器和音频分流器优选在Android系统的应用层创建,分别对所述编码后的视频数据和音频数据进行拷贝,以形成两路编码后的视频数据和两路编码后的音频数据,并进行分发。

与现有技术相比,本发明的优点和积极效果是:本发明针对Android系统的麦克风和摄像头,采用在应用层单独创建音频数据采集模块和视频数据采集模块的方式,在应用层直接获取麦克风采集输出的原始音频数据和摄像头采集输出的原始视频数据,自行进行预编译、编码和封装处理,由此可以规避麦克风在启用录像功能时因被Android系统的MediaRecoder应用所独占,而导致其他应用获取不到音频信号的问题。在启用录像功能时,本发明通过自行获取原始音视频数据,并利用自行创建的音视频预处理模块、音视频编码器以及音视频分流器对获取到的音频数据和视频数据进行预编译、编码和分流处理,从而可以生成两路完全同步的音视频数据流,一路用于远程的实时传送,另一路用于本地保存,由此解决了本地录像与音视频流同步推送的问题。将其应用于执法记录仪中,公安干警在执法过程中不仅可以将现场录制的音视频数据保存在执法记录仪中,而且还可以将现场录制的音视频数据同步上传至远程的指挥中心,以便于指挥中心指挥和协助警务人员的执法过程。指挥中心在同步观看现场情况的同时,还可以通过录像机进行录像备份,以满足多种应用需求。

结合附图阅读本发明实施方式的详细描述后,本发明的其他特点和优点将变得更加清楚。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是现有Android平台的系统架构图;

图2是本发明所提出的执法记录仪改进后的Android平台的一种实施例的系统架构图;

图3是图2所示的执法记录仪为实现本地录像与同步推送而设计的一种实施例的数据处理流程图。

具体实施方式

下面结合附图对本发明的具体实施方式作进一步详细地说明。

Android平台采用层次化的系统架构,从上层到下层分别是应用程序层、应用程序框架层(native层)、系统运行库层以及Linux内核层,如图1所示。对于执法记录仪中的Android平台,根据其应用需要,在其应用程序层设置有摄像头、麦克风、通话器、报警器、时钟、日历、媒体播放器等应用模块,以满足执法记录仪的录音、录像、对讲、报警、日期时间显示以及音视频媒体播放功能等。

对于执法记录仪中设置的麦克风,由于受Android系统编程的限制,在同一时刻只能被一个应用所占用,即存在麦克风独占的问题,因此,在启用执法记录仪的录像功能录制执法现场的音视频信号时,若需要本地保存,则Android系统将自动调用其MediaRecoder应用读取摄像头采集到的视频数据和麦克风采集到的音频数据,并在native层对读取到的音频数据和视频数据进行编译、编码、音视频混合等一系列处理后,生成本地音视频数据流,保存到执法记录仪内部的存储器中。由于麦克风被MediaRecoder应用所占用,因此,在录像过程中其他应用将无法使用该麦克风获取其采集到的音频数据,从而也就无法将录制的音视频数据进行RTP封装,实时地向指挥中心进行远程传送。也就是说,指挥中心无法同步地观看到执法现场的实时状况。

为了规避 Android系统中麦克风的独占问题,实现录像数据的本地保护和远程同步推送的功能,本实施例提出了一种在Android系统的应用层自行获取麦克风和摄像头的原始音视频数据,并对获取到的原始音视频数据进行自行处理、自行封装和分发的设计思想,使得执法记录仪在录制现场的过程中既可以将录制到的现场音视频数据保存到执法记录仪内部的存储器中,实现本地保存,又可以同步推送到远程的指挥中心,使远程的指挥中心可以观看到现场的实时状况。

基于上述设计思想,本实施例首先在Android系统的应用层单独创建音频数据采集模块和视频数据采集模块,如图2所示,在执法记录仪启用录像功能时,分别获取麦克风采集输出的原始音频数据和摄像头采集输出的原始视频数据,并通过在Android系统中单独创建音频预处理模块、视频预处理模块、音频编码器、视频编码器、音频分流器和视频分流器,自行对获取到的原始音、视频数据进行预编译、编码和分发处理,继而可以形成两路音视频信号,一路分发到Android系统的RTP通信模块进行封装,以用于向远程的指挥中心传送,另一路分发到Android系统的媒体混合器MediaMuxer,进行音视频数据的混合处理,以用于本地保存,由此便可以规避麦克风被Android系统的MediaRecoder应用所独占的问题,实现录像本地保存和远程同步推送的功能。

在本实施例中,所述音频数据采集模块可以通过Android系统封装的标准接口的AudioRecoder获取所述麦克风输出的原始音频数据,例如PCM数据;所述视频数据采集模块可以通过摄像头的Preview接口采用回调的方式获取其输出的原始视频数据,例如YUV数据。

对于获取到的原始音频数据和原始视频数据在分发封装前需要进行预编译和编码处理,为此,本实施例分别在Android系统的应用层创建音频预处理模块和视频预处理模块,如图2所示,在应用层完成对原始音、视频数据的预编译处理,例如,在视频图像上添加水印(例如警标、时间、GPS定位坐标等)等。当然,在视频图像上添加水印也可以在Android系统的native层完成,并且按照Android系统的常规处理方式,对于原始视频数据的预编译过程通常都是在native层进行的。本实施例之所以将原始音、视频数据的预编译过程统一放到Android系统的应用层完成,主要是考虑音、视频数据在后面要经过分流器进行分发,分发前的预编译必须是统一的,如果在native层做视频数据的预编译,那么在应用层还需做RTP封装前的预编译。本实施例将音频预处理模块和视频预处理模块创建在应用层,可以统一数据来源,便于数据的统一处理。此外,本实施例将获取到的原始音视频数据放到应用层做数据的编译和分发处理,相比放到native层,可以处理更加复杂的业务场景或者满足并发的业务场景需求。例如可以满足本实施例所提出的同时录像和发送RTP数据包至流媒体服务器的设计需求等。

将通过所述音频预处理模块编译输出的音频数据和视频预处理模块编译输出的视频数据分别传输至音频编码器和视频编码器,如图3所示,以进行音频数据和视频数据的编码处理。在本实施例中,所述音频编码器和视频编码器优选创建在Android系统的应用层,结合图2所示,具体可以利用Android系统标准API的MediaCodec编码接口来创建,以对预编译后的音频数据和视频数据进行压缩、格式转换等一系列的编码处理。

将通过音频编码器编码输出的音频数据传输至音频分流器,利用音频分流器对编码后的音频数据进行拷贝,以生成两路相同的音频数据进行分发,如图3所示。同理,将通过视频编码器编码输出的视频数据传输至视频分流器,利用视频分流器对编码后的视频数据进行拷贝,以生成两路相同的视频数据进行分发。在本实施例中,所述音频分流器和视频分流器也优选创建在Android系统的应用层,结合图2所示,以便于数据的统一处理。

本实施例将通过所述音频分流器拷贝生成的两路音频信号进行分发,一路传送至Android系统的RTP通信模块 (PRT,Real-time Transport Protocol, 实时传输协议),用于数据的远程实时传送;另一路传送至Android系统的媒体混合器MediaMuxer,以用于本地保存,如图3所示。同理,将通过所述视频分流器拷贝生成的两路视频信号进行分发,一路传送至所述的RTP通信模块,用于数据的远程实时传送;另一路传送至所述的媒体混合器MediaMuxer,用于本地保存。

所述RTP通信模块将接收到的视频数据和音频数据进行打包封装,上传至流媒体服务器,以实现向远程指挥中心的实时推送,完成流媒体数据的同步推送功能。指挥中心通过接收到的音视频数据观看到执法现场的实时状况,以便开展监督、指挥和部署等工作。此外,指挥中心在同步观看现场的实时状况的同时,还可以利用指挥中心的NVR或者DVR录像机进行录像备份,以满足不同的应用需求。

所述媒体混合器MediaMuxer对接收到的视频数据和音频数据进行音视频混合处理,进而生成本地音视频数据,保存在执法记录仪内部的存储器中,以实现录像数据的本地保存,便于现场的警务人员调取回放。

本实施例通过对执法记录仪中的Android系统的应用层进行改进,解决了麦克风的独占问题,实现了录像数据本地保存以及远程同步推送的功能,且同步效率高,实时性强,极大方便了警务人员的执法工作。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1