基于Android架构行车记录仪的异常掉电可播放视频方法技术

技术编号:20050088 阅读:36 留言:0更新日期:2019-01-09 05:54
本发明专利技术公开一种基于Android架构行车记录仪的异常掉电可播放视频方法,包括创建用于录制视频容器的安卓类对象,在安卓类对象内创建文件句柄,后开始录制;安卓的相机服务组件通过平台HAL层去调用驱动代码,驱动去访问硬件固件获取视频流,传递到多媒体编解码组件,压缩后的码流,码流被封装写录制文件的组件读取,进行MP4格式封装,当停止录像或设置结束完成的条件触发后,完成封装,形成MP4录像文件。根据MP4封装原理,只要确保每一个时间片段在写入TF卡后,都有对应的moov封装写入。通过软件实现以时间片段为单位封装视频,以解决对记录仪异常掉电导致的视频无法播放的问题。同时也避免扩展新的视频封装格式,改动Android框架带来的工作量地增加。

【技术实现步骤摘要】
基于Android架构行车记录仪的异常掉电可播放视频方法
本专利技术涉及摄录像视频
,特别涉及一种基于Android架构行车记录仪的异常掉电可播放视频方法。
技术介绍
随着车联网概念的兴起和技术的积累,越来越多的智能设备被接入到车辆上。行车记录仪作为非常重要的一种车载设备形态,越来越被车主所接受。最近几年随着智能系统的崛起,记录仪系统也由Linux向Android系统切换,形成了智能行车记录仪,录像功能必然基于Android的Camera和Stagefright架构,从摄像头获取的图像数据经过编码器压缩,码流最后通过封装形成可播放的视频格式。由于录像开始后需要实时写入,并且理论上应用并不知道录制结束时间,所以基于Android架构的行车记录仪在停止录像后才最后写入封装moov格式。由于记录仪的供电方式主要有两种:一种是电瓶取电,优点是电压稳定,熄火后扔可以取点,但安装麻烦;另一种是点烟器或USB取电,优点是安装简单,但熄火后电压立刻断掉,记录仪直接关机。无论哪种取电方式,在车辆出事故导致的异常断电,都可能导致断电时正在录制的视频无法播放,而断电时正在录制的视频为最重要的现场视频,可以确定事故的原因或责任。概括来说,moov封装了次级box格式,里面有这段视频的无数据信息,即为文件重要属性的信息的非视频内容,如媒体数据全局描述,视频、音频的track属性等。如果moov的封装未完成,那么这段视频格式是不完整的,播放器也就无法正常播放。对于记录仪从车辆电瓶取电时,由于记录仪可以取到常电,所以在熄火或者异常发生时,记录仪立刻结束这段视频并完成最后的封装,正常不会出现视频无法播放的问题。但记录仪从点烟器取电时,正常车辆熄火后,最后形成的视频来不及封装,因而无法播放视频。目前解决这个种记录仪异常断电时视频无法播放问题,采用在硬件上想办法留上一点电,如设备设计进大电容或安放小电池等,保证熄火后,预留几秒的时间来作最后的封装处理,保证视频的完整性,但其硬件成本高,更重要的是,当车辆太阳下暴晒的环境温度可达70°以上,使用电池时,电池加速老化会带来一定的安全隐患。
技术实现思路
本专利技术主要解决的技术问题是提供一种基于Android架构行车记录仪的异常掉电可播放视频方法,该基于Android架构行车记录仪的异常掉电可播放视频方法可以避免异常断电时无法播放视频,同时不增加硬件成本。为了解决上述问题,本专利技术提供一种基于Android架构行车记录仪的异常掉电可播放视频方法,该基于Android架构行车记录仪的异常掉电可播放视频方法,包括:创建用于录制视频容器的安卓类对象,在安卓类对象内创建文件句柄,后开始录制;安卓相机服务组件通过平台HAL层去调用驱动代码,驱动去访问硬件固件获取视频流,传递到多媒体编解码组件,压缩后的码流,码流被封装写录制文件的组件读取,进行MP4格式封装,当停止录像或设置结束完成的条件触发后,完成封装,形成MP4录像文件。进一步地说,在安卓类对象内部逻辑里创建一个用于写数据流的句柄fd。进一步地说,获取数据MediaBuffer的线程会将Video/Audio的Track数据以Sample结构写入到ChunkBuffer缓存中,并通知写文件的线程读取Chunk数据写入到文件中,两个线程同步通过循环获取保证数据的连续读出写入,当一段录制完成时,写入moov和free的box内容,其中两个线程以同步方式。进一步地说,写入moov和free封装步骤包括,录像文件创建后,先写文件头ftyp,定义TimeSlice间隔为2s,即2s的录制时间一到就作一次文件写入;TimeSlice1,保证依次写入VideoChunk和AudioChunk数据,写入完成后,处理第一次WirteMoov,完成封装;TimeSlice2,文件地址偏移到TimeSlice1写moov的位置,进行覆盖写入Chunk数据,后处理第二次WirteMoov;依此循环处理,直至文件录制结束,完成最后一次WirteMoov;本基于Android架构行车记录仪的异常掉电可播放视频方法,包括创建用于录制视频容器的安卓类对象,在安卓类对象内创建文件句柄,后开始录制;安卓的相机服务组件通过平台HAL层去调用驱动代码,驱动去访问硬件固件获取视频流,传递到多媒体编解码组件,压缩后的码流,码流被封装写录制文件的组件读取,进行MP4格式封装,当停止录像或设置结束完成的条件触发后,完成封装,形成MP4录像文件。根据MP4封装原理,只要确保每一个时间片段在写入TF卡后,都有对应的moov封装写入。也就是说在设备不增加硬件成本的前提下,通过软件实现以时间片段为单位封装视频,以解决对记录仪异常掉电导致的视频无法播放的问题。同时也避免扩展新的视频封装格式,改动Android框架带来的工作量地增加。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍,显而易见地,而描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。图1为基于Android架构行车记录仪录像流程示意图。图2为MP4视频封装的结构示意图。图3为MPEG4Writer形成FdMediaFile的过程中流程示意图。图4为写入moov和free封装流程示意图。下面结合实施例,并参照附图,对本专利技术目的的实现、功能特点及优点作进一步说明。具体实施方式为了使专利技术的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。如图1和图2所示:所示,本专利技术提供一种基于Android架构的异常掉电可播放的行车记录仪实施例。基于Android架构的异常掉电可播放的行车记录仪,行车视频记录仪,记录过程如下:创建用于录制视频容器的安卓类对象,在安卓类对象内创建文件句柄,后开始录制;安卓相机服务组件通过平台HAL层去调用驱动代码,驱动去访问硬件固件获取视频流,传递到多媒体编解码组件,压缩后的码流,码流被封装写录制文件的组件读取,进行MP4格式封装,当停止录像或设置结束完成的条件触发后,完成封装,形成MP4录像文件。所述写入moov和free封装步骤包括,录像文件创建后,先写文件头ftyp,定义TimeSlice间隔为2s,即2s的录制时间一到就作一次文件写入;TimeSlice1,保证依次写入VideoChunk和AudioChunk数据,写入完成后,处理第一次WirteMoov,完成封装;TimeSlice2,文件地址偏移到TimeSlice1写moov的位置,进行覆盖写入Chunk数据,后处理第二次WirteMoov;依此循环处理,直至文件录制结束,完成最后一次WirteMoov;具体地说,打开相机设备,如Camera,设置好录像参数后,创建用于录制视频的容器安卓类对象,例如MediaRecorder,在MediaRecorder创建一个用于写数据流的句柄fd后开始录制本文档来自技高网
...

