基于3G和WiFi的无线视频监控系统的设计
2015-05-05张剑龙王耀青
张剑龙,王耀青,杨 柳
(武汉科技大学 信息科学与工程学院,湖北 武汉 430081)
基于3G和WiFi的无线视频监控系统的设计
张剑龙,王耀青,杨 柳
(武汉科技大学 信息科学与工程学院,湖北 武汉 430081)
为了实现对远程环境的无线智能监控和提高用户控制体验,研究了3G和WLAN无线网络的特点,提出一种以ARM和Linux为平台,融合3G和WiFi无线网络,设计一款无线视频监控系统。利用摄像头进行视频图像的采集,使用H.264进行图像的编码压缩和RTP协议进行图像传输,借助3G网络实现远程控制传输,同时利用WiFi实现局域网络接入的补充。实验结果表明,该设计可以实现PC、平板PC、手机同时多路连接监控,3G、WiFi网络可任意切换,达到预期效果。
3G;WiFi;无线视频监控;ARM;Linux;H.264;RTP
传统的视频监控系统无论在移动性、覆盖面以及便利性上面都有很大的局限性,随着通信技术的发展,无线网络传输技术越来越成熟,3G蜂窝移动通信能提供完善的签权和计费机制,具有广覆盖、高移动性、中低的传输速率特性。WiFi作为WLAN的一个标准,其传输速率高达11 Mbit/s。从而实现WiFi和3G的融合,可以弥补3G数据传输速率受限的不足[1]。因而利用3G网络实现远程视频监控,辅助WiFi网络方便用户的接入,从而能实现二者的优势互补。嵌入式系统具有开放性和可伸缩的体系结构,实时性强并能提供统一的驱动接口,支持网络功能,对数据的远程传输提供了可靠的支持。本文以此为出发点,以ARM为平台搭载Linux操作系统,利用H.264和RTP分别实现图像的编码压缩和传输,使用3G网络联入Internet实现远程监控,借助WiFi无线网络可以迅速构建无线局域网,节省网络组建资源的消耗,并能实现3G网络共享,Linux系统应用的易加载性,为后期功能的扩展提供了很好的支持,因而使用ARM和Linux平台的无线视频监控系统不失为一种良好的解决方案。
1 系统的整个架构
该系统采用分层、分离和模块化的设计理念[2],整个系统宏观上由支撑性硬件平台、系统软件、客户端三部分组成,而每一部分又由多个子模块组成,这有助于功能的划分和提高系统的稳定性,每个部分可以并行开发,最后集成测试,缩短系统开发的周期。
1.1 系统的硬件结构设计
系统的硬件平台以三星的S3C2440为核心,此处理器采用RISC体系结构,具有低功耗、高主频等特点,而且内部集成了多种总线接口和控制器资源,如I2C、SPI、IIS音频接口,SDRAM控制器,LCD控制器,USB Slave等[3]。这种高集成度为硬件的设计带来了方便,因此很容易加入摄像头模块、3G网络模块、WiFi模块。该系统的硬件结构如图1所示。
图1 视频监控系统硬件结构
1.2 系统的软件结构设计
该系统的软件结构分为硬件驱动层、Linux操作系统层、应用程序层。硬件驱动层主要实现底层硬件驱动的功能并为上层提供操作的接口,Linux操作系统层主要负责内存资源的管理以及进程间的通信的调度等,同时为应用层提供统一的接口实现对底层硬件的控制。而应用程序层则负责视频图像的采集、检测、编码、传送、3G网络的连接、WiFi无线局域网的组建、客户端的连接请求,以及系统的整个逻辑结构的控制。系统的软件层次结构如图2所示。
图2 视频监控系统的软件层次结构
2 系统的软件设计
系统的软件设计分为底层硬件驱动和监控系统应用程序两部分。底层硬件驱动的设计分为两个阶段实现,第一个阶段在硬件平台上移植Linux操作系统时完成必要的硬件开发,这部分硬件是Linux操作系统运行的基础,如SDRAM、Nand Flash和DM9000网卡等。这部分硬件驱动是以编译进内核的形式存在。而第二个阶段则是功能性硬件驱动的开发,如uda1341声卡、摄像头、3G模块、WiFi网卡,这部分硬件的驱动采用模块化的形式加载到了内核,从而节省了耗时的内核编译过程。现从视频监控应用层选取主要功能模块进行描述。
2.1 视频采集的实现
视频采集设备的驱动是基于V4L2标准设计,视频设备属于字符设备类型,驱动中的分离分层模型使用v4l2-dev.c实现了字符设备的file_operation结构,使用v4l2-ioctl.c实现了视频设备的属性控制。视频设备驱动层主要体现在对video_device,V4L2_file_operations,v4l2_ioctl_ops结构体的设置,video_device结构体用来描述设备是一个视频采集设备,然后向核心层注册,标识该设备驱动的存在[4-5]。应用层的读写操作最后都间接调用V4L2_file_operations来实现,v4l2_ioctl_ops结构体提供对视频设备图像的提取、参数的设置。应用层利用驱动提供的调用接口来时视频图像的采集,即驱动层提供机制,应用层实现策略。视频采集的流程如图3所示。
图3 视频图像采集流程
2.2 H.264编码压缩
H.264是IEO/IEC和ITU-T两大国际标准化组织联手指定的高压缩率视频编码标准,H.264采用的是预测编码加变化编码的混合编码模式,融合了以往各个编码标准的优点,获得了更好的压缩性能,在同等质量要求的前提下,H.264的压缩比可以是MPEG-4的2倍。H.264拥有良好的结构和语法,能对速率、解析度进行灵活配置满足不同的传输需求[6]。H.264的编码架构如图4所示。
图4 H.264编码架构
H.264同时也采用帧内和帧间预测的编码方式,除了拥有预测、变换、量化、熵编码功能模块外,还增加了环内滤波功能,可以去掉马赛克效应,增加图像的编码质量。从其编码架构框图可知,编码器包含2个通路,分别是从左向右的编码通路和从右向左的解码通路。
利用H.264的开源编码器x264实现视频图像的编码压缩,获取x264的源码包后,进行配置、编译安装,然后把生成的共享库拷贝到系统的根文件目录中的lib目录中,以后调用的编码模块就能实现动态链接。当获得采集的视频图像后,编码压缩步骤如图5。
图5 H.264编码流程
2.3 视频流的RTP传输
RTP(Real-time Transport Protocol)实时传输协议主要用于多媒体数据在网络上传输,RTP协议位于UDP协议之上,它不能提供数据包的可靠传输,还必须借助RTCP协议辅助完成。
视频图像经过H.264进行编码压缩后,需要对视频的码流数据进行RTP打包传输,H264的功能分为视频编码层VCL(Video Coding Layer)和网络提取层NAL(Network Abstraction Layer),VCL数据要封装到NAL单元后,才能用来传输和存储。其NAL单元的数据格式如图6所示。
图6 NAL单元
其中NAL头由1个字节组成,F为1时表示此帧错误,NRI表示NAL单元的重要等级,值越大重要性越高,TYPE表示NAL单元的类型,取值0到32,在对NAL单元进行RTP包封装时会用到此类型参数。EBSP为扩展字节序列,是在RBSP的基础上添加访校验字节0x03,主要是为了和起始码相区别;RBSP为原始字节序列载荷,是在原始编码数据SODB后面添加了结尾比特,1个比特1或若干个比特0用于字节对齐。RTP协议就是以NAL单元进行打包封装,RTP包主要由RTP固定包头和有效数据载荷构成。
H264码流中每一个NAL单元都会添加一个起始码0x000001,从而在码流中可以分离出每一个NAL单元,在IP网络中进行数据传输IP数据报文都会有限制,当数据超过最大传输单元MTU(Maximum Transmission Unit)时,数据就会进行分割分批传输,然而IP传输是不可靠,这导致RTP包被分割后丢失的可能性增大,以致影响接收端数据的恢复,因而一般采用对NAL单元进行分类处理,相应的组包策略如下[7]:
1)每个NAL单元单独封装成一个RTP包,针对NAL单元小于MTU,此为单一模式。
2)多个NAL单元组合成一个RTP包,而且RTB的大小不超过MTU,此为组合模式,这有利于提高传输效率。
3)对于NAL单元超过MTU时,对NAL单元进行分割,分别进行RTP封装,此为分片模式。
对NAL单元进行组包,最终的目的都是使每一个RTP包都能完整传输,保证数据的可靠性。
2.4 3G网络模块
3G网络具有高速的数据下载能力,相比2.5G(GPRS/CDMA1x)100 kbit/s的速度,3G在高速运动的情况下能达到144 kbit/s,低速时能达到384 kbit/s,静止状态能到达 2 Mbit/s, 在传输声音和图像的速度上相比2G/2.5G有明显的提高,因而非常适合传输视频数据。
2.4.1 3G拨号联网
首先配置内核支持PPP(Point-to-Point Protocol)和支持USB串口模块加载;下载安装libusb库和编译usb_modeswitch;然后根据设备属性编写配置文件,使用usb_modeswitch进行模式切换[8];对生成的驱动模块进行加载安装,根据不同的3G标准设置相应的拨号配置脚本;最后使用pppd call xx-dailer进行拨号连接,此时就可以访问Internet。
2.4.2 DDNS技术的定向访问
DDNS为动态域名服务,目的是将动态IP地址映射到一个固定的域名解析服务上,用户每次接入Internet时,客户端都会把主机的IP信息传递给服务商的服务器,服务器提供DNS和动态域名解析[9],其工作模式如图7。
图7 DDNS工作模式
DDNS采用客户端和服务器的模式,DDNS客户端每次捕获到动态变化的IP时,都会向DDNS服务器发送更新域名和IP对应的请求,DDNS服务器收到请求后,会向DNS服务器发送重新建立域名和IP映射的请求,DNS服务器则会对动态变化的IP实现更新。这样用户只需通过域名访问,无需记住IP。系统使用3G模块实现拨号联网,但是每次连接时,所分配的IP地址不是固定的,因此首先申请获得一个固定的域名,然后在系统中添加DDNS客户端,每次进行3G拨号连接时,DDNS客户端就会把IP发送给DDNS服务器实现域名绑定更新。
2.5 WiFi无线模块
WiFi采用的是IEEE802.11b协议,具有频带宽、传输速率快、组网方便以及费用低等特性,已成为各种通信技术的补充。WiFi有两种类型的拓扑结构,基于AP组建的基础网和STA形成的自组网。支持多种安全认证机制,包括WEP/WPA-PSK/WPA2-PSK,能实现快速联网和无线漫游。
2.5.1 WiFi无线网络的组建
本系统使用WiFi模块用于AP热点模式,采用WPA2-PSK认证方式,通过移植hostapd来实现AP热点的建立,具体参数配置如下:
interface=wlan0//WiFi网卡接口
driver=nl80211//对应的驱动
ssid=3G-WIFI//无线接入点名称
channel=1//设定无线频道
//认证加密方式,使用WPA2-PSK
macaddr_acl=0//mac地址过滤规则,0表示允许
auth_algs=1//认证算法,1表示开放性认证
ignore_broadcast_ssid=0//
wpa=2//wpa的类型,即启用WPA2
wpa_passphrase=yourpassword//连接登入密码
wpa_key_mgmt=WPA-PSK//加密认证方式
wpa_pairwise=TKIP//对应WPA
rsn_pairwise=CCMP//对应WPA2
建立AP热点后,相当于建立了一个无线局域网,任何外部设备都可以连接进来,同时使用dhcpd来进行局域网内IP的自动分配。其配置参数设置如下:
subnet 192.168.1.0 netmask 255.255.255.0{
range 192.168.1.10 192.168.1.100; //IP分配区间
option domain-name-servers 192.168.1.1;//DNS
option routers 192.168.1.1;//路由
}
上面的配置参数主要设置WiFi局域网内IP地址的分配范围以及数据流的IP路由端口。
2.5.2 3G网络的共享
3G模块实现Internet接入,WiFi模块实现局域网的组建和外部终端的接入,3G和WiFi分别位于不同网段,为了实现WiFi局域网内的用户共享3G网络,必须实现数据转发功能,实现内网到外网访问通常使用位于网络层的包过滤防火墙和位于应用层的代理服务型防火墙来实现,而实际中使用两者的融合,先检查网络层数据然后再转发到应用层进行二次检查。
Linux内核中有一个netfilter组件,用于扩展各种网络服务,它提供5个hook function并向用户开放,从而用户可以用iptables向netfilter传递规则,用于内核确定如何处理数据包。iptables使用地址转换来实现网路共享[10]。现在添加iptables规则实现WiFi局域网内的用户能访问3G网络。
往/proc/sys/net/ipv4/ip_forward文件写入1开启内核路由功能,然后清空表中所有链表,设置INPUT,OUTPUT,FORWARD 为ACCEPT,即允许接收、输出、转发,最后使用 iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE实现内网地址到ppp0的转换。
通过上面的设置就可以使用WiFi访问3G网络的资源了,在该系统中编写各种模式的配置脚本,同时利用mdev机制,配置脚本自启动,在系统初始化时就使WiFi无线网卡工作于指定的模式。
3 Web客户端
该视频监控系统采用B/S模型[11],Web浏览器采用的是http协议,http协议是基于TCP协议之上的应用层协议。http协议主要分成请求协议和响应协议,服务器软件主要负责解析http请求数据,并构造http响应数据包。对于Web的连接请求,通过在Web页面中嵌入ActiveX控制来完成[12], ActiveX使用MFC库来实现,主要实现对接收的RTP包的去封装,对H.264视频流进行解码播放,ActiveX最后要封装成cab类型的文件,并嵌入到HTML页面中,其格式如下:
其中id为控件的名称;width,height指定视频显示区域;classid用于唯一对应该控件;codebase指定控件下载的路径;param描述控件的属性,如IP、端口。使用浏览器进行远程监控时,会进行ActiveX的自动下载安装,然后Web页面开始实时显示视频图像。
4 系统的测试运行
在ARM平台上移植Linux操作系统后,并制作根文件系统。然后加载声卡、摄像头、3G、WiFi网卡的驱动模块,编写启动脚本实现3G模块的自动拨号连接、DDNS客户端的自启动和WiFi网卡工作模式的设置,并设置环境的变量,最后运行测试系统。使用手机先连接到新生成的AP热点或直接利用3G网络进行连接,然后通过浏览器输入事先申请的固定域名访问,立即出现预先设计好的页面,页面中视频区域用于显示图像,控制区域可以实现视频设备属性的设置,同时可以设置拍照、预警、光控、电源管理等功能。测试结果表明达到预期效果。
5 总结
3G和WiFi网络的结合,可以进一步扩展监控的区域,实现网络的共享,网络费用会进一步降低,同时用户使用更加方便,在智能家居、安防监控以及不适合布线的地势区域等都能得到有效应用,ARM和Linux的灵活性对系统扩展提供了有力的支持,可以完全按照个人要求来定制,系统设计中对各个模块都进行功能的划分和单独设计,这有利于新功能的加入,而且给后期系统的维护和升级带来很大的便利。
[1] 苗俊峰,马春光,黄予洛,等.3G-WLAN安全接入方案的研究与分析[J].信息网络安全,2014(10):24-30.
[2] JONATHAN C,GREGKROAH H,ALESSANDRO R. Linux device drivers 3rd[EB/OL].[2014-12-30].http://lwn.net/Kernel/LDD3/.
[3] Samsung.S3C2440Adatasheet[EB/OL].[2014-12-30].http//www.samsung.com/Products/Semico-nductor/FLASH/TechnicalInfo/Datasheets.html.
[4] 王建新,张凯,王秀.基于S3C2440的视频采集及传输系统设计[J].电子器件,2013,36(3):367-370.
[5] 王飞,孔聪. 基于V4L2的Linux摄像头驱动的实现[J].电子科技,2012,25(2):86-87.
[6] 潘国辉.安防天下2:智能高清视频监控原理精解与最佳实践[M].北京:清华大学出版社,2014.
[7] 李校林,刘海波,张杰,等.RTP/RTCP/RTSP在无线视频监控系统的设计与实现[J].电视技术,2011,35(19):89-92.
[8] 闫巧,牛军军.嵌入式3G路由器的设计与实现[J].计算机工程与设计,2013,34(3):868-872.
[9] 田建勇,石林江.基于DDNS的移动嵌入式Web服务器的接入方案[J].电视技术,2013,37(15):122-125.
[10] 赵亚楠,马兆丰.Linux中Netfilter/iptables的研究与应用[J].信息通信,2013,9:61-62.
[11] 许春杰,杜仲.基于ARM9260的嵌入式无线Web设计与实现[J].电视技术,2013,37(13):83-85.
[12] 刘晓梅,王彦永,魏立峰,等.基于IE浏览器H.264视频播放插件的实现[J].计算机系统应用,2009,18(3):161-163.
张剑龙(1987— ),硕士生,主要研究方向为嵌入式应用开发;
王耀青(1961— ),教授,硕士生导师,主要研究方向为控制理论与应用、计算机控制;
杨 柳(1989— ),硕士生,主要研究方向为计算机控制。
责任编辑:时 雯
Design of Wireless Video Monitoring System Based on 3G and WiFi
ZHANG Jianlong,WANG Yaoqing,YANG Liu
(SchoolofInformationScienceandEngineering,WuhanUniversityofScience&Technology,Wuhan430081,China)
In order to achieve the wireless intelligent monitoring of the remote environment and improve the user’s control experience, the characteristics of 3G and WLAN wireless network are studied, an idea of developing a wireless monitoring system is proposed,using ARM and Linux as a platform, integrating contents of 3G and WiFi wireless network. The camera is used for video image collection, H.264 is used for image compression and RTP protocol is used for image transmission, to realize remote control transmission of 3G network, WiFi is used to realize the supplement of local area network access. Experimental results show that PC, tablet, mobile phone can connect the system at the same time, 3G and WiFi network can switch to each other, the outcome achieves the desired effect.
3G;WiFi;wireless video monitoring;ARM;Linux;H.264;RTP
TN929.5
B
10.16280/j.videoe.2015.16.016
2015-01-24
【本文献信息】张剑龙,王耀青,杨柳.基于3G和WiFi的无线视频监控系统的设计[J].电视技术,2015,39(16).