如何设计一种车载监控数据存储方案?
摘要:车载监控数据,包括车载摄像头的音视频数据,以及车辆的运行状态数据,其中车辆状态数据又包括车速、方向、经纬度,报警状态,车辆诊断信息等。
liwen01 2023.08.13
前言
车载监控数据,包括车载摄像头的音视频数据,以及车辆的运行状态数据,其中车辆状态数据又包括车速、方向、经纬度,报警状态,车辆诊断信息等。
我们常见的运营车辆,比如公交,客运大巴,危险品运输车,它们车上的DVR与我们普通行车记录仪有比较大的区别,主要原因是它需要保存的数据量多,且需要保存的时间很长。本文介绍的就是该类应用场景的车辆监控数据存储方法。
(一)技术背景要求
车载DVR与普通行车记录仪先比较,在技术上存在下面几个难点:
数据量大:一般需要同时存储4/6/8路摄像头的音视频数据
存储时间长:一般需要本地数据保存3~6个月
结构空间小:设备的结构空间以及硬件接口限制,一台设备只能外接一个硬盘
状态存储:音视频数据需要与车辆状态数据同时同步存储
快速检索导出:设备需要支持快速检索导出任意时间段的数据
数据标记:可以设置某些报警数据锁定,覆盖的时候这些数据不会被删除
异常上下电:需要适应车辆可能会出现断电或是电源不稳的情况
(二)方案选型
(1)存储设备选型
我们常用的外部存储器有:TF卡,U盘,SD卡,固态硬盘,机械硬盘等。考虑到需要存储的数据量以及保存时长,这里只能选用硬盘。硬盘有两种,机械硬盘与固态硬盘,它们的优缺点如下:
类型优点缺点
机械硬盘
容量大
价格便宜
适用于大型文件的顺序读写
速度较慢
功耗较高
发热较严重 容易受震动和撞击影响
固态硬盘
读写速度快
功耗低
抗震性强
成本高
存储容量较小
不适合频繁读写
如果公司是卖设备,会比较倾向于机械硬盘,因为价格便宜且容量大,在满足客户需求的同时,可以降低设备成本。
如果选用机械硬盘,需要解决的几个大问题是:
车辆震动问题
硬盘散热问题
硬盘磁盘碎片问题
震动和散热需要硬件和结构来解决,我们这里不做讨论,软件可以解决的是磁盘碎片问题。
(2)文件系统选型
常用于嵌入式设备的文件系统有:YAFFS、JFFS2、UBIFS、ext2/3/4、FAT32,exFAT,ROMFS、NFS。适用于硬盘使用的只有:ext2/3/4、FAT32,exFAT。ext2/3/4, 它是一种适用于Linux系统的日志文件系统,FAT32与exFAT是一个简单,轻量及的文件系统,同时,它支持包括Windows、macOS、Linux等操作系统
在车载DVR设备上,有些时候需要将硬盘取出,接到电脑上位机上进行数据导出查看等操作,所以选用FAT32会更加的合适些。另外因为FAT32实现简单,可以添加很多自定义数据,所以这里我们选用FAT32。
简单概括选用FAT32文件系统的原因是:
可以同时支持Windows、macOS、Linux等操作系统,兼容性好
轻量级,实现简单,可以自己写代码实现
可以添加自定义数据
(三)传统存储方法介绍
(1)传统存储方案介绍
传统的存储方法是这样的:将每一个摄像头通道的音视频数据单独存储一个文件,比如把他们封装成AVI或是MP4视频格式。当存储到设定大小(比如128M),或者是设定时长(比如10分钟)的时候,停止该文件的写入,重新新建一个文件继续进行写入。
当整个磁盘空间写满之后,再去查找最开始写入的文件,将它删除,以释放存储空间来写入新的文件,从而实现循环存储的功能。于此同时,因为MP4或是AVI不能封装车辆状态数据,所以车辆状态数据只能与音视频数据分开,写到另外一个文件中去。
这种存储方法,针对使用机械硬盘的车载DVR设备而言,存在下面几个问题:
当多路摄像头同时存储时,音视频数据不连续,长期操作影响机械硬盘的使用寿命
当存储器写满之后,不断重复删除文件和创建文件,容易造成文件系统的损坏,对于机械硬盘还会产生硬盘碎片,降低硬盘性能。
音视频数据与车辆状态信息数据分开存储,音视频数据与车辆状态数据难以准确同步,不利于事故现场的还原。
音视频数据以音视频文件格式存储,只能以整个文件形式导出,不能够实现任意时间段数据的导出。
当需要多通道数据同时多画面显示时,各个通道的数据时间同步不准确,无法准确还原现场情况。
(2)磁盘碎片问题介绍
磁盘碎片主要是存在机械硬盘中的一种存储状态。指的是当文件被频繁创建、修改和删除时,可能导致文件的数据被分散存储在不同物理位置上,造成文件数据不连续,形成碎片化。
因为文件存储位置离散,磁盘碎片容易导致机械硬盘出现下面问题:
读写性能下降
磁盘空间浪费
文件访问延迟
上面问题是因为机械硬盘的工作原理产生的,机械硬盘是通过磁头读取旋转盘面的不同磁道上的信息进行数据读写操作。
