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

技术分类: 工业电子  | 2008-05-12
来源:微计算机信息 | 付聪 ,王志良

  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方式的效率要高得多。

  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:编码结束,不返回任何句柄。

1】【2】【3
加载中

对文章的评论

剩余字数:  

浏览该文章的用户还看过...

  • 文 章

  • 论 坛

  • 博 客

  • 小 组

设计资源与分销