ImageVerifierCode 换一换
格式:DOC , 页数:16 ,大小:426KB ,
资源ID:882075      下载积分:10 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 微信支付   
验证码:   换一换

加入VIP,免费下载资源
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.wodocx.com/d-882075.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于嵌入式Linux视频监控系统.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(发送邮件至2622162128@qq.com或直接QQ联系客服),我们立即给予删除!

基于嵌入式Linux视频监控系统.doc

1、目录一、引言1二、嵌入式视频监控系统简介2三、系统总体设计方案4四、系统硬件选型及设计54.1 硬件开发平台54.2 bootloader概述及移植6五、系统环境搭建75.1交叉编译环境的搭建75.2 NFS环境的搭建8六、流媒体服务器设计96.1视频采集模块设计96.2 视频压缩模块设计106.3 视频传输模块设计116.4 视频解码与回放13七、嵌入式服务器137.1 Thttpd服务器的实现14八、展望与小结16一、引言随着计算机技术及网络技术的迅猛发展,公安、安防行业及生活中的发展趋势必然是全面数字化、网络化。传统的模拟闭路电视监控系统有很多局限性:传输距离有限、无法联网,而且模拟视频

2、信号数据的存储会耗费大量的存储介质(如录像带),查询取证时十分烦琐。 基于个人计算机的视频监控系统终端功能较强,但稳定性不好,视频前端(如电压耦合元件等视频信号的采集、压缩、通讯)较为复杂,可靠性不高。基于嵌入式Linux视频的网络监控系统不需要用于处理模拟视频信号的个人计算机,而是把视频服务器内置一个嵌入式Web服务器,采用嵌入式实时多任务操作系统。 由于把视频压缩和Web功能集中到一个体积很小的设备内,可以直接连入局域网,即插即看,省掉复杂的电缆,安装方便(仅需设置一个IP地址),用户也无需安装任何硬件设备,仅用浏览器即可观看。 基于嵌入式Linux的视频网络监控系统将嵌入式Linux系统

3、连接上Web,即视频服务器内置一个嵌入式Web服务器,摄像头传送来的视频信号数字化后由高效压缩芯片压缩,通过内部总线传送到内置的Web服务器上,实现视频的监控。二、嵌入式视频监控系统简介视频监控系统是安全防范系统的组成部分,它是一种防范能力较强的综合系统。视频监控以其直观、方便、信息内容丰富而广泛应用于许多场合。近年来,随着计算机、网络以及图像处理、传输技术的飞速发展,涌现出大量的嵌入式视频监控系统。1.嵌入式系统的优缺点 a、系统为专用系统,所以系统小,指令精简,处理速度快 b、系统数据置于ROMFLASH MEMORY,调用速度快,不会被改变,稳定性好 c、系统处理实时性好,性能稳定d、文

4、件管理系统更适合于大量的视频数据e、该类系统目前四路以上机型还较为少见f、在网络功能、音视频同步等方面也难令人满意。2数字网络视频监控系统的原理数字网络视频监控系统的关键设备是网络视频信号采集终端(也被称为视频服务器),网络视频信号采集终端采用嵌入式实时多任务操作系统。摄像头送来的视频信号在网络视频信号采集终端数字化后由高效压缩芯片压缩,通过内部总线送到网络接口发送到网络上,网络上用户可以直接用在PC机上用浏览器观看网络视频信号采集终端传送过来的摄像机所拍摄的图像,授权用户还可以通过计算机网络透过网络视频信号采集终端控制摄像机镜头和云台的动作或对系统进行配置操作。由于把视频压缩和网络功能集中到

