一种记录仪数据存储方法及其存储装置
技术领域
本发明涉及数据存储技术领域,尤其涉及一种记录仪数据存储方法及其存储装置。
背景技术
由于货车的宽大体积以及运输过程中,对货车移动路径的全面记录等的要求,现有的货车记录仪一般都带有4路、6路或更多数量的摄像头。这些摄像头拍摄的数据都需要不断的进行录制,形成多路的视频数据,存储在记录仪对应存储设备中(例如SD卡或者硬盘中)。
现有的多路视频数据记录方式很容易产生大量的文件碎片,无法保证货车记录仪视频数据录制的可靠性和稳定性,而且大量的文件碎片还会减少存储设备的使用寿命。
而且,现有录制多路视频数据的存储方式,只能保存货车记录仪的摄像头采集获得视频数据,无法保存关于货车记录仪的其他方面的数据,例如GPS轨迹信息、报警信息、设备状态等。
因此,现有技术还有待发展。
发明内容
鉴于上述现有技术的不足之处,本发明的目的在于提供一种记录仪数据存储方法及其装置,旨在解决现有技术中货车记录仪保存多路视频数据时,容易产生大量文件碎片,记录的数据类型单一的问题。
为了达到上述目的,本发明采取了以下技术方案:
一种记录仪数据存储方法,其中,包括:
创建若干录像文件,每个录像文件由文件标识信息和数据信息存储区域组成;
根据所述文件标识信息,确定记录仪获取的数据对应的录像文件;
将所述记录仪获取的数据存储在所述对应的录像文件中。
所述的记录仪数据存储方法,其中,所述创建若干录像文件,具体包括:检测所述记录仪是否首次开机;若是,格式化记录仪的存储设备;在所述存储设备中,预先创建全部录像文件。
所述的记录仪数据存储方法,其中,所述将所述记录仪获取的数据存储在所述对应的录像文件中,具体包括:
将所述记录仪获取的数据依次缓存到缓存队列中;
从缓存队列中提取数据,写入所述对应的录像文件的数据信息存储区域中。
所述的记录仪数据存储方法,其中,所述记录仪获取的数据包括:视频数据、音频数据、GPS数据、报警数据以及设备状态信息。
所述的记录仪数据存储方法,其中,所述文件标识信息包括数据属性以及数据帧索引,所述数据帧索引由若干个字段组成;
所述数据信息存储区域包括:帧头以及与所述帧头对应的数据帧,所述帧头具有与所述数据帧索引相同的字段结构。
一种记录仪数据存储装置,其中,包括:
录像文件创建模块,用于,创建若干录像文件,每个录像文件由文件标识信息和数据信息存储区域组成;
录像文件信息管理模块,用于根据所述文件标识信息,确定记录仪获取的数据对应的保存目标文件;
数据写入模块,用于将所述记录仪获取的数据存储在所述对应的录像文件中。
所述的记录仪数据存储装置,其中,所述装置还包括检测模块,
所述检测模块用于,检测所述记录仪是否首次开机;若是,格式化记录仪的存储设备;
所述录像文件创建模块具体用于,在所述存储设备中,预先创建全部录像文件。
所述的记录仪数据存储装置,其中,所述数据写入模块,具体用于:
将所述记录仪获取的数据依次缓存到缓存队列中;从缓存队列中提取数据,写入所述对应的录像文件的数据信息存储区域中。
所述的记录仪数据存储装置,其中,所述记录仪获取的数据包括:视频数据、音频数据、GPS数据、报警数据以及设备状态信息。
所述的记录仪数据存储装置,其中,所述文件标识信息包括数据属性以及数据帧索引,所述数据帧索引由若干个字段组成;
所述数据信息存储区域包括:帧头以及与所述帧头对应的数据帧,所述帧头具有与所述数据帧索引相同的字段结构。
本发明提供的一种记录仪数据存储方法及其装置,通过预先设置的录像文件,将存储设备内的存储空间预先分配,从而有序的将货车记录仪获取的多路视频数据以及相应的其他数据,同时写入到一个录像文件中。这样的预先分配存储空间的方式,能够有效的减少文件碎片的产生,确保数据的可靠性和稳定性,而且能够同时保存多种不同类型的数据。
附图说明
图1为本发明具体实施例的记录仪数据存储方法的方法流程图;
图2为本发明另一具体实施例的记录仪数据存储方法的方法流程图;
图3为本发明具体实施例的记录仪数据存储装置的功能框图;
图4为本发明具体实施例的录像文件的格式示意图。
具体实施方式
本发明提供一种记录仪数据存储方法及其装置。为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
图1为本发明具体实施例的记录仪数据存储方法。本发明实施例的记录仪数据存储方法可以应用在不同类型的货车记录仪上,在货车记录仪的处理器控制下,通过存储设备执行,从而减少保存多路视频信息时,在存储设备中产生的文件碎片。
所述货车记录仪还可以设置有除摄像头外的一种或者多个传感器设备,例如GPS模组。
如图1所示,所述方法具体可以包括如下步骤:
100、创建若干录像文件,每个录像文件由文件标识信息和数据信息存储区域组成。
所述录像文件是预先创建的文件,每个文件在存储设备中具有自己对应的存储区域(即存储路径)。通过预先设置的录像文件,将存储设备的存储空间进行预先的分配。
在步骤100中,录像文件是一个空文件,只具有设置时预先分配额文件标识信息而不包含数据信息,数据信息存储区域为空。
具体的,请继续参阅图2,所述创建录像文件的过程具体可以包括如下步骤:
201、检测所述记录仪是否首次开机。若是,则执行步骤202,若否,则不创建录像文件,继续使用原有创建的录像文件执行数据存储操作。
202、格式化记录仪的存储设备。格式化存储设备用于清空存储设备内原有的数据。
203、在所述存储设备中,预先创建全部录像文件。在记录仪的首次开机过程中,所有的录像文件会被一次性的创建,实现存储设备中的存储空间的预先分配。亦即,存储设备内的存储空间预先被划分为多个单元,每个单元都有自己特定的存储数据。
图4为本发明实施例提供的录像文件格式。在本实施例中,所述货车记录仪具体可以提供的数据可以包括:视频数据、音频数据、GPS数据、报警数据以及设备状态信息。这些信息类型由一个录像文件保存。
如图4所示,在一个录像文件中,由文件标识信息401和数据信息存储区域402两部分组成。
所述文件标识信息401可以包括:数据属性4011以及数据帧索引4012。其中,关于数据属性4011的数据结构(即包含的字段)可以如下表所示:
字段 |
字段意义 |
video_norm |
视频制式:PAL制式、NTSC制式 |
record_type |
录像类型:普通录像、报警录像 |
stream_type_mask |
码流类型:主码流、子码流 |
vchn_mask |
视频通道掩码 |
achn_mask |
音频通道掩码 |
fix_file_flag |
固定文件标记,一个随机数字 |
serail |
机器序列号 |
phone |
手机号,可为空 |
vehicle |
车牌号,可为空 |
reserved |
占位符 |
chn_arrlen |
有效通道的数目[正确性判断, 不能为0] |
chn_arr |
各个通道的信息:包括每个通道的视频码率、图像分辨率、音频码率等信息。 |
open_time |
录像文件开始的时间 |
close_time |
录像文件结束录制的时间 |
first_pts |
起始帧的时间戳 |
last_pts |
结束帧的时间戳 |
valid_size |
有效文件长度 |
total_size |
文件总长度 |
reserved1 |
保留字段 |
user_info |
用户自定义信息 |
相对应地,所述数据帧索引也由若干个字段组成,其具体包括:
字段 |
字段意义 |
frame_type |
帧类型:I帧、P帧、音频帧、GPS帧、报警帧、设备状态帧等 |
chn |
通道号 |
pts |
时间戳 |
frame_len |
帧长度 |
offset |
此帧数据在文件中的偏移量 |
reserved |
保留字段 |
请继续参阅图4,在本实施例中,所述数据信息存储区域402则可以包括:帧头4021以及与所述帧头对应的数据帧4022。
其中,所述帧头具有与所述数据帧索引相同的字段结构,以保持录像文件格式的统一,将货车记录仪记录的数据存储到对应的录像文件项目下。
所述数据帧2022则具有6种不同的数据帧,分别与本实施例中的货车记录仪的数据类型对应,包括:视频数据帧I帧、P帧、音频帧、GPS帧、报警帧以及设备状态帧。
其中,所述视频数据帧I帧、P帧均是基于H.264编码格式的视频数据。所述音频帧为基于G711编码格式的视频数据。
所述GPS帧的数据结构如下表所示:
字段 |
意义 |
cGpsStatus |
gps是否有效标识:A有效,V无效 |
cSpeedUnit |
速度单位 |
usSpeed |
速度值 |
cLatitudeDegree |
纬度值的度 |
cLatitudeCent |
纬度值的分 |
cLongitudeDegree |
经度值的度 |
cLongitudeCent |
经度值的分 |
lLatitudeSec |
纬度值的秒 |
lLongitudeSec |
经度值的秒 |
usGpsAngle |
gps夹角 |
cDirectionLatitude |
纬度的方向 |
cDirectionLongitude |
经度的方向 |
usGpsAltitude |
海拔高度 |
cSatelliteCount |
可视卫星总数 |
positionMode |
定位模式: 0x01-GPS; 0x02-北斗 |
所述报警帧的数据结构如下表所示:
字段 |
意义 |
alarm_type |
报警主类型 |
sub_type |
报警子类型 |
enable |
0: 报警结束,1: 报警开始 |
duration |
报警持续时间 |
extdata |
附加数据 |
所述设备状态帧的数据结构如下表所示:
字段 |
意义 |
AccStatus |
车钥匙信号,1-钥匙信号有效,0-钥匙信号无效 |
PowerState |
电源状态 |
AccVoltage |
Acc电压值(单位0.01V) |
PowerVoltage |
电源电压值(单位0.01V) |
BatteryVoltage |
电池电压值(单位0.01V) |
IOState |
IO口状态 |
Pulse |
脉冲 |
HddTemperature |
主板温度(单位0.01℃) |
BoardTemperature |
硬盘温度(单位0.01℃) |
200、根据所述文件标识信息,确定记录仪获取的数据对应的目标录像文件。
在所述货车记录仪获取数据的过程中,记录仪可以根据文件标识确定获得的数据应当写入的录像文件(即目标录像文件)。
300、将所述记录仪获取的数据存储在所述对应的录像文件中。
在本发明实施例中,具体可以采用如下的方式将数据存储到对应的录像文件中:
一方面,扫描货车记录仪的存储设备上的所有录像文件,读出录像文件的相关信息。然后,按照录像时间顺序将这些信息插入到链表中。另一方面,将记录仪获取的数据依据时间顺序,不断的缓存到缓存队列中。
最后,从所述链表中取出录像文件在存储设备的文件路径,并且从所述缓存队列中取出相应的数据(包括音频、视频、gps信息、报警信息、设备状态信息),写入到录像文件的数据信息存储区域中。而当数据写满其中的一个录像文件后,重复上述操作,继续写入下一个录像文件中,从而不断的将货车记录仪的录制
在本发明实施例中,通过录制的时间次序,依次将记录仪获取的录像文件存储在各个录像文件中。
本发明实施例还进一步提供了一种与上述记录仪数据存储方法相对应的记录仪数据存储装置。如图3所示,所述记录仪数据存储装置具体包括:录像文件创建模块310、录像文件信息管理模块320以及数据写入模块330。
其中,所述录像文件创建模块210用于创建若干录像文件,每个录像文件由文件标识信息和数据信息存储区域组成。所述录像文件信息管理模块320用于根据所述文件标识信息,确定记录仪获取的数据对应的保存目标文件。所述数据写入模块330用于将所述记录仪获取的数据存储在所述对应的录像文件中。
具体的,所述记录仪获取的数据包括:视频数据、音频数据、GPS数据、报警数据以及设备状态信息。
在一些实施例中,请继续参阅图3,所述装置还可以包括检测模块340。所述检测模块340用于,检测所述记录仪是否首次开机.若是,格式化记录仪的存储设备。所述录像文件创建模块350具体用于,在所述存储设备中,预先创建全部录像文件。
具体的,所述数据写入模块330具体用于:将所述记录仪获取的数据依次缓存到缓存队列中;从缓存队列中提取数据,写入所述对应的录像文件的数据信息存储区域中。
更具体的,所述文件标识信息包括数据属性以及数据帧索引,所述数据帧索引由若干个字段组成。所述数据信息存储区域可以包括:帧头以及与所述帧头对应的数据帧,所述帧头具有与所述数据帧索引相同的字段结构。
综上所述,本发明实施例公开的记录仪数据存储方法和存储装置,在首次开机启动时,预先分配存储空间。并且实现了将多路音频、视频以及GPS信息、报警信息、状态信息等数据保存到同一个录像文件中(预先分配好的存储空间单位),从而有效地减少了文件碎片的产生,确保了录像数据的可靠性和稳定性,有效地延长了存储介质的使用寿命。
可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及本发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。