Linux嵌入式视频直播监控系统

发布者:大头玩家最新更新时间:2012-03-26 来源: 微计算机信息 关键字:视频监控  MPEG-4  RTPRTCP  帧缓冲 手机看文章 扫描二维码
随时随地手机看文章

1 引言

近年来,随着网络带宽,计算机处理能力的极大提高和人们安全防范观念的加强,视频监控领域进入了高速发展的数字化的网络时代。但嵌入式处理器具有低功耗、体积小、经济、稳定的特点;Linux作为一个开源软件,具有成本低廉的优势,同时兼具安全、稳定的特点。因此,以嵌入式处理器作为硬件平台,以 Linux作为软件平台的视频监控系统能够结合两者的优点,必将成为未来的发展方向。本文介绍了一种Linux嵌入式视频直播监控系统的设计和实现方案。

2 系统概述

图 1 系统结构图

系统采用服务器/客户机架构,分别使用Intel Xscale PXA270、PXA255作为服务器、客户机硬件平台,并基于Linux (kernel version:2.6.12)操作系统进行开发。服务器采集视频,压缩后通过局域网传递给客户机;客户机接收数据,解压缩后播放。

服务器通过USB摄像头采集YUV格式视频,然后进行MPEG-4压缩,将压缩后的MPEG-4帧进行RTP封装,并通过RTP协议进行传输。客户机接收RTP数据包,将数据组成一帧,然后进行MPEG-4解压缩,得到YUV格式视频。然而计算机只能显示RGB格式视频,因此通过图像格式转换成 RGB格式。最后,利用Linux下的帧缓冲机制进行写屏,从而实现了视频回放。

3系统软件设计与实现

3.1V4L视频采集

Video4Linux(简称V4L)是Linux中关于视频设备的内核驱动,它为针对视频设备的应用程序编程提供一系列接口函数,这些视频设备包括现今市场上流行的TV卡、视频捕捉卡和USB摄像头等。对于USB口摄像头,其驱动程序中需要提供基本的I/O操作接口函数 open,read,write,close的实现、对中断的处理实现、内存映射功能以及对I/O通道的控制接口函数ioctl的实现等,并把它们定义在结构体file_operations中。这样当应用程序对设备文件进行诸如open,close,read,write等系统调用操作时,Linux内核将通过file_operations结构访问驱动程序提供的函数。

具体采集工作通过操作ioctl和mmap系统调用进行实现。ioctl实际上是input/output control的缩写。ioctl系统调用的功能就是通过打开的文件描述符对各种文件尤其是字符设备文件进行控制,完成特定的I/O操作。在本系统中,使用ioctl(fd, VIDIOCGCAP, &cap)以获取摄像头基本信息;使用ioctl(fd, VIDIOCGMBUF, *mbuf)以获取摄像头缓冲区信息;使用ioctl(fd, VIDIOCMCAPTURE, &mm)进行图像捕捉;使用ioctl(fd, VIDIOCSYNC, &frame)等待捕捉完该帧图像。mmap调用的功能是实现内存映射,即将指定文件或对象的一部分映射到内存中去。这样可以通过访问特定的内存区域来直接对文件或对象进行存取。与read和write。调用相比,这种I/O方式的效率要高得多。[page]

3.2MPEG-4压缩和解压缩

MPEG是Moving Pictures Experts Group(运动图像专家组)的缩写。MPEG-4由MPEG制定,并于1999年2月正式成为ISO/IEC 14496国际标准。MPEG-4的压缩方法不同于MPEG1/2或H.263+系列标准,它是基于对象的多媒体数据压缩编码国际标准,定义的是一种框架、一种格式,而不是一种具体的算法。它在多媒体环境下提供的基于不同对象的处理方法对自然或合成的音频、视频进行压缩编码,由一系列支持在该应用领域下的工具组成,能够针对不同的应用组合使用不同的编码工具,提供如形状编码、运动估计和运动补偿编码、纹理编码和容错编码等技术。

本系统借助于MPEG-4开源库Xvidcore作为编/解码库。具体选用版本1.1.2。Xvidcore中所有的编码工作都是通过编码函数xvid_encore执行的,xvide_encore函数定义如下:

int xvid_encore(void * handle,  int opt, void * paraml, void * param2);