5、一个体积很小的设备内,可以直接连入局域网,达到即插即用,省掉多种复杂的电缆,安装方便(仅需设置一个坤地址),用户也无需安装任何硬件设备,仅通过PC机用浏览器即可观看。3数字网络视频监控系统与其它监控系统的比较a、布控区域广阔 数字网络视频监控系统的网络视频信号采集终端直接连入网络,没有线缆长度和信号衰减的限制,同时网络是没有距离概念的,彻底抛弃了地域的概念,扩展布控区域。b、系统具有几乎无限的无缝扩展能力所有设备都以IP地址进行标识,增加设备只是意味着口地址的扩充。c、可组成非常复杂的监控网络采用基于网络视频信号采集终端为核心的监控系统,在组网方式上与传统的模拟监控和基于PC平台的监控方式有极

6、大的不同,由于视频信号采集终端输出已完成模拟到数字的转换并压缩,采用统一的协议在网络上传输,支持跨网关、跨路由器的远程视频传输。d、性能稳定可靠,无需专人管理视频信号采集终端实际上基于嵌入式电脑技术,采用嵌入式实时多任务操作系统,又由于视频压缩和网络功能集中到一个体积很小的设备内,直接连入局域网或广域网,即插即看,系统的实时性、稳定性、可靠性大大提高,也无需专人管理,非常适合于无人值守的环境。e、当监控中心需要同时观看较多的摄像机图像时,对网络带宽就会有一定的要求。三、系统总体设计方案嵌入式Linux视频网络监控系统是电工电子装置、计算机软硬件以及网络、通信等多方面的有机组合体,它以智能化、网

7、络化、交互性为特征,结构比较复杂。如果利用OSI七层模型的内容和形式,把相应的数据采集控制模块硬件和应用软件以及应用环境等有机组合,可以形成一个统一的系统总体框架,其系统总体框架示意图如图1所示。系统总体框架示意图摄像头传送来的视频信号数字化后,经过压缩,通过RS-232/RS485将数据送到内置的Web服务器,嵌入式Linux系统的 10/100M以太网口实现接入Internet网络,将现场信号送到客户端。整个系统的核心是嵌入式Linux系统。监控系统启动后,嵌入式Linux 系统启动Web Server服务程序,接收授权客户端浏览器的请求,Web Server将根据通信协议完成相应的监测。

8、四、系统硬件选型及设计4.1 硬件开发平台本系统选用飞凌公司设计生产的嵌入式开发板OK6410,该平台基于三星公司的ARM处理器S3C6410。S3C6410是由三星公司推出的一款低功耗、高性价比的RSIC处理器,它基于ARM11内核(ARM1176JZF-S),可广泛应用于移动电话和通用处理等领域;S3C6410为2.5G和3G通信服务提供了优化的硬件性能,内置强大的硬件加速器:包括运动视频处理、音频处理、2D加速、显示处理和缩放等;集成了一个MFC(Multi-Format video Codec)支持MPEG4 /H.263/H.264编解码和VC1的解码,能够提供实时的视频会议以及NR

9、SC和PAL制式的TV输出;除此之外,该处理器内置一个采用最先进技术的3D加速器,支持OpenGL ES 1.1/ 2.0和D3DM API, 能实现4M triangles/s的3D加速;同时,S3C6410包含了优化的外部存储器接口,该接口能满足在高端通信服务中的数据带宽要求。由于以上突出的性能表现,著名的苹果公司手机IPHONE就是基于S3C6410处理器。 OK6410开发板基于三星公司最新的ARM11处理器S3C6410,拥有强大的内部资源和视频处理能力,可稳定运行在667MHz主频以上,支持Mobile DDR和多种NAND Flash。OK6410开发板上集成了多种高端接口,如复

10、合视频信号、摄像头、USB、SD卡、液晶屏、以太网,并配备温度传感器和红外接收头等。这些接口可作为应用参考帮助用户实现高端产品级设计。OK6410的软件系统目前支持WinCE 6.0、 LINUX2.6.28、Android2.1以及uC/OS-II,提供标准板级支持包(BSP)并开放源码,其中包含了所有接口的驱动程序,客户可以直接加载使用。另外,该板可连接飞凌公司与之相配套使用的串口扩展板、WIFI模块、摄像头模块等。本系统采用LINUX2.6.28内核的Linux系统和飞凌公司的CMOS摄像头实现了硬件平台的搭建。系统硬件结构如图1 所示图1 系统硬件结构图4.2 bootloader概述

