基于嵌入式Linux的网络视频监控系统的实现

点赞:24272 浏览:108059 近期更新时间:2024-02-03 作者:网友分享原创网站原创

摘 要

本文针对网络视频监控设备的实际应用需求,设计了基于嵌入式Linux和ARM9的单画面视频监控系统.系统的硬件选用三星公司的S3C2440开发板,通过连接USB摄像头进行视频数据的采集.软件以嵌入式Linux的ubuntu操作系统为开发环境、选择H246算法对视频进行压缩,通过SOCKET传送回PC机上,客户端采用Qt技术实现界面并实时显示监控情况,同时以I格式存储以便播放历史录像.经测试,该系统能够实现实时视频监控及播放历史,且稳定性较好.

【关 键 词】嵌入式Linux视频监控ARM9SOCKET

1引言

随着信息化技术的不断发展,各行各业对视频监控系统的需求越来越广泛,如交通监控、家庭防盗、企业安防等各个领域.视频监控不仅能够起到事前防范的作用,而且还有事后取证的功效.

嵌入式的视频采集以其独特的优势被广泛采用.如具有较强的网络支持功能、强大的移植性、完全开放的源代码等特点.因此,本系统选择嵌入式Linux的ubuntu操作系统为开发环境,以三星公司的ARM9处理器S3C2440为核心开发板,通过建立Client/Server工作模型来实现远程视频监控.


2系统硬件组成

本系统具有以下功能:

(1)终端能够进行视频数据的采集并传送回PC机;

(2)用户可以通过客户端软件观看监控终端采集到的视频数据;

(3)存储采集到的视频数据以便播放历史录像.

基于此,本系统的硬件功能框图如图1所示.平台以三星公司的S3C2440处理器为核心开发板.配置了64MB的NandFlash存储器和64MB32位的SDRAM.用户将代码存储在NandFlash中,并从NandFlash启动,之后自动将代码加载到SDRAM中运行如图1.

基于嵌入式Linux的网络视频监控系统的实现参考属性评定
有关论文范文主题研究: 关于嵌入式的论文范文 大学生适用: 电大毕业论文、专科论文
相关参考文献下载数量: 51 写作解决问题: 怎么撰写
毕业论文开题报告: 论文任务书、论文设计 职称论文适用: 期刊目录、初级职称
所属大学生专业类别: 怎么撰写 论文题目推荐度: 经典题目

视频数据的采集通过在USB接口上外接一个USB摄像头,将视频数据接收到核心板.开发板通过5线异步UART串口与目标系统通信,获取开发板调试信息、下载镜像文件等,波特率可达115200bps.引出JTAG接口,用来烧写BootLoader,并通过JTAG接口调试程序.同时外接一个网络芯片与主机相连,用于传送采集到的视频数据,终端接收到视频流进行转码,最终显示到客户端上.

3系统软件实现

本系统采用模块化设计,从功能上可以划分为如图2所示四个模块:视频采集模块、编码压缩模块、网络传输模块和视频播放模块.

视频采集模块完成视频数据的采集,通过在ARM板上安装USB摄像头进行数据采集.编码压缩模块对视频数据进行编码以减少数据量.网络传输模块将压缩后的视频数据传送回客户端.视频播放模块不仅要实现实时播放监控画面,而且能够回放历史视频.

3.1视频采集模块

视频采集模块通过调用V4L和底层设备驱动程序实现.V4L为各种视频设备提供了统一的接口,是Linux中的内核驱动程序.应用程序通过调用这些接口函数就可以对不同的设备进行控制.视频采集步骤如下:

(1)打开视频设备.使用open()函数打开所需设备并获取设备标识符.

(2)获取图像信息和设备参数信息.调用v4l_get_capability()函数获取设备参数,如是否具有捕获图像能力、每秒帧数等;通过v4l_get_picture()函数获取图像格式,如:图像大小等.

(3)内存映射.调用mmap()函数实现将设备文件的内容映射到内存空间进行读写操作.

(4)采集视频数据.调用ioctl()函数采集一帧图像并存储到内存空间.

3.2图像压缩模块

通过摄像头采集到的图像是YUV格式的图像,数据量大,但网络带宽有限,所以要经过视频编码压缩处理后才能进行网络传输.本系统采用目前比较流行的H264编码压缩算法实现,H264压缩算法具有画面质量高、网络适应性强、压缩比高等优点,压缩率可以达到100:1,压缩后的视频数据能够实现快速传输.

3.3网络传输模块

系统中经过压缩的视频数据需要通过网络传送到PC机上.本系统选用可靠的TCP/IP编程模式,怎么写作器端编程步骤如下:

(1)调用socket()函数创建套接字;

(2)调用bind()函数绑定套接字与地址信息;

(3)调用listen()函数进行监听;

(4)调用accept()函数等待接收连接;

(5)接收视频帧;

(6)关闭socket.

3.4视频播放模块

视频播放通过客户端实现,客户端将接收到的视频流进行解码,即将视频流转换到rgb空间显示.本系统利用QT技术编写界面,调用QImage将传送回来的压缩视频流显示到QLabel上实现实时播放;同时将视频流转码存储为i格式,通过Opencv提供的接口去读取视频以便播放历史画面.

客户端监控界面如图3所示,点击“连接”按钮可观看实时监控画面,点击“播放历史”按钮可选择历史记录进行回放.

4结论

本文实现了一个基于ARM9和嵌入式Linux的单画面网络视频监控系统,经测试,该系统不仅可以实现实时监控,还可以对历史画面进行查看播放.具有成本低、易于安装和维护、稳定性好等优点.对于各种监控需求场合具有很好的应用价值.