摘要
近年来,随着网络带宽、计算机处理能力和存储容量的迅速提高,以及各种视频信息处理技术的出现,视频监控进入了全数字化的网络时代。而由于Linux系统其稳定性与安全性以及成本低的特点,越来越多的企业和用户将Linux系统作为各类服务器的首选操作系统。基于以上原因,本论文着重对Linux系统下实现网络视频监控系统进行研究与开发。
本文研究了Linux嵌入式视频直播监控系统。该系统使用S3C2410作为服务器平台,在Linux2.4操作系统上进行开发。服务器端通过USB摄像头采集JPEG格式视频,然后进行RTP封装,最后通过RTP协议进行传输。客户机端以PC机为平台,接收RTP数据包,将数据组成一帧,然后进行JPEG解压缩和格式转换,得到RGB格式视频。最后,利用SDL实现了视频回放。
本文论述了系统的设计思路和实现方法。首先介绍了系统使用的硬件平台,着重描述了S3C2410处理器的一些特点及其外围设备。然后,本文介绍了系统所使用的关键技术和实现方法,包括嵌入式软件开发技术;视频采集技术;视频编解码技术:视频流传输技术;视频播放技术。文中详细介绍了嵌入式Linux下USB摄像头驱动Spca5xx-LE的移植,利用Linux的图形编程接口Video4Linux(V4L)对图像数据源的采集处理过程,以及在嵌入式Linux环境下利用JRTPLIB搭建RTP协议以支持网络传输的过程。而客户端软件的实现则建立在Linux开源软件Spcaview之上,本文通过对Spcaview结构的深入分析,利用了其JPEG解码和图像显示功能,并在此基础上添加了基于JRTPLIB的RTP传输协议,使其能够接收来自嵌入式端的图像数据,最终实现了在Windows下图像回放的功能。
实验结果表明,本文设计的系统可以通过局域网络与用户进行交互,并把采集的图像信息发送到用户手中,并且能够采集实时的流媒体视频流。系统可以稳定的运行;实时性好;图像质量良好,满足监控要求。
In recent years, with the rapid improvement of net bandwidth, computer process ability and storage capacity, with the appearance of the all kinds of video frequency process technology, the video surveillant system has gone into a digital net age. Because Linux system is a steady, safe and low-cost operation system, more and more enterprises and users take Linux as the server' s chief operation system. Thus, we propose and design a network video surveillant system under Linux system.
Linux embedded video living monitoring system uses S3C2410 as its server side CPU, and use Linux2. 4 as its operation system. Server collect video frame with USB camera, and transfer it with RTP/RTCP. Client uses a PC as a platform to receive RTP packets and decompress the video. Then transfer it to RGB format and used SDL to achieve the video playback.
This paper starts with analysis of monitoring way of video monitoring system and shows the system design by effectively combined advanced embedded technology with the technology of video and network. The project is divided in to server and client. The server complete video collection, conversion, and network transmission, video recording, remote; client complete video data reception, decoding, display, server control etc. The main part of this paper is the design of system software, and summarizes key technologies of embedded video monitoring system, including transplant of USB camera driver Spca5xx-LE, Video4Linux (V4L) Graphics Programming Interface, RTP/RTCP protocol, and made a detailed presentation for these key technologies. The client software is the realization of the establishment of the Linux open-source software Spcaview, Based on in-depth analysis of its structure, in its added on the basis of the RTP-based JRTPLIB Transfer Protocol, to achieve the ultimate in Windows image playback functions.
At last, experiments with the system show that it can interact with users by local area network system, and send image information to the user, it can collect real-time streaming video streaming. The system can run stably, with low delay; have good image quality and achieve the requiration of living video monitoring.
引文
[1]王学龙.嵌入式Linux系统设计与应用[M].清华大学出版社,2002
[2]刘瑞安.嵌入式系统的特征、研究概况与设计实现[J].自动化与仪表,2004,3:P5-8
[3]Epplin J.Linux as an Embedded Operating System,Embedded Systems Programming[J],1997(10):P59-63
[4]梁金千,张跃.Linux设备驱动程序架构的研究[J].计算机工程与应用,2002,38(8):P119-122
[5]Timothy Parker著.Linux系统管理[M].电子工业出版社,2000.7
[6]Scot Maxwell著.Linux内核代码分析[M].机械工业出版社,1996.4
[7]徐千洋.Linux C函数库参考手册[M].北京中国青年出版社,2002
[8]K.Wall等著.王勇等译.GNU/LINUX编程指南[M].北京清华大学出版社,2000
[9]David A Rusling著.朱珂等译.Linux编程白皮书[M].机械工业出版社,2000
[10]陈鹏.基于以太网控制器CS8900A实现嵌入式系统的网络互连[J].计算机应用,第28卷,第12期:P4-6
[11]王俊蜂,冯志彪.如何编写设备驱动程序[J].微机发展,2005,15(2):P25-27
[12]Craig Hollabaugh.Embedded Linux:Hardware,Software and Interfacing [J],Addison Wesley,2002:P166-172
[13]徐伟,黄浩亮,张圣华.基于Spca5xx-LE的网络图像实时采集系统的设计与实现[J].机电工程技术,2006年第35卷第10期:P60-63
[14]Michel Xhaard.Spca5xx,Spca5xx-LE,Zr364xx Webcams Driver.http://mxhaard.free.fr/spca5xx.html,2006-04.
[15]戴丽.基于Video4Linux的USB摄像头图像采集实现[R].合肥工业大学,2006
[16]Alessandro Rubini,Jonathan Corbet.Linux Device Drivers[R].Second Edition USA O' Reilly,2001
[17]Alan Cox.Video4Linux Programming[R].alan@redhat.com.2000
[18]Net source Video4Linux Kernel API Reference(Version 0.1)[M].April,1999
[19]任延珍,喻占武,胡瑞敏.基于RTP/RTCP协议的实时数据传输与同步控制策略[J].计算机工程与应用,2003,No.10:P144-147
[20]谢洪胜,毛迪林,黄晓霖,高传善.RTP和TCP在实时传输中的比较[J].微型电脑应用,2000,16:P17-19
[21]张静,叶梧,冯穗力.基于ARM9-Linux的嵌入式流媒体服务器实现[J].电视技术,2004,No.12:P40-42
[22]Karim yaghour.Building Embedded Linux System[J].O' Reilly Media,Inc.2003:P56-57
[23]邵同震,孙光民.嵌入式系统中USB总线驱动的开发及应用[J].计算机应用研究,2002,(12):P69-71
[24]宋建材.嵌入式USB设备驱动器设计[J].计算机工程,2004,12(5):P56-58
[25]苏涛,张海峰,张登福.基于USB总线的实时数据采集系统设计与实现[J].计算机应用,2004,10(1):P15-16
[26]Abdul H.Sanka.Compressed Video Communications[M].Electronic and Electrical Engineering,Wiley InterScience,25 April 2002
[27]巍鹜,张焕强,方贵明,基于Linux的USB驱动程序实现[J].计算机应用,2002,29(8):P55-59.
[28]周余,都思丹,王自强,高敦堂.应用处理器PXA270上的嵌入式Linux系统开发[J].计算机应用,2004,40(3):P32-36
[29]王卫华,陈卫东,顾岳.Linux环境下的实时视频采集[J].电子技术,2000,12(4):P42-44.
[30]李绍民,滕国库.嵌入式图像采集系统的硬件设计[J].大连海事大学学报,2004,24(5):P71-73
[31]杜春雷编著.ARM体系结构与编程[M].北京.清华大学出版社,2003
[32]王学龙编著.嵌入式Linux原理设计与应用[M].北京清华大学出版社,2001
[33]周立功等.ARM嵌入式Linux系统构建与驱动开发范例[M].北京:北京航空航天大学,2006
[34]Ingo Busse,Bernd Deffner,Henning Schulzrinne.Dynamic QoS Control of Multimedia Applications based on RTP Computer Communication[J].Computer Communications,1996,19:P49-52
[35]涂晓峰,李培玉.基于Strong Arm嵌入式Linux系统下的USB通信实现[J].计算机工程,2004,28(10):P86-88.
[36]M Tim Jones.TCP/IP Application Layer Protacols for Embedded Systems[R].CHARLES RIVER MEDIA,July 2002
[37]Dapeng Wu,Yiwei Thomas Hou.Streaming Video over the Internet:Approaches and Directions[J].IEEE Transaction On Circuits and Systems For Video Technology.VOLA 1,NO.1,February 2001:P2-20
[38]WuF.,LiS.,Zhang Y.Q.A Framework for Efficient Progressive Fine Granular Scalable Video Coding[J].IEEE Trans.On Circuits and Systems for Video Technology.2001,11(3):P332-344
[39]Carle G,Biersack E.W.Survey of error recovery techniques for IP-based audio-visual multicast application[J].IEEE Network,Nov./Dec.1997,vol.111:P24-36
[40]付聪.嵌入式视频直播监控系统研究[D].万方全文数据库,2007.