其中opt为编码所要做的操作,opt有以下三种操作:(1)XVID_ENC_CREATE:创建一个新的编码器,则param1为 XVID_ENC_PARAM, handle为新编码的句柄;(2)XVID_ENC_ENCODE:编码一帧,则param1为XVID_ENC_FRAME, param2为XVID_ ENC_ STATS或NULL;(3)XVID_DEC_DESTROY:编码结束,不返回任何句柄。

Xvidcore的所有解码工作都是由xvid_decore实现的,xvid_decore函数定义如下:

int xvid_decore(void * handle,  int opt,  void * param1, void * param2);   

其中opt为解码所要做的操作,opt有以下三种操作:(1)XVID_DEC_CREATE:创建一个新的解码器,则param1为 XVID_DEC_PARAM,handle为新编码的句柄;(2)XVID_DEC_DECODE: 解码一帧,则param1为XVID_ENC_FRAME;(3)XVID_DEC_DESTROY: 关掉解码器,不返回任何句柄。

系统通过采集模块采集得到YUV420格式的视频帧存放在缓冲区中,Xvidcore取出该缓冲区存放的原始帧数据,调用xvid_encore函数进行编码。接收端调用xvid_decore函数对收到的帧进行解码。从而实现了MPEG-4的压缩和解压缩。

3.3RTP传输

实时传输协议(Real-time Transport Protocol,RTP)是在 Internet 上处理多媒体数据流的一种网络协议,利用它能够在一对一(unicast,单播)或者一对多(multicast,多播)的网络环境中实现传流媒体数据的实时传输。我们采用开源代码Jrtplib提供的RTP协议栈。最新的Jrtplib对RFC3550的实现进行了封装,使用C++语言开发,能够在多种平台如Linux和Windows下运行。

在网络带宽比较低的情况下,数据丢帧现象比较严重,这对于图像质量有很大的影响。我们采用拆帧以后再发送的方法,来降低丢帧率。接收端收到数据后,再把属于同一视频帧的数据组合起来。由于目前常用网络是802.3的10Mb/s系统,而该系统最大有效载荷为1500字节,因此设置1400为RTP包大小上限。网络发送接收程序流程图如图2所示。

图2 网络发送接收程序流程图[page]

       简单的说,发送端发送RTP包到Client端,发送的时候是分批以数据包的形式发送到Client,就是说发送一个RTP包需要几次数据包发送来完成。发送成功以后发送下一个数据包,通过调用Jrtplib中函数SendPacket()实现;

接收端依次循环调用函数GetNextPacket()来接收某一RTP包的数据,数据包到来不是按顺序到来的,完全接收到RTP包所用的数据包以后,根据时间戳对所接收的数据包重新排序重新生成最初的RTP包。接收成功后,调用函数GotoNextSourceWithData()开始接收下一个 RTP包。

3.4写framebuffer进行播放

framebuffer设备是图形硬件的抽象概念,意指某些视频硬件的帧缓冲,使得应用软件可以通过定义好的接口访问图形硬件。 framebuffer将显示的象素点看成是内存的映射,屏幕上每一个点对应framebuffer内存中相应的单元。帧缓冲设备为标准字符设备,主设备号为29,次设备号从0到31,分别对应/dev/fb0-/dev/fb31,默认为/dev/fb0。通过/dev/fb0,应用程序主要完成以下几种操作:

1. I/O控制(ioctl)操作:对于帧缓冲设备,对设备文件的ioctl操作可读取 (FBIOGET_SCREElVINFO,FBIOGET_SCREElVINFO)和设置(FBIOPUT_VSCREElVINFO, FBIOPUT_FSCREElVINFO)显示设备及屏幕的参数,如分辨率、显示颜色数、屏幕大小等。

2. 映射(mmap)操作:工作在保护模式的应用程序有自己的虚拟地址空间,但不能直接访问物理缓冲区地址,为此可以使用mmap函数将文件的内容映射到用户空间。之后用户就可以通过读写这段虚拟地址访问屏幕缓冲区在屏幕上绘图了。

4结束语

