图5 MPEG-4压缩编码模块程序流程图
4.2 CGI程序模块设计
CGI(Common Gateway Interface)是外部扩展应用程序与WWW服务器交互的一个标准接口。本系统CGI的工作过程:在PC机端的IE浏览器中输入网络摄像机IP地址,嵌入式网络服务器根据请求,将相应的控制页面反馈给IE浏览器,用户填写表单,然后提交,CGI程序提取表单的信息,根据不同信息来分别处理相应的事件,如调节MPEG-4相关属性、相机的相关操作等。CGI控制原理如图5所示。
图6 CGI控制原理图
CGI模块的设计主要包括三部分:嵌入式web服务器的配置、html页面的编写、CGI程序的设计。
嵌入式web服务器采用的是Apache,其配置是以配置文件的形式提供,放在Ramdisk中/etc/httpd/conf/目录下。其配置主要涉及以下三个方面:
○1配置根文件的路径:“DocumentRoot /home/httpd/html”,html页面必须放到此目录下。
○2配置CGI外部程序所放的路径:“ScriptAlias /cgi-bin/ home/httpd/cgi-bin/”。
○3配置环境变量:“SetEenv D_LIBRARY_PATH=/lib:/usr/local/lib:/usr/lib”,该变量将会被传送到 CGI 脚本和SSI页面,以保证CGI程序能正确找到所依赖的库。
网页编写采用html与shtml相结合的方式。html的解析速度较快,shtml可以在普通网页中嵌入外部CGI程序,通过这种方式将系统的默认配置反馈给客户端。
CGI程序采用的是C语言和shell脚本相结合的方式, 具体编写过程,与通常的了Linux下编程相同。限于篇幅,不再赘述。
4.3 MPEG-4解码程序
映佳科技已提供供二次开发的MPEG-4解码插件OCX,OCX在PC机端注册后,OCX函数可方便地被网页调用,从而实现在PC机端观看实时图像。
5 总结
本文介绍了一种利用AT91RM9200、TVP5150,MPG440和DM9161E等芯片设计的嵌入式网络摄像机。经测试,该系统稳定、可靠、实时性好、图像质量出色。该产品可广泛应用于交通监控和工业监控以及家庭监控、视频会议话等众多领域。