网上有很多这样的文章,我写这篇文章,主要是记录我学习的点点滴滴,作为以后进一步学习好参考之用,也分享给广大同行朋友们。
源码下载:上www.pudn.com网站中,有相关的源码。本移植过程中需要包含的源码包:
Servfox

文件:
servfox.rar
大小:
17KB
下载:
下载
SDL-1.2.13

文件:
SDL-1.2.13.rar
大小:
3777KB
下载:
下载
spcaview

文件:
spcaview-20061208.rar
大小:
130KB
下载:
下载
1. 移植摄像头驱动,在我的另外一篇文章《USB摄像头(基于中星微zc301)驱动程序的移植》的文章里详细的介绍了移植方法。这里不再赘述。
2. 移植servfox。其实spcaview也可以,即可以做采集端,也可以做接收端。但是移植起来没有servfox简单,所以采集数据端选用servfox。修改Makefile文件为,
CC=arm-linux-gcc
SERVFLAGS= -O2 -DLINUX $(WARNINGS) –I/home/yuaf/linux-2.6.15/include
然后make一下,在当前文件夹下就可以看到生成的可执行文件 servfox,把此可执行文件拷贝到网络文件系统下 /home/yuaf/root_nfs/bin
在开发板中运行 servfox –d /dev/video0 –s 320x240 –w 7070,就可以看到如下的提示信息:
servfox version: 1.1.2 date: 07:10:2005 (C) mxhaard@magic.fr
Waiting .... for connection. CTrl_c to stop !!!!
说明servfox已成功运行起来了。
3. Linux上编译spcaview.由于此软件包依赖与libsdl,所以在安装spcaview之前,必须要 安
装 SDL-1.2.13.
解压源码包: tar zxvf SDL-1.2.13.tar.gz
安装源码包: cd SDL-1.2.13; 运行 ./configure 文件,编译文件 make ,安装文件 make
install。在安装的过程中,注意安装的路径,可以通过查看配置文件获得安装路径或者修改路径。
安装spcaview软件:
tar zxvf spcaview-20061208;cd spcaview-20061208;make
ok啦,在源文件目录上,可以看到三个可执行文件,
spcacat spcaserv spcaview
spcacat 简单图片的抓取工具,不能用于网络监视客户端。
Spcaserv shi 流媒体服务器,
Spcaview 工具是用来纪录数据流,也能用来播放数据,也能作为网络监视客户端用。
我们可以在Linux上运行: ./spcaview –g –s 320x240 –w 192.168.0.100:7070
其中192.168.0.100是服务器的IP地址,这样我们就可以在PC机上看见USB摄像头采集进来的数据了。
4. 移植
Web服务器,我们选用的是
boa服务器,在我的另外一遍文章中有介绍《
boa在嵌入式
Linux上的移植》有详细的介绍,这里不再叙述。
5. 接着就是通过
web浏览器浏览摄像头采集进来的数据了。在上面的
spcaview目录中,有一个目录
http-java-applet。把此目录放到
web服务器的
Documentroot目录下,注意要设置此文件的权限。
6.安装
JRE,以让浏览器支持
JAVA程序。若在
Linux下可以参照:
http://www.linuxsir.org/main/?q=node/59,对此有比较详细的介绍。若在ubuntu下,比较省事的做法是:sudo
apt-get install sun-java6-jdk. Sudo apt-get install sun-java6-jre
若在
windows下,可以在网上下载支持
windows的
jre的
exe文件。
7. 安装完之后,呵呵,就可以在windows的浏览器下输入:
http://192.168.0.100/http-java-applet/index.html
激动人心的时刻到来了。就可以看到摄像头采集进来的数据了。
总结:在整个移植的过程中也不是一帆风顺的。在最开始移植serforx的时候,运行serforx,出现 invalid …..什么玩意的。这种情况是没有找到相应的库文件。还有就是在添加了相应的库文件之后,之后出现
ervfox: /lib/libpthread.so.0: version `GLIBC_2.1' not found (required by servfox)
servfox: /lib/libpthread.so.0: version `GLIBC_2.0' not found (required by servfox)
servfox: /lib/libc.so.6: version `GLIBC_PRIVATE' not found (required by /lib/libpthread.so.0)
servfox: /lib/libc.so.6: version `GLIBC_2.4' not found (required by /lib/libpthread.so.0)
查看lib目录下,发现有相关的文件啊,这说明是编译器的版本不一致导致的。我就是换一个低一点的版本编译就不会出现这样的问题了。在windows下输入服务器网址,看摄像头采集进来的图像,最开始始终没有,第一天捣鼓了一阵,就没整了,比较郁闷。今天我在sun
java 控制台乱整了一下,输入网址,意想不到的事发生了。浏览器可以看见图像了。而且延时时间还比较小。在整个过程中收获还是蛮大的。
http://blog.chinaunix.net/space.php?uid=180411&do=blog&id=2839765