本文提出了一种Linux视频直播监控系统的设计和实现方案。经过对系统的测试表明:当客户端向服务器请求现场音视频流时,服务器端立刻向通过客户端发送音视频流,客户端软件实时接收、实时解码、实时播放,都能流畅的播放出清晰画面,无明显抖动和延时。服务器和客户机可以稳定运行。服务器稳定后,CPU利用率达60%-70%,客户机稳定后,CPU利用率达70%-80%。系统稳定后,占用带宽约400kbit/s-500kbit/s,播放帧率约14f/s,能够满足一般情况下视频监控要求。

本论文的新见解主要体现在:

(1)提出了一套简单易行的流媒体直播系统解决方案,并将其应用于嵌入式平台。

(2)传输过程中对RTP数据包的大小进行控制,大大降低了丢帧率。

参考文献:

[1]陈章龙等. 嵌入式技术与系统——Intel XScale结构与开发. [M]北京 北京航空航天大学出版社,2004

[2]鲁比尼. Linux设备驱动程序(第二版) [M] 北京:电力出版社,2002

[3]钟玉琢. 流媒体和视频服务器. [M] 北京:清华大学出版社.2003. 6

[4]吴昱军. 媒体实时传输协议及其在视频传输系统中的运用.微计算机信息.2003.19

关键字:视频监控  MPEG-4  RTPRTCP  帧缓冲 引用地址:Linux嵌入式视频直播监控系统

上一篇:嵌入式系统中设备控制函数实现的分析
下一篇:PXA272启动引导程序的实现和功能扩展

推荐阅读最新更新时间:2024-03-16 12:56

视频监控系统所面临的知识体系重构挑战
  任何行业的任何岗位都有与之适应的知识体系和技能结构,构建这些必要的知识体系和技能结构是相应从业人员生存、发展的前提。   视频监控已经毋庸质疑的迈入了IP时代,监控的系统架构和技术构成都有了质的变化,系统结构由原先的模拟封闭系统逐步转变为数字化、网络化的开放系统,其“监、控、存、查、管”各项职能的实现方式也无一例外的发生了变化,其技术元素由传统的以模拟电子、自控、机电为主体向网络、通信、软件、存储等IT类技术转变。比技术变革更深远的,监控的建设、运营和管理模式也发生了相应的变化。 于是,视频监控圈子里的所有人,无论是以前做安防的,还是以前做IT的,不管他从事的是技术岗位、营销岗位还是管理岗位,都面临着类似的挑战,即无论
[安防电子]
浅谈视频监控存储的三大格局与六种方式
存储在视频监控领域的发展与视频监控本身的发展有着密切的联系。模拟视频监控中图像的采集、传输和显示都基于模拟设备,图像的存储也基于模拟设备,即磁带录像机(VCR)。由于使用的是录像带,一方面存储容量受到很大限制,另一方面图像检索非常烦琐,而且还无法实现远程调用,另外,在保存时间、系统维护等方面也都有着明显的缺陷。 存储发展与常用技术 90年代末,基于数字信号处理(DSP)的数字化视频监控逐渐开始普及,各类编解码技术在图像处理方面获得了广泛应用,经过处理后的图像也可以以数字码流的方式进行传输,图像的存储也开始进入数字化时期。最典型的应用是数字硬盘录像机(DVR),采用在内置硬盘的方式进行图像存储。 这种存储
[安防电子]
高清视频监控突飞猛进 五大单元要把握
    东莞市樟木头镇共投入两千多万建设高清视频监控系统,高清摄像头安装工程从8月25日正式施工,目前已接近尾声。在全面调试后,1131个高清视频监控头将本月下旬投入使用。由此可见,高清视频监控越来越受到人们的重视。     高清视频监控系统在平安工程中所扮演的角色越发重要。如何保证高清监控尤其是网络高清监控的质量成为所有业界人士关注的重点,总结全国各地高清监控实施经验,一个好的高清监控系统,往往需要从整体到细节全方位立体化地进行质量技术提升,才可能让高清监控为人民群众的生命财产安全保驾护航。     网络高清视频监控在平安城市中的应用越来越多,更多的用户愿意并喜欢上了高清视频监控,高清所带来的超高画质、超宽场景给人以极大
