2012届毕业设计说明书基于Mjpg-streamer的远程视频监控系统学院:电气与信息工程学院学生姓名:陈金辉指导教师:职称讲师专业:自动化班级:0801班完成时间:2012年5月I摘要作为安防系统的重要组成部分,视频监控系统随着嵌入式技术、多媒体技术、计算机网络技术的快速发展也在不断地更新与发展。目前新兴的基于嵌入式技术的网络视频监控系统与传统的视频监控系统相比具有体积小、成本低、稳定性高、实时性好等优点,具有广阔的发展前景。本文设计并成功实现了一个基于嵌入式处理器ARM9,Linux操作系统的网络视频监控系统。首先通过两种构架方案的对比,确定了本系统采用浏览器/服务器的构架方案。并在此方案下给出了详细的系统拓扑结构图和总体程序流程图。详述了Linux内核的移植和根文件系统制作等平台搭建工作。重点讨论了在嵌入式Linux操作系统下利用linux提供的V4L2API实现对USB视频设备的视频数据采集;介绍了YUYV与RGB视频格式,MJPEG与JPEG文件格式,使用Libjpeg进行JPEG压缩;在Linux下基于TCP/IP协议的Socket编程,实现了视频数据的网络发送。最后着重论述了嵌入式WEB服务器的设计,HTTP的请求响应分析。并对本系统进行了测试。本系统采用模块化设计方法,使得设计更加简洁、高效,具有良好的扩展性和易用性,有利于系统升级。关键词:ARM9;Linux;视频监控IIABSTRACTAsanimportantpartofsecurityanddefensesystems,videosurveillancesystemisdevelopingandupdatingcontinuouslywiththetechnologicalinnovationofembeddedsystem,multimediaandcomputernetwork.Thecurrentembedded—systembasednetworkvideosurveillancesystemhasagreatprospectduetoitsbetterportability,lowercost,higherstabilityandbetterreal-timefeature,comparedtothetraditionalvideosurveillancesystem.ThispapersuccessfullydesignedanembeddednetworkvideosurveillancesystembasedonembeddedprocessorARM9andLinuxoperatingsystems.Firstofall,Throughcomparisonofthetwoframeworkscheme,browser/serverarchitectureschemeistheeventualchoicescheme.Underthisscheme,thesystemtopologymapandoverallsoftwareflowchartweregivenindetail.Then,thebuiltworkofthedevelopmentplatformsuchastheLinuxkerneltransplantationandrootfilesystemproductionarealsodescribedindetail.FocusedontheuseoftheV4L2APIoflinuxinanembeddedLinuxoperatingsystemtocapturethevideodataoutputedbyUSBvideodevices;TheYUYVRGBvideoformat,MJPEGandJPEGfileformats,andJPEGcompressionwithLibjpeg;theLinuxSocketProgrammingbasedonTCP/IPprotocol,thevideodatasentoverthenetwork.FinallyfocusesonthedesignoftheembeddedWebserver,theHTTPrequestandresponseanalysis.Andthetestresultofthesystem.Themodulardesignapproachisusedinthesystemwhichmakesthedesignmorecompactable,efficient,andeasetoupgrade.KeywordsARM9;Linux;VideosurveillanceI目录1绪论.............................................................11.1视频监控发展现状和趋势.....................................11.2课题研究的意义.............................................22方案选择与设计...................................................32.1C/S方案....................................................32.2B/S方案...................................................32.3系统总体方案...............................................43嵌入式Linux开发平台的搭建........................................63.1FL2440开发板平台介绍.......................................63.1.1S3C2440简介........................................63.1.2板载资源介绍........................................63.2嵌入式系统的构建...........................................63.2.1交叉编译工具链、NFS环境的搭建.......................63.2.2linux内核的移植.....................................73.2.3根文件系统..........................................94视频采集........................................................134.1V4L2简介..................................................134.2视频采集的实现............................................134.2.1视频采集流程.......................................134.2.2关键函数分析.......................................145格式转换与视频压缩..............................................195.1格式转换..................................................195.1.1RGB与YUV格式简介...................................195.2JPEG压缩..................................................205.2.1JPEG与MJPEG文件格式简介............................205.2.2JPEG库简介.........................................205.2.3JPEG压缩的实现.....................................216视频传输与网络视频服务器........................................256.1视频传输..................................................25II6.1.1TCP/IP协议簇基础...................................256.1.2LinuxSocket编程简介...............................256.2网络服务器................................................266.2.1多线程编程简介.....................................266.2.2HTTP简介...........................................276.2.3并发服务器线程实现.................................286.2.4HTTP请求响应线程实现...............................307调试方法与测试结果..............................................337.1调试方法..................................................337.2测试结果..................................................338总结与展望......................................................358.1总结......................................................358.2展望......................................................35参考文献...........................................................37致谢.............................................................38附录A主函数代码..................................................39附录B显示主页的HTML代码..........................................44附录C实物图......................................................4511绪论1.1视频监控发展现状和趋势近三十年来,视频监控系统的发展十分迅速,总体来看,视频监控系统的发展大致可分为三代。第一代是模拟监控时代。模拟监控技术发展较早,在20世纪90年代以前,系统以模拟设备为主。模拟视频监控系统一般由监控前端、传输设备、控制设备以及显示设备组成。监控前端一般为模拟摄像机、云台、声光电报警设备和雨刷等。传输设备一般为传输视频的同轴电缆,远距离传输可采用模拟光纤或者利用光端机进行传输。控制设备主要是视频切换矩阵,采用键盘进行切换和控制,将需要监控的图像在指定的显示设备进行显示。显示设备主要包括图像的监视器、报警指示设备等。这类系统主要应用于小范围内的监控,如大楼监控等。监控图像一般只能在控制中心查看。有线模拟视频监控无法联网,只能以点对点的方式监视现场,并且布线工程量极大。第二代是半数字时代。20世纪90年代视频监控进入