11、及移植BootLoader是在操作系统内核或用户应用程序运行之前运行的一段小程序。它对开发板上的主要部件如CPU,RAM,FLASH,串口等基本硬件进行初始化,建立内存空间的映射图(包括设置系统堆栈和系统启动参数区等),从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。然后跳转到操作系统内核的入口,将系统控制权交给操作系统,之后系统的运行和BootLoade再无任何关系。目前比较流行并且支持Linux操作系统的几种BootLoader有:GRUB、LILO、U-boot、vivi等。本系统采用的BootLoader为:U-Boot,U-Boot是德国DENX

12、小组开发的用于多种嵌入式CPU的BootLoader程序,应用最为广泛。因为要在开发板上运行,所以要对U-Boot进行交叉编译。U-Boot的工作过程分两个阶段,第一阶段的主要任务有:本地硬件设备初始化(屏蔽所有中断、关闭处理器内部指令/数据cache等),为第二阶段准备RAM空间,复制第二阶段代码到RAM,设置堆栈跳转到第二阶段程序入口点。第二阶段的主要任务有:初始化本阶段所使用的硬件设备,检测系统内存映射,将内核映像和根文件系统映像从Flash上读入RAM中,为内核设置启动参数,调用内核。U-Boot的移植操作,实际上就是根据嵌入式系统硬件资源,对相关的文件进行修改,包括两个方面的移植:第

13、一层面是针对CPU的移植,第二层面是针对BOARD的移植,同时需要移植相关的头文件。按照开发板说明对相关文件进行修改、编译,然后烧写到开发板的Flash中。这样就完成了U-Boot的移植。五、系统环境搭建软件平台采用的嵌入式操作系统为Linux 2.6.28,Linux 具有内核小、效率高、源码开放、内核直接提供网络支持等优点,但嵌入式系统的硬件资源有限,因此需根据实际需求对内核进行裁剪,配置所需的功能模块,然后再移植到硬件平台上。嵌入式系统的软件开发采用交叉编译调试的方式,在宿主机上安装Linux 系统,建立交叉编译环境,在宿主机编写程序代码,再利用交叉编译工具生成目标机上可用的可执行文件,

14、最后向目标机平台移植。5.1交叉编译环境的搭建交叉编译就是在一个平台上生成另一个平台上的可执行代码。在进行嵌入式开发时,由于ARM平台的系统资源有限,不可能在ARM平台上进行本机编译,因此我们可以在PC机上编译出针对ARM平台的可移植程序,然后下载到开发板上执行。要进行交叉编译,我们需要在主机平台上安装对应的交叉编译工具然后用这个交叉编译工具编译程序的源码,最终生成可以在开发板上执行的代码。目标板的系统是Linux,我们要进行Linux下的程序开发,首先要安装Linux系统。我们选用Ubuntu10.10作为主机开发环境。在虚拟机里安装好Ubuntu,由于嵌入式交叉编译时经常需要用到root用

15、户权限,为避免日后频繁要求输入密码,我们可以通过编辑/etc/gdm/目录下的custom.conf文件把Ubuntu设置为root用户自动登录。在custom.conf中添加以下内容即可。daemonTimedLoginEnable=trueAutomaticLoginEnable=trueTimedLogin=rootAutomaticLogin=rootTimedLoginDelay=30设置Ubuntu的IP地址为固定IP,方便以后程序的调试。交叉编译器我们选用飞凌公司提供的cross-4.2.2,首先将cross-4.2.2-eabi.tar.bz2文件拷贝到Ubuntu中,输入以下