[安防电子]
2016年视频监控行业潜在的四大商机
2016年过完一大半,马上要进入安防行业传统旺季了,看着订单就要来了,你说没有机会?在别人看来没有的机会或许恰恰就是你的机会。    2016年是安防行业的重大变革的一年,慧中君认为,从实实在在的市场来讲(不谈遥不可及的方向),目前安防行业的市场机会主要有这几大方面:    一、1080P    1080P(通俗名:200万)是所有安防人2016年期待的产品,因为720P、960P(通俗名:100万、130万)被玩坏了,所有的从业者没有利润,饿肚子无力吆喝阶段,急需新产品,新方案,新粮食。为什么是1080P?因为1080P是用户最满意的分辨率,而且成本上也是用户最能够消费得起的。例如:电视屏最便宜的都是1080P,手机屏
[安防电子]
云应用 视频监控存储技术进化史简析
    大数据时代数据存储量呈现爆炸式增长,随着IT网络技术的蓬勃发展和视频监控数字化、网络化、高清化、智能化的逐渐成熟,视频监控前端摄像机视频采集技术也在飞速发展。   除了上帝,谁都离不开数据.从早期的10万像素到今天的200万、500万像素,视频清晰度越来越高,视频画面中的信息量也越来越丰富。作为安防视频管理系统信息的最终集散地,存储技术引发了行业变革。那么,追根溯源,我国视频监控存储技术,经历了哪些变革呢?   被遗忘的存储记忆   第一代存储是早期的监控系统采用的VCR存储,VCR存储实现了最基本的记录功能或记忆功能。这个存储技术在2000年初较为盛行,韩国品牌为主,国内企业较少涉足。由于年代较于久远,而且磁
[安防电子]
世博会中国国家馆视频监控录像存储技术浅析
  世博会中国国家馆简介    上海世博会中国国家馆建筑外观以“东方之冠”的构思主题,表达中国文化的精神与气质。国家馆居中升起、层叠出挑,成为凝聚中国元素、象征中国精神的雕塑感造型主体——东方之冠;地区展馆水平展开,以舒展的平台基座的形态映衬国家馆,成为开放、柔性、亲民、层次丰富的城市广场;二者互为对仗、互相补充,共同组成表达盛世大国主题的统一整体。国家馆、地区馆功能上下分区、造型主从配合,空间以南北向主轴统领,形成壮观的城市空间序列,形成独一无二的标志性建筑群体。综合国家馆的结构和独特的造型,视频监控系统的建立可以有效保障场馆日常运行,其系统建设也是很具有挑战性的。    世博会中国国家馆视频监控系统特色   为了满足世
[安防电子]
世博会中国国家馆<font color='red'>视频监控</font>录像存储技术浅析
用定制DSP设计MPEG-4无线视频产品
  MPEG-4是一种新兴的视频标准,其弹性纠错能力和可支持小屏幕的特性使之在移动通信市场上受到广泛关注,几乎所有移动电话生产商和PDA开发商都对其表示出极大的兴趣。然而这种视频标准对处理器的要求却非常高。在整个移动通信结构中,仅MPEG-4处理器这一部分就会毫不客气地吞掉大量的资源。因而要想真正实现无线视频应用这一梦想,首先就必须解决MPEG-4信号处理问题。   工程师们已经尝试过采用固定编码逻辑和通用型DSP来完成这一庞然大物般的MPEG-4处理,但结果均不理想。固定编码逻辑虽然能够提供较高的性能,但设计和实现所需的时间太长,而且得到的设计结果不够灵活,无法满足将来修改的需要。而通用可编程数字信号处理器(DSP)尽管很适合
[嵌入式]
智慧社区下的智能安防系统
让社区更安全,一直是最朴素也最急切的愿望,人人都希望能生活在一个“出入平安”的环境里。物联网和互联网的发展,涌现出一大批关注这件事的企业,共同寻找解决方案。 视频监控 :视频监控,是通过安装监控摄像头,让社区的每一寸土地都处于被监控中。传统的设备是只能“监”不能“控”,需要有人值守在电视墙前,时刻关注屏幕上的动静。人脸识别技术的成熟,带来了视频监控行业的一次变革。人物信息识别、联动报警等已经可以实现。 人脸识别领域的四大独角兽商汤、依图、 旷视、云从,已经先后拿到了几个亿的融资,并且深入与政府的合作。 智能门禁:出入口的重要性,自不必多说。若是严管的社区,进出刷卡,访客登记。但是存在的问题不少:卡片容易被复制;访客管理不便等。于
[安防电子]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved