摄像头(WebCam)在Linux中采用Spcaserv 架设网络视频服务器 (v0.1b)
转自 http://www.chinalinuxpub.com/read.php?wid=12271、网络监控服务器的说明;
如何用摄像头做一个时时监控的系统呢?也就是说有一台网络专用临控服务器,其它客户机通过网络影像监控软件或浏览器来进行时时监控摄像头所在位置,所发生的一切。我没有弄过专业类的视频监控,也不知道他们用的是什么专业的设备,也不知道他们有什么功能。我所理解的网络监控服务器应用如下内容:
* 时时监控功能:时时监控摄像头所监视的范围; * 数据流采集功能:时时采集监控数据流,以备将来查找相关影像资料做准备; * 照片抓取功能:比如每隔5分钟抓取一张照片; * 时间戳功能; * 数据备份功能(附加);
2、Linux 用摄像头(WebCam)做网络监视服务器所需条件和要达到的目的;
我们首先定义一下我们用摄像头(WebCam)来做网络时时临控系统所需的条件和要达到的目的;
2.1 所需要的软件环境和硬件设备;
首先:得有一个摄像头(WebCam),并且是 能被 Linux 所支持的摄像头,请参考: 《摄像头(WebCam)在Linux操作系统中的驱动方法 》
其次:软件环境,我们用 Spcaserv来架设;
第三:网络环境,我们得有一个网络环境,比如我来测试我所做的网络监视系统是否成功,至少在局域网内有两台机器吧,虽然一台也能做,但至于网络的其它计算机是否能看得到,如果机器太少,我们无从得知;
2.2 所要达到的目的;
* 时间监控:能跨平台,所有的系统都无障碍查看监视; * 数据采集:可在服务器端进行,但要运行在桌面环境下;在Linux 客户端中进行;由于软件限制,只能这样说了;
3、Linux 用摄像头(WebCam)的驱动方法;
请参考: 《摄像头(WebCam)在Linux操作系统中的驱动方法 》
4、在 Linux 中用 Spcaserv架设网络监控服务器;
4.1 下载软件 Spcaview;
下载地址: http://mxhaard.free.fr/spca50x/Download> ,我下载的是目前这个版本: spcaview-20051212.tar.gz
spcaview-20051212.tar.gz软件包包含一组工具;
* Spcaview 工具是用来纪录数据流,也能用来播放数据;也能做为网络监视客户端用;
* Spcaserv 是流媒体服务器,我们就是用这个工具来做监控服务器;
* Spcacat 简单图片的抓取工具,不能用于网络监视客户端 ;
4.2 Spcaview 软件包的安装;
依赖关系;
此软件依赖 libsdl,要先安装它才行,下载地址:http://www.libsdl.org ,我下载的是:SDL-1.2.10.tar.gz
http://www.libsdl.org/download-1.2.php
[root@localhost ~]# tar zxvf SDL-1.2.10.tar.gz
[root@localhost ~]# cd SDL-1.2.10
[root@localhost SDL-1.2.10]# ./configure ; make ;make install
安装SpcaView 软件包:
[root@localhost ~]# tar zxvf spcaview-20051212.tar.gz
[root@localhost ~]# cd spcaview-20051212
[root@localhost spcaview-20051212]# make ; make install
配置可执行程序的路径:
可执行的工具被安装到 /usr/local/bin目录中,所以我们还要配置一下用户的环境变量PATH 。配置命令执行路径,在当前用户家目录下的.bashrc文件中加入下面的一行;
export PATH=".:/bin:/sbin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/X11R6/bin"
然后运行如下命令;
[root@localhost spcaview-20051212]# source .bashrc
关于路径的配置,请参考:《Linux 命令及可执行程序路径的设置》 ;《关于Linux 文件系统中路径的理解》
4.3 Spcaserv 服务器的配置和运行;
4.31 Spcaserv 服务器的运行;
Spcaserv 运行方法如下;
spcaserv [-h -d -g -f -s] [-w Port]
参数说明:
-h 查看帮助; -d /dev/videoX 指定摄像头设备,比如 /dev/video0 -g use read method for grab instead mmap -f 影像格式,默认为YUV420P,fourcc I420 jpg JPEG fourcc MJPG yuv YUV420P fourcc I420 r16 RGB565 16bits fourcc RGB2 r24 RGB 24bits fourcc RGB3 r32 RGB 32bits fourcc RGB4 -v RAW data fourcc RAWD -s 设置分辨率,宽x高 ,比如 320x240,或 640x480,或160x120; -w 指定服务器的网络地址或端口,比如 192.168.1.3:8888
4.32 Spcaserv 运行示例;
我在 192.168.1.3 这台机器做为网络监控服务器,并且指定服务器运行在 8888端口上;并且客户端监视时所显示的画面是 320x240的分辨率;
[root@localhost spcaview-20051212]# spcaserv -s 320x240 -w 192.168.1.3:8888&
4.33 配置HTTPD服务器,以便客户端能在浏览器下查看;
首先:安装和配置HTTPD服务器;
至于HTTPD服务器在Linux常用的就是Apache服务器,您可以通过您所用的发行版提供的软件包来安装,也可以自行编译安装,在 LinuxSir.Org 的网络讨论区的置顶帖子中有很多这样的帖子;安装好HTTPD服务器后,要把服务器启动起来。
在 Fedora 或Redhat 中,如果是用其所提供的 RPM包安装的,要用如下方法启动;
[root@localhost spcaview-20051212]# /etc/init.d/httpd start
其次:复制SpcaView 软件包解压目录下的 http-java-applet 目录到WEB服务器的家目录下;
比如Fedora的HTTPD服务器的默认家目录是 /var/www/html,我以我的机器来说明了,所以我要做如下的工作;
[root@localhost spcaview-20051212]# cp -R http-java-applet /var/www/html/webcam/
[root@localhost spcaview-20051212]# chown -R 755 /var/www/html/webcam
第三: 进入/var/www/html/webcam 目录制作视频首页;
[root@localhost spcaview-20051212]# cd /var/www/html/webcam
[root@localhost webcam]# cp index-sample.html index.htm
您可以用查看index.htm文件内容,可以自己改一改,也就是把洋文改成中文;根据自己的情况自己看着办吧;
5、 网络客户端监控工具介绍;
对于客户端网络监控,能跨平台的客户端只有通过浏览器了,这是最方便的方法;另外在Linux中有 Spcaview工具可用;现一一介绍;
5.1 通过浏览器监控;
5.11 安装JRE,以让浏览器支持JAVA程序;
我们可以通过浏览器来监控,利用浏览器监控可以跨平台监视,这样无论Linux、Windows、还是MacOS,或者是BSD及其它UNIX系统,只要有图形界面的浏览器,在桌面环境下就可以对摄像头(WebCam) 所“控制”的范围进行监控。
由于服务器端的WEB页面包括JAVA控件,所以您得安装 JAVA环境。要让浏览器支持JAVA插件。
在 Linux 中,您可以参考:《JRE 安装和配置,以适合JAVA程序运行所具备的环境》
在Windows中,点鼠标就可以完成操作,不再介绍了;
5.12 浏览器监控示例(跨平台);
当您安装好JRE后,在浏览器的地址栏上输入Spcaserv监控服务器地址,看能不能显示出来?比如我的服务器地址是:
http://192.168.1.3/webcam/index.htm
如图所示,我们可以看到在局域网的计算机都可以通过浏览器进行监视了;
5.2 Linux 客户端通过Spcaview;
5.21 Spcaview 进行网络时时监控;
Spcaview 是 Linux网络客户端监控工具,当然也能用于本地测试摄像头用,如果Spcaserv占用了摄像着,只能作为网络监控工具来用,通过-w参数来指定Spcaserv 服务器地址;
Spcaserv 时时监控很简单,您可以通过 spcaserv -h 来获得帮助;比如我们获取 Spcaserv服务器上的监视数据流。就可以用下面的办法;
[root@localhost ~]# spcaview -s 320x240 -w 192.168.1.3
当然您可以在服务器端运行上面的命令也可,如果在服务器端运行,得有桌面环境;
5.22 通过Spcaview 进行数据流采集;
对于数据流的采集,可以在服务器端,也可以在客户端。当然服务器端和客户端都得有桌面环境; Spcaview 工具是通过 -o 参数把数据流传到一个文件中。您也可以采用压缩数据流的办法,要用到-z参数;
[root@localhost ~]# spcaview -h 注:查看帮助;
关于通过Spcaview通过指定 Spcaserv服务器地址的办法来采集数据,我测试并成功,表现在不能写入到输出文件中,我先学习学习再说。如果您成功了,请在本文后面留言 ,谢谢。
SORRY 。。。
6、其它网络监控服务器;
7、关于本文;
8、更新日志;
2006.06.10 v0.1b 正文完成,进入修订阶段;
9、参考文档;
spcaview -h
spcaserv -h
Spcaview 软件包中的README;