基于S3C2440A和MJPG―Streamer嵌入式网络视频监控系统的设计

摘要:本文嵌入式技术与网络技术融合到视频监控系统,提出了基于S3C2440A和MJPG—Streamer的嵌入式网络视频监控系统,通过测试表明视频图像显示效果较好,运行稳定、可靠。

下载论文网   关键词:S3C2440A USB摄像头 MJPG—Streamer v4l2   1 概述   随着科学技术的高速发展,视频监控系统已经进入到人们生活的各个方面,将嵌入式技术与网络技术融合到视频监控系统,弥补了以前传统视频监控系统存在体积过于庞大、布线复杂、价格高等不足,在图像处理与传输方面都有很好的应用,具有重要的社会和应用价值[1]。

2 总体设计   本文提出的视频监控系统以ARM9的S3C2440A 作为主控芯片,配合Linux操作系统,通过USB与摄像头连接,搭建了MJPG—Streamer流媒体视频服务器,完成视频数据的采集、压缩及网络传输到远程客户端[2],远程客户端通过软件进行查看,从而实现视频监控

3 系统硬件设计   本系统的核心板采用Samsung公司生产的S3C2440微处理芯片,该芯片基于ARM920T内核,主频高达400MHz,内置了USB控制器,本系统的USB摄像头采用具有视频压缩编码的ZC0301P芯片[3]。

4 系统软件设计   4.1 Linux内核配置编译 要使USB摄像头能正常工作,Linux需要加载该功能模块,可以有两种方式:一种是把相应模块编译进内核;另一种是编译成模块,生成对应的.o文件,可以动态加载[2]。

本文采用第一种方式,直接编译进内核,USB摄像头内核启动就能正常工作了。

在PC机的Linux系统下,进入linux—2.6.30.4内核目录,输入make menuconfig,进入到Linux 内核配置菜单,由于本文选择ZC0301P系列的USB摄像头,具体操作如下:   Device Drivers 目录———> Multimedia support ———> [*] Video capture adapters ———>[*] V4L USB devices ———> USB ZC0301[P] Image Processor and Control Chip support。

保存配置后,执行make zImage可生成新的压缩内核zImage。

4.2 MJPG—Streamer视频服务器软件的设计 MJPG—   Streamer是一个基于网络应用的轻量级的开源的视频服务器软件,可以从USB摄像头中获取视频数据,通过TCP/IP网络协议传输到客户端,主要包括input插件和output插件,结合Linux 系统的API,能完成视频数据的采集、压缩和网络传输[4]。

4.2.1 input插件

input插件主要是完成USB摄像头的初始化以及视频数据采集,需要调用Video for Linux(V4L),它是上层的视频应用程序与系统内核的接口,由于V4L 中存在的一部分设计上的bug[2],本文使用V4L的改进版V4L2来编写视频采集程序,具体流程如图2所示。

4.2.2 output插件

output插件主要是完成视频压缩、网络传输

本文使用基于帧内和帧独立的M—JPEG压缩技术,虽比不上低码率图像压缩标准的H.264,但画质还是比较清晰的,在嵌入式中应用比较广泛。

网络传输上使用TCP/IP网络协议,定义socket 套接字,通过bind、listen、accept来编程,实现视频数据的网络传输[2]。

4.2.3 MJPG—Streamer视频服务器的搭建及系统测试。

本文搭建MJPG—Streamer视频服务器,并进行系统测试,具体步骤如下:   ①首先下载MJPG—Streamer源码包,在PC机的Linux 系统下,使用tar 命令解压。

②在PC机的Linux 系统下安装交叉编译器arm—linux—gcc,生成的可执行文件可以在ARM9开发板上运行。

③进入到mjpg—streamer目录下,将所有目录下的Makefile文件中的CC=Gcc修改为CC=arm—linux—gcc,使用make编译,生成uvc—stream、mjpg—streamer、input*.so、output*.so的组件。

④将mjpeg—client/bin/win32—upx/目录下的客户端程序viewer.exe,复制到windows平台下,可以直接在windows平台下运行[5]。

⑤将前面所生成的内核通过TFTP下载到ARM9开发板中并启动,连上USB 摄像头

⑥在超级终端上,通过NFS挂载,将input*.so、output*.so文件复制到ARM9开发板的/lib/WebCam目录下,将mjpg—streamer复制到ARM9开发板的/sbin/目录下,然后运行可执行文件uvc—stream。

⑦在PC端打开viewer.exe,输入ARM9开发板的ip和端口号,再点击connect,就可以实现监控显示,效果如图3所示。

5 总结   本系统以S3C2440A为核心,结合Linux操作系统,搭建MJPG—Streamer视频服务器,实现了嵌入式视频监控,但只是基于本地局域网的视频监控,且视频显示清晰度及实时性还有待改进,随着无线网络的发展,还可以利用无线网卡实现实时无线监控

参考文献:   [1]葛林.基于ARM9和OpenCV的视频监控系统的研究[D].湖北工业大学,2013.12.   [2]华春梦,刘冲.基于S3C2440嵌入式平台的USB摄像头视频监控[J].电脑开发与应用,2015.1.   [3]许敏.基于S3C2410的嵌入式视频监控系统的设计[J].电脑知识与技术,2014.2.   [4]陈恒鑫,林威,张钦宇.基于MJPG—Streamer的移动视频监控系统设计[J].计算机测量与控制,2014.5.   [5]李佳林,刘永春.基于S3C2440网络视频采集系统的设计与实现[J].电脑知识与技术,2014.1.

3 次访问