0 引 言
传统的视频监控体系一般选用PC服务器的C/S(Client/Server)结构,视频服务器由核算主机和许多寄存视频的磁盘陈设组成,专门用于视频的存储和传输。流式传输选用的是边接纳边播映的准则,这需求将多媒体的编、解码和传输技能很好地结合在一起。现在多媒体的编解码技能如MPEG- 4,H.264等,能够以较小的带宽开支来完结较高质量的视频传输,但是现在的传输技能却无法满意移动视频监控的需求,由于设备的移动速度和所在位置都会严峻影响到传输。传统流媒体体系体积大、本钱高、可靠性低且移植性差,不能满意这种特别场合的使用要求。
针对传统监控技能的缺乏,本文提出了根据ARM的移动观频监控的规划与完结,规划了一种专门功用、结构简略的流媒体服务器;选用Boa作为Web服务器,并经过浏览器来监控,完结跨渠道监督;选用双缓冲技能,确保用户能够得到较好、较安稳的播映质量;使用USB无线网卡完结无线上网,免除布线的烦恼,方便地完结了移动视频监控的功用。
1 体系硬件规划
硬件渠道是整个体系运作的根底。本体系主要由流媒体服务单元、USB无线网卡、无线路由、摄像头和监控端组成。流媒体服务单元是整个体系的中心,主要由嵌入式Linux、嵌入式处理器和外围器材组成。
嵌入式处理器选用Intel XScale结构的PXA27嵌入式微处理器,最高主频可达624 MHz;参加wireless MMX技能,大大提升了多媒体处理才能;参加Intel SpeedStep动态办理电源技能,在确保CPU功能的情况下,最大极限地降底移动设备的功耗。在处理器丰厚资源的根底上,本体系扩展了64 MB Nand FLASH,64 MB SDRAM,16 MB Nor FLASH,4个USB主接口以及一个从接口。USB一主接口接摄像头,用于收集视频数据;USB一主接口接无线网卡,用于发送视频数据。无线网卡选用了 TCP/IP、NETBEUI传输协议,传输速率为11 Mb/s,5.5 Mb/s,2 Mb/s,1 Mb/s。其最大掩盖规模为35~100 m(室内)、100~300 m(室外),能较好地满意移动视频监控的要求。本体系硬件组成图如图1所示。
以PXA270为中心接纳摄像头收集到的视频数据,经过编码后经过无线网卡发送,再经由无线路由接入以太网,用户经过Internet接纳到视频信息。
2 USB无线网卡驱动
在Linux体系中,供给了主机侧和设备侧视角的USB驱动结构。从主机侧视点而言,需求编写的USB驱动程序包含主机控制器驱动和设备驱动两大类。主机控制器驱动程序归于USB驱动程序的中心,这部分在Linux内核源码中现已有很好的支撑。本节将要点介绍USB无线网卡设备驱动的完结。
2.1 USB驱动的注册和刊出
usb_ids描绘了这个USB驱动所支撑的USB设备列表。
2.2 勘探和断开函数
在编写USB无线网卡设备驱动时,很重要的一步是probe()和disconnect()函数,即勘探和断开函数,它们分别在设备被刺进和拔出的时分被调用,用于初始化和开释硬件资源。
2.3 USB恳求块(URB)
USB无线网卡自身的驱动部分的读写等操作流程有其特别性,即以USB恳求块(URB)来贯穿一直。URB是USB主机与无线网卡设备通讯的电波。
3 体系软件规划
根据ARM的移动视频监控的软件规划包含嵌入式Linux体系开发环境的树立与移动视频监控软件规划两大部分。
3.1 根据ARM的嵌入式Linux开发渠道
本方案选用了Linux嵌入式操作体系,以Linux2.6.24为根底进行削减定制自己的内核,在编译内核时保存有必要的文件体系、存储器、串口、USB、以太网驱动,将摄像头、USB无线网卡驱动以模块的方法编译,以削减编译后内核的巨细。 Bootloader选用blob,烧写blob后使用tftp协议完结Linux内核和文件体系在Flash上的烧写。在Redhat 9装置Arm-linux-gcc。树立穿插编译环境,完结流媒体服务器和Boa在PAX270上的树立。鉴于现在烧写技能现已很老练,故不具体评论。
3.2 移动视频监控软件的规划
移动视频监控软件完结的主要功用有:规划流媒体服务器收集并传输摄像头拍照的视频信息;构建嵌入式Web服务器Boa;动态网页的规划以及流媒体服务器、web服务器与浏览器之间的通讯等使命。因而体系软件结构如图2所示。
3.2.1 流媒体服务器的规划
流媒体服务器主程序用于敞开某个视频服务器端口,并不断监听端口,如有衔接恳求则树立衔接,树立后流媒体服务进程将不断向端口供给收集到的视频数据流一起也接纳客户端发送过来的视频调理指令参数。流媒体服务器主程序流程图如图3所示。
(1)收集视频数据
体系是在嵌入式Linux体系渠道上选用Video4Linux编程来收集视频的。一般摄像头是直接读视频设备,收集到视频数据并存在文件中。对文件进行操作,这样程序运转功率会很低。本体系摒弃这种办法,选用mmap(内存映射)方法截取视频数据。mmap()体系调用使得进程之间经过映射同一个一般文件完结同享内存。一般文件被映射到进程地址空间后,进程能够向拜访一般内存相同对文件进行拜访,不用再调用read(),write()等操作。选用同享内存通讯的一个清楚明了的优点是功率高,由于进程能够直接读写内存,而不需求任何数据的复制。