MJPEG是Motion JPEG的缩写,即动态JPEG。它将动画播放与JPEG结合,按照25帧/秒的速度使用JPEG算法压缩视频信号,完成动态视频的压缩。
4 Web服务器设计
在资源有限的嵌入式设备中可以使用的轻量级Web Server有:httpd、thttpd、boa等。本设计选用开源的、支持CGI的Boa Web Server,其主要移植过程如下:
(1)到www.boa.org下载最新软件包并解压到相关目录。
(2)在目录boa/src下的defines.h文件顶部设置默认的SERVER_ROOT路径。
(3)选择交叉编译工具。在boa目录下使用 ./configure --host=i686-pc-Linux-gnu --target=arm-Linux 完成对boa的配置。
(4)执行make编译boa后即在src/目录下生成可执行文件boa。
(5)对boa.conf文件进行配置。主要完成对boa运行的端口号、Server 根目录、log files、html文件、cgi文件目录及可读写的temp目录的属性的设置。
5 浏览器与服务器之间的通信—通用网关接口
CGI(Common Gateway Interface)是外部应用扩展程序与WWW服务器交互的一个标准接口。按照CGI标准编写的外部扩展程序能够处理客户端浏览器输入的数据,从而完成客户端与服务器的交互、实现动态Web技术。在本设计中,当用户通过浏览器向网络摄像机发送控制信息(比如控制摄像机云台的动作等)时,服务器守护进程启动CGI模块,CGI模块通过串口将控制命令传送给云台,使云台执行相应的动作。其流程图如图2所示:

图2 CGI控制云台动作原理流程图
6 Web页面的设计
在本嵌入式网络摄像机中,Web页面的主要功能是显示Web页面及动态视频信息。由于标准的html网页只具有显示文字和图片的功能,因而无法在标准的html网页里嵌入一个窗口来“实时”观看视频图像。解决这个问题的一种方法是将“实时”视频监控软件嵌入到网页中。Microsoft 制定了ActiveX规范,只要符合这个规范的软件都可以嵌入到网页中。为了能满足多人同时“实时”观看视频图像,在本设计中选用标准ActiveX控件—VgPlayerObject来实现这一功能。
7 结束语
本文提出了一种基于ARM S3C2410X和Linux的嵌入式网络摄像机设计。采用嵌入式Linux操作系统进行视频采集、压缩并通过ActiveX控件显示动态视频,通过嵌入式Web Server和CGI技术融合整个系统,形成一套完整的网络摄像机系统解决方案。由于系统采用高性能嵌入式处理器完成主要控制、压缩和Web处理工作,因此该系统具有结构简单、性能稳定、成本低廉等优点,在油田、油气井现场视频实时监控、智能小区、移动监控等领域具有广阔的应用前景。
本文作者创新点:成功将CGI技术应用到嵌入式网络摄像机中,利用简单的方法实现了用户和嵌入式系统的交互,本网络摄像机在智能监控和移动监控中有广阔的应用前景。
参考文献:
[1] 曹 翔. 实时视频传输在MPLS网络中的QoS研究[J]. 微计算机信息,2006,7-3:58-60.
[2] 陈俊宏.Embedded Linux嵌入式系统原理与实务[M].北京:中国铁道出版社,2004.
[3] 杨大千等.基于ARM9和Linux的嵌入式动态Web技术设计与实现[J].工业控制计算机,2006,8.