16、命令安装:mkdir /usr/local/armtar jxvf cross-4.2.2-eabi.tar.bz2 C /usr/local/arm (将文件解压到/usr/locsl/arm目录下)安装好后可用/usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-gcc v 命令查看版本信息,若编译器安装成功则会显示出交叉编译器的版本信息,否则需要重新安装。为了方便日后调试程序我们可以把安装目录加入环境变量中,编辑/etc下的profile文件,加入:export PATH=”$PATH: /usr/local/arm/4.2.2-eabi/usr/bin

17、”修改完后重启系统,然后在终端输入arm-linux-gcc 若提示no input file 则交叉编译环境搭建成功。5.2 NFS环境的搭建在嵌入式开发过程中,交叉编译好的程序要在开发板上运行,就要烧写到目标板的flash上,对于应用程序,我们需要频繁调试,这样每次都要烧写一遍,严重影响开发效率。为了方便程序调试,我们搭建了NFS系统。NFS是Network File System 的简称,是分布式计算机系统的一个组成部分,用它可实现在已购网络上共享和装配远程文件系统。可以通过网络让不同操作系统的计算机可以共享数据。可以通过它把远程主机的目录挂载到本机,使得访问远程主机的目录就像访问本地目

18、录一样方便快捷。Ubuntu 上默认没有安装NFS服务器,首先要安装NFS服务程序,在终端输入:sudo apt-get install nfs-kernel-server这样系统会自动帮我们安装好NFS服务器,这样宿主机就相当于NFS Server。NFS是一个RPC服务程序,所以在使用它之前, 先要映射好端口通过portmap设定,在启动NFS之前, 需要启动portmap服务。修改/etc/exports,添加一个共享目录:/var/nfs/ *(rw,sync),其中/var/nfs/是要共享的文件夹,*是表示所有用户都可以挂载这个共享文件夹,(rw,sync)表示以读写方式挂载,并且

19、使资料同步写入存储器中。使用命令sudo exportfs -r 更新,使用命令/etc/init.d/portmap start和/etc/init.d/nfs-kernel-server restart重新启动portmap服务和nfs-kernel-server服务。在开发板上输入命令:mount -t nfs 192.168.1.242:/var/nfs /mnt -o nolock将远程主机/var/nfs目录挂在到本地的/mnt目录下。-t选项指定文件系统的类型为NFS,-o选项禁用锁定。六、流媒体服务器设计6.1视频采集模块设计视频采集模块通过嵌入式Linux 操作系统调用Vid

20、eo4Linux(V4L)和底层设备驱动程序来完成视频捕获。V4L 是Linux 中关于视频设备的内核驱动,它为Linux 下的各种视频设备提供了统一的编程接口,应用程序通过这些接口函数就可以操纵各种不同的设备。视频采集流程如图2 所示。图2 视频采集流程(1)打开视频设备。Linux 下的视频设备文件一般为“/dev/video0”,通过调用函数v4l_open( ),利用vd-fd=open(“/dev/video0”,O_RDWR)打开设备并获得设备文件描述符vd-fd。(2) 获取设备和图像信息。通过v4l_get_capability( ) 函数获取设备信息, 通过v4l_get_p

