DVR系统设计的大致思路和模块划分
1. 源由
DVR系统设计其实并不是新鲜的东西,反之,这是一个标准化程度非常高的系统化产品类别。
鉴于目前接触了一些视频方面的模组和产品,以及讨论的一些事情,想就接触的这几块内容,做一个梳理:
- 传统网络IPC+DVR系统
- 无人机天空端+地面端
- 智能家居视频监控系统
- OpenIPC开源监控项目
2. 设计步骤
设计和落地一个DVR(数字视频录像机)系统需要涵盖多个方面,从需求分析到硬件选择、软件开发和测试。这些步骤涵盖了DVR系统设计的主要环节,从初期的需求分析到最终的部署和运维,确保系统能够满足用户需求并稳定运行。
以下是详细的步骤和落地细节:
2.1 需求分析
- 确定目标用户和使用场景:明确DVR系统的应用领域,如家庭安全、商业监控、交通监控等。
- 功能需求:确定系统需要支持的功能,如实时录像、回放、远程访问、运动检测、报警功能等。
- 性能需求:包括录像分辨率、帧率、存储容量、数据传输速度等。
2.2 系统架构设计
-
硬件架构:
- 摄像头:选择适合应用场景的摄像头(如高清、夜视、广角等)。
- 存储设备:确定存储方式(本地硬盘、网络存储、云存储)。
- 处理器:选择能够处理高分辨率视频编码和解码的处理器。
- 网络设备:根据需求选择有线或无线网络设备。
-
软件架构:
- 操作系统:选择嵌入式系统常用的操作系统(如Linux、Windows Embedded)。
- 中间件:开发或选择现成的中间件来处理视频编码、传输和存储。
- 应用层:包括用户界面、远程访问接口、报警处理等。
2.3 硬件设计与选择
- 摄像头选择:根据分辨率、视角、夜视能力等参数选择合适的摄像头。
- 处理单元:选择支持硬件视频编码的嵌入式处理器,如ARM Cortex系列。
- 存储设备:根据需求选择SSD或HDD,考虑数据写入速度和容量。
- 网络设备:选择符合带宽要求的路由器和交换机,确保数据传输稳定。
2.4 软件开发
-
系统软件:
- 开发或定制Linux内核,支持摄像头驱动、网络协议等。
- 实现视频编码/解码库,如H.264、H.265。
-
中间件开发:
- 开发视频流传输模块,支持RTSP、HTTP等协议。
- 开发存储管理模块,支持循环录像、事件录像等。
-
应用层开发:
- 用户界面:设计友好的用户界面,支持本地和远程访问。
- 报警处理:实现运动检测、报警通知等功能。
- 数据分析:提供视频回放、事件搜索、日志管理等功能。
2.5 测试与调试
- 功能测试:逐项测试DVR的各项功能,如录像、回放、远程访问等。
- 性能测试:测试系统在高负载下的性能,确保视频流畅、存储稳定。
- 兼容性测试:测试系统与不同品牌和型号摄像头、存储设备的兼容性。
- 安全性测试:检查系统的网络安全性,防止未经授权的访问。
2.6 部署与运维
- 安装部署:根据现场情况进行设备安装、网络布线、系统配置。
- 培训与文档:提供用户使用培训,编写详细的用户手册和维护文档。
- 运维支持:提供技术支持和售后服务,定期进行系统维护和更新。
2.7 持续优化
- 用户反馈:收集用户反馈,分析使用情况,进行系统优化。
- 软件更新:定期发布软件更新,修复漏洞,增加新功能。
- 技术升级:关注新技术动态,逐步升级硬件设备和软件系统。
3. 模块切割
嵌入式系统产品,通常可以跟随硬件功能块做模块划分。当前DVR(数字视频录像机)硬件设计架构通常包括以下主要组成部分,每个部分都有多种具体的实现和选择方案:
3.1 摄像头
- 模拟摄像头(Analog Cameras):通常使用同轴电缆连接到DVR,适用于传统的CCTV系统。
- 数字摄像头(IP Cameras):使用网络连接(如以太网),提供更高的分辨率和智能功能。
3.2 视频处理单元
- 处理器(CPU):通常选择高性能的嵌入式处理器,如ARM Cortex系列、MIPS处理器,或专用的数字信号处理器(DSP)。
- 图形处理单元(GPU):有些DVR系统会集成GPU,以提高视频编码/解码和图像处理的效率。
3.3 存储系统
- 本地存储:内置硬盘驱动器(HDD)或固态硬盘(SSD),用于存储录像数据。HDD适合大容量存储,而SSD提供更快的读写速度和更高的可靠性。
- 网络存储(NAS):通过网络附加存储系统扩展存储容量,适用于大规模监控系统。
- 云存储:将录像数据存储在云端,方便远程访问和数据备份。
3.4 网络模块
- 无线网络(Wi-Fi):提供无线连接选项,适合不便于布线的场景。
优点:便携性高,使用灵活。
缺点:无线信号可能受环境干扰,传输距离和稳定性有限。
- **光纤网络(Optical Fiber):**利用光纤束将光信号传输至显示设备。
优点:抗电磁干扰能力强、图像传输质量高。
缺点:成本较高,光纤的操作和维护较为复杂。
- 有线网络(Ethernet):通过以太网、USB等方式连接摄像头和DVR,确保数据传输稳定。
优点:抗干扰能力强。
缺点:体积相对于无线、光纤来说更大;长距离部署,需中继,且成本高。
3.5 视频编码/解码
- 视频编码器(Encoder):采用硬件或软件方式对视频进行编码,常见的编码格式有H.264、H.265(HEVC)。
- 视频解码器(Decoder):用于视频回放时解码录像数据。
3.6 接口与连接
- 输入/输出接口(I/O Interfaces):包括HDMI、VGA、BNC等视频输出接口,以及USB、RS-485、以太网接口等。
- 电源管理:提供稳压电源模块,确保系统稳定运行。
3.7 控制与操作
- 用户界面(UI):通过本地显示器或远程客户端提供图形用户界面,便于用户操作和配置。
- 远程访问:支持通过移动应用或网页访问DVR系统,实现远程监控和管理。
3.8 其他功能模块
- 报警接口:连接传感器(如门磁、红外探测器)进行报警触发和事件记录。
- 音频输入/输出:支持音频录制和回放,适用于需要声音监控的场景。
4. 硬件设计架构示例
4.1 嵌入式DVR设计
- 处理器:ARM Cortex-A53,四核处理器。
- 存储:1TB HDD,支持扩展至4TB。
- 视频输入:8路模拟视频输入,支持720p/1080p分辨率。
- 视频输出:HDMI和VGA输出,支持1080p显示。
- 网络:1个RJ45以太网接口,支持10/100/1000 Mbps。
- 其他接口:2个USB 2.0端口,1个RS-485接口,4路音频输入,1路音频输出。
- 电源:12V DC电源适配器,内置电源管理模块。
4.2 网络视频录像机(NVR)设计
- 处理器:HiSilicon Hi3536D,四核ARM Cortex-A17处理器。
- 存储:2个3.5英寸HDD插槽,最大支持16TB存储。
- 视频输入:16路IP摄像头输入,支持4K分辨率。
- 视频输出:1个HDMI输出,1个VGA输出。
- 网络:2个RJ45以太网接口,支持10/100/1000 Mbps。
- 其他接口:4个USB 3.0端口,1个eSATA端口,4路音频输入,1路音频输出。
- 电源:内置电源,支持AC 100-240V输入。
这些架构设计可以根据具体需求进行调整和优化,以满足不同应用场景下的DVR系统要求。
5. 软件开源代码
OpenIPC是一款专为网络摄像机设计的第三方开源固件。
OpenIPC是一个开源的操作系统,针对一些使用ARM和MIPS处理器的网络摄像机,以替代供应商预装的那种封闭的、不透明的、不安全的、不再更新的、不支持的固件。
其整个代码设计采用了业界一流的构建工具buildroot,方便了应用的集成和升级更新。
6. DEMO - SCC338Q+IMX415+Hi3536DV100+RTL8812AU
笔者手头就有非常好的原型DEMO,尤其是在FPV领域应用。
- 天空端(摄像头+视频编码+网络模块):SCC338Q+IMX415+RTL8812AU
- 地面端(网络模块+视频解码+存储系统):Hi3536DV100+RTL8812AU+SATA SSD/USB Storage
- 接口与连接:低延迟无线WiFi(70~80ms) //若地面端视频解码更换硬件,最高可提升至35ms左右
- 其他可支持传感拓展:MIC、IO等
目前,欠缺在图像后端处理方面的工作:《摄像头校准之白平衡&畸变&坏点》,希望后面有时间和设备进行更进一步的校准以及图像重建工作。
在AI应用领域,考虑在后端进行相应软件部署和应用开发,进而实现系统的搭建:
注:请注意,这些数据链路全加密处理,因此不用担心模拟系统的广播和隐私问题。
OpenIPC(SCC338Q+IMX415+Hi3536DV100+RTL8812AU)性能测试