【技术保护点】
1.基于Android架构行车记录仪的异常掉电可播放视频方法,其特征在于,包括,创建用于录制视频容器的安卓类对象,在安卓类对象内创建文件句柄,后开始录制;安卓相机服务组件通过平台HAL层去调用驱动代码,驱动去访问硬件固件获取视频流,传递到多媒体编解码组件,压缩后的码流,码流被封装写录制文件的组件读取,进行MP4格式封装,当停止录像或设置结束完成的条件触发后,完成封装,形成MP4录像文件。

【技术特征摘要】
1.基于Android架构行车记录仪的异常掉电可播放视频方法,其特征在于,包括,创建用于录制视频容器的安卓类对象,在安卓类对象内创建文件句柄,后开始录制;安卓相机服务组件通过平台HAL层去调用驱动代码,驱动去访问硬件固件获取视频流,传递到多媒体编解码组件,压缩后的码流,码流被封装写录制文件的组件读取,进行MP4格式封装,当停止录像或设置结束完成的条件触发后,完成封装,形成MP4录像文件。2.根据权利要求1所述的基于Android架构行车记录仪的异常掉电可播放视频方法,其特征在于,所述安卓类对象内部逻辑里创建一个用于写数据流的句柄fd。3.根据权利要求1所述的基于Android架构行车记录仪的异常掉电可播放视频方法,其特征在于,获取数据MediaBuffer的线程,将Video/Audio的Track数据以Sample结构写入到ChunkBu...

【专利技术属性】
技术研发人员:詹昌漫杨志远陈信丰
申请(专利权)人:深圳市信丰伟业科技有限公司
类型:发明
国别省市:广东,44

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

1