21、icture( )函数获取图像信息。(3)内存映射。获取图像的方式有两种:read( )直接读取和mmap( )内存映射。直接读取方式通过内核缓冲区来读取图像数据,而本文使用内存映射方式mmap( ),内存映射方式可以直接把设备文件映射到内存中,进程可以像访问普通内存一样对文件进行访问,读取效率更高。初始化内存映射时,需在内存中开辟一块空间,利用ioctl(vd-fd,VIDIOCGMBUF,&(vd-mbuf)操作取得需要映射的内存空间大小vd-mbuf.size,利用mmap( )函数,即vd-map=(unsigned char*) mmap(0, vd-mbuf.size, PROT_

22、READ | PROT_WRITE,MAP_SHARED, vd-fd, 0)操作,把设备文件的内容映射到内存,vd-map 指针所指向的内存区即为采集的图像数据,且此内存区具有可读写和共享属性。(4)初始化采集参数。设置采集视频图像的宽度、高度、格式等信息。(5)采集视频数据。利用ioctl(vd-fd, VIDIOCMCAPTURE, &(vd-mmap)操作采集一帧图像并存放到内存映射区,采集一帧图像后要进行同步操作,利用ioctl(vd-fd, VIDIOCSYNC,&(vd- frame_current)操作判断该帧图像是否获取完毕。对于获取到的视频图像,通过视频压缩模块压缩成MPE

23、G-4 视频流,再通过视频传输模块把数据发送到以太网进行传输。6.2 视频压缩模块设计从摄像头直接采集过来的图像由于数据量较大,不利于进行网络传输,因此需先对其进行压缩编码。MPEG-4 是目前网络多媒体传输的主要格式,具有高效的压缩率,它利用很窄的带宽,通过帧重建技术来压缩图像数据,以求利用最少的数据获得最佳的图像质量,可满足实时视频传输的要求。本文用软件方式进行视频编码,选择开源高效的Xvid 视频编码器对采集的视频图像数据进行MPEG-4 压缩编码。Xvid 视频编码器选用0.9.2 版本,因为该版本已经实现了MPEG-4 的Simple Profile(SP)特性,而1.0 以后的版本

24、增加了很多Advanced SP(ASP)特性及其他功能,ASP 特性的加入会增加运算复杂度,降低编码速度,由于嵌入式系统的处理能力有限,一般只使用Xvid 的SP 特性,因此实验选用Xvid0.9.2 编码器,交叉编译并移植到嵌入式系统内。在宿主机Linux 操作系统中对Xvid0.9.2 进行交叉编译的步骤如下:(1) 解压缩Xvid 源码:tar xzvf xvidcore- 0.9.2.tar.gz(2) 进入build/generic 目录,创建编译配置文件。由于Xvid 没有针对ARM 的汇编优化,因此编译时需将汇编关闭;还需指定程序所运行的平台为arm-linux。执行命令:./

25、configure -disable-assembly -host=arm-linux(3) 编译:make; make install 。(4) 交叉编译完成后会生成静态库libxvidcore.a 和动态库libxvidcore.so.*,用户程序可利用库文件所提供的编程接口调用Xvid 里面的函数。摄像头采集的视频帧为YUV420 格式,通过Xvid 编码器的encoder_encode 函数实现视频压缩,该函数定义如下:int encoder_encode(Encoder * pEnc, XVID_ENC_FRAME * pFrame, XVID_ENC_STATS *pResult)

26、;其中,pEnc 为编码器实例的句柄;pFrame 是XVID_ENC_FRAME 类型的结构体变量,负责传递参数信息给编码器,这些信息包含色彩空间、编码质量、输入输出数据缓冲区指针等;pResult 是XVID_ENC_STATS 类型的结构体变量,可以返回编码操作执行的状态信息。6.3 视频传输模块设计视频传输模块负责把压缩后的视频流传输到以太网,对实时性要求较高,本文使用实时传输协议(Real-time Transport Protocol,RTP),它可以在一对一或者一对多的网络环境中实现流媒体数据的实时传输。JRTPLIB7是一个利用C+语言实现的开源RTP 库,它完全遵循RFC 1

27、889 设计,使用SOCKET 机制实现网络通讯,可运行于包括Linux 和Windows 在内的多种不同操作系统上。本文使用JRTPLIB 进行实时流媒体编程,发送端操作系统为Linux,接收端为Windows。在Linux 平台上用JRTPLIB 进行实时多媒体编程前,需先对JRTPLIB 进行交叉编译。(1) JRTPLIB 初始化通过调用RTPSessionParams 类的SetOwnTimestampUnit( )方法设置一个恰当的时间戳,调用 SetMaximumPacketSize( )方法设置允许传输的最大RTP 包字节数(默认为1400 字节);通过调用RTPUDPv4Tr

28、ansmissionParams 类的SetPortbase( )方法设置发送端数据传输所用的端口号(需为偶数)。初始化完这两个变量后,通过RTPSession 类的Create( )方法创建一个RTP 会话。(2) JRTPLIB 数据传输RTP 会话创建完成后,还需指定数据发送的目标地址,RTP 协议允许一个会话包含多个目标地址, 增加或删除目标地址可通过RTPSession 类的AddDestination( ) 、DeleteDestination( )、ClearDestinations( )方法来实现。目标地址指定之后,通过RTPSession 类的SendPacket( )方法即

29、可向指定的目标地址发送流媒体数据。SendPacket( )是一个重载函数,具有多种形式,本文使用的形式为:int SendPacket(const void *data, size_t len, uint8_t pt, bool mark, uint32_t timestampinc);当一帧数据所占字节数大于允许传输的最大RTP 包字节数MaxPacketSize 时,需对一帧数据进行分割传输,使每次发送的字节数不大于MaxPacketSize,可使用SendPacket( )的mark参数来标识传输的RTP 包是否属于同一帧数据,若一帧数据需分成N 次发送,则前N-1 次发送的RTP 包

30、的mark 标志设为0,第N 次发送的RTP 包的mark 标志设为1,即以mark=1来判断分割传输的数据是否发送完成。实现过程如下:doif(lengthMaxPacketSize)mark=0;发送长度为MaxPacketSize 的RTP 包;length=length-MaxPacketSize;elsemark=1;发送长度为length 的RTP 包;break; /一帧数据发送完成while(1);(3) JRTPLIB 数据接收接收数据时,以BeginDataAccess( )函数开始,以EndDataAccess( )函数结束。为了能正确接收同一数据源的数据报,必须先对数据

31、源表(source table)加锁,BeginDataAccess( )函数可实现这一加锁操作,确保在使用数据源表的同时轮询(poll)线程不能访问它,此时可进行数据接收操作,当正确接收一个数据报后,调用EndDataAccess( )函数即可实现对数据源表的解锁。图3 RTP 发送与接收流程图RTP 发送与接收流程图如图3 所示。对于分割传输的RTP 包,根据RTP 包的mark 标志来判断一帧数据是否接收完成,若mark=0,则表示此RTP 包为分割传输的数据包,需循环接收直到mark=1 为止,然后把这些RTP 包重新组合成完整的一帧数据。6.4 视频解码与回放接收到的视频流数据经过X

32、vid 解码器的decoder_decode 函数进行解码,该函数定义如下:int decoder_decode(DECODER * dec, XVID_DEC_FRAME * frame);其中,dec 为解码器实例的句柄,frame 为XVID_DEC_FRAME 结构体变量,包含解码前后图像数据的缓冲区指针、码流长度等信息。解码后的图像可在客户端软件上显示出来。七、嵌入式服务器Linux环境下的嵌入式主流Web服务器,包括Apache、httpd、thttpd 和Boa等几种。httpd是最简单的一种Web 服务器,它的功能最弱,不支持认证,不支持CGI。如果Web 服务器仅需提供一些静

33、态页面,例如简单的在线帮助、系统介绍等,完全可以用静态服务器httpd来实现。thttpd和Boa都支持认证、CGI等,功能都比较全。若需提高系统的安全性,或需要与用户进行交互,例如数据查询、实时状态查询等,则必须使用动态Web技术,可以选择这两种服务器之一来实现。本系统采用的是基于thttpd动态服务器的实现过程。7.1 Thttpd服务器的实现.下载服务器软件下载地址:.安装宿主机上操作如下:rootlocalhost home# tar zxvf thttpd-2.25b.tar.gzrootlocalhost home# cd thttpd-2.25brootlocalhost tht

34、tpd-2.25b# ./configurerootlocalhost thttpd-2.25b# vim Makefile修改内容:(1)主要把”CC=gcc”修改为”CC=arm-linux-gcc”在此交叉编译器的版本为2.95.3。(2)把”LDFLAGS =”设置为” LDFLAGS = -static”,表示指定静态链接二进制文件,假如你的开发板上的文件系统是jffs2文件系统,那建议此项不要设置了。因为,设置了此项后,编译出来的可执行文件比较大。当把可执行文件从宿主机拷贝到开发板时,可能会提示” cp: Write Error: No space left on device”。

35、因为采用的是jffs2文件系统,是日志文件系统,拷贝文件不能超过文件系统的容量,使用df -h可以查看容量的大小。rootlocalhost thttpd-2.25b# makerootlocalhost thttpd-2.25b# du thttpd104thttpd .修改配置文件权限rootlocalhost thttpd-2.25b# chmod +777 contrib/redhat-rpm/thttpd.conf.设置配置文件thttpd.conf参数rootlocalhost thttpd-2.25b# vim contrib/redhat-rpm/thttpd.conf内容如下

36、:dir=/etc/thttpd/html #指明webserver存放网页的根目录路径chrootuser=root# default = nobody #以root身份运行thttpdlogfile=/etc/thttpd/log/thttpd.log #日志文件路径pidfile=/etc/thttpd/run/thttpd.pid#pid文件路径.在开发板端启动eb服务在开发板上操作如下:#mount 192.168.2.181:/home /mnt# cd /mnt/thttpd-2.25b/mnt/thttpd-2.25b # cp thttpd /bin/mnt/thttpd-2

37、.25b # cp contrib/redhat-rpm/thttpd.conf /etc/mnt/thttpd-2.25b # mkdir -p /etc/thttpd/html/mnt/thttpd-2.25b # mkdir /etc/thttpd/log/mnt/thttpd-2.25b # mkdir /etc/thttpd/run/mnt/thttpd-2.25b # cp ./index_1.html /etc/thttpd/html/mnt/thttpd-2.25b # cp ./index_2.html /etc/thttpd/html/mnt/thttpd-2.25b #

38、thttpd -C /etc/thttpd.conf假如要支持CGI,那么thttp.conf的配置文件修改如下:dir=/etc/thttpd/html #指明webserver存放网页的根目录路径#chroot #屏蔽chroot是为了运行动态编译的CGIuser=root# default = nobody #以root身份运行thttpdlogfile=/etc/thttpd/log/thttpd.log #日志文件路径pidfile=/etc/thttpd/run/thttpd.pid#pid文件路径cgipat=/cgi-bin/* 声明CGI程序的目录,是以dir为根目录的路径八

39、、展望与小结在今后的学习与工作中,需要对视频采集模块继续优化,因为摄像头采集的图像信息还不是很流畅,希望通过移植QT界面,来优化图像的传输,其次,网络摄像机是当今比较热门的产品,我们虽然实现了远程监控,但是相关技术还有待与优化,对服务器、客户端之间的编程模式还不是很熟悉,需要进一步学习,另外,设计中采用的ARMg芯片功能比较强大,接口比较丰富,在以后的实际工作中可以根据自己的需要,可以进行更加有效的扩展。未来的视频监控系统应该具有智能化的特点,能够自行对异常情况进行判断,并发出报警,这就需要合适的运动检测算法对监控图像进行分析判断。另外未来的视频监控系统还可具有安防互动功能,与各种传感器、控制器连接,实现自动目标跟踪等功能。在网络视频监控系统的未来发展空间中,这些功能的实现是有充分技术保障的。而且随着技术的发展和成熟,视频监控系统的成本也应该进一步的降低,将会有更广泛领域的需要。 由于我们都属于初学者,虽然最终实现了这些功能,但是对中间相关的一些模块开发,比如驱动等等还不太了解,只是做了部分修改,还有待于进一步学习掌握,论文的撰写可能有某些不足,望老师指正。

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922