您的位置:首页 > 运维架构

基于servfox和spcaview的嵌入式视频监控系统

2009-08-20 21:43 711 查看
我的环境

PC:操作系统用的VM下的RedHat9,内核是2.6.15,交叉编译器是3.4.1

开发板硬件:天嵌的板子,CPU是s3c2440

开发板软件:bootloader是自己移植的u-boot,内核是自己移植的2.6.15

先说一下总体思路,

1、移植摄像头驱动

2、移植服务器端程序

3、编译客户端程序

1、移植摄像头驱动

摄像头我用的是中芯微ZC301的。驱动可以从网上下载,我是在嵌入式开发联盟上下的。驱动的加载有两种方式,一种是将驱动编译进内核;另一种是以模块的形式加载。第一种方式会增加内核的空间,而且一旦驱动加载后就无法卸载。所以建议使用第二种方式。通过inmod方式加载即可。

2、移植服务器端程序

服务器端程序我用的是servfox,从这里下载
http://mxhaard.free.fr/spca50x/e ... rvfox-R1_1_3.tar.gz

下载,解压,进入其目录,观察之,发现没有makefile,但有一个makefile.arm,还有一个makefile.386,于是将makefile.arm改名为makefile,然后输入命令

make

编译正常,没有出错,网上还有另外一种方式不修改makefile.arm而直接用之的方式,不过我忘了,大家可以上网搜搜。

将可执行文件servfox复制到nfs共享目录,在开发板上插上中芯微的ZC301摄像头
,再启动开发板
,挂载nfs服务器,运行servfox,出错,提示为找到到该命令,老问题,以前遇到过类似问题,原因是该命令为动态链接,而开发板上没有相关的库文件,所以无法运行,需要静态链接。

回到PC,打开makefile,将所有用到arm-linux-gcc的地方,都加上一个参数-static,其实就三个地方。

然后重新编译,在开发板上运行,输入命令:

./servfox -d /dev/video0 -g

-s 320x240 -w 7070

注意:一定要加-g这个参数,否则会出现SDL依赖之类的错误。

程序运行了,提示为

servfox version: 1.1.3 date: 11:12:2005 (C) mxhaard@magic.fr

Waiting .... for connection. CTrl_c to stop !!!!

3、编译客户端程序

客户端程序使用的是spcaview,下载地址为:
http://mxhaard.free.fr/spca50x/Download/spcaview-20061208.tar.gz

这个程序是在PC上运行的,解压后,直接编译就行,

make

生成可执行文件spcaview,运行之

./spcaview -g -s 320x240 -w 192.168.141.236:7070

就能看到图像了,也可指定分辨率为640x480,但是不如320x240流畅。

下一步讲讲如何在浏览器里直接看到图像。

前提条件:你得在开发板上安装好boa服务器,其它服务器也行。

在主机上,进入spcaview安装的目录下,是不是看到有个目录叫做http-java-applet呢,对了就是它.

我们需要把它拷贝到boa的主目录下,也就是你的DocumentRoot 的目录下,但是在做这个工作之前我们需要把这个目录的权限修改一下,chmod -R 755 /home/spcaview/http-java-applet(之前我就是没做这一步导致applet程序不能运行)这时把这个文件夹整个拷贝到boa的主目录下,然后启动boa服务器。然后再重新启动servfox,进web浏览器,输入
http://192.168.141.236/http-java-applet/index-sample.html
,便可以看到了

 

 

上个图给大家看看,这是用摄像头拍的。

 

以上驱动和servfox、spcaview的代码找不到的话可以发邮件到

pangheming@live.cn

向我索取。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息