基于DirectShow的无线音视频采集与传输系统的

点赞:11837 浏览:46542 近期更新时间:2024-03-25 作者:网友分享原创网站原创

摘 要 :文中,针对基于3G无线网络的视频会议系统的应用,采用DirectShow 架构,设计音视频数据的采集、编码、网络传输、解码及回放的解决方案,并根据RTP/RTCP协议原理,实现音视频的同步实时传输.在此基础上实现了无线音视频采集与传输系统.


关 键 词 :DirectShow 音视频采集 RTP/RTC 实时传输

中图分类号:TP391 文献标识码: A 文章编号:1007-9416(2011)12-0044-02

1.引言

在信息时代,伴随着视频处理, 数字信息存储技术的不断发展,视频会议系统越来越受到人们的青睐.近些年来,基于3G的无线视频会议系统在视频会议系统中更是倍受人们的关注.由于视频信号所包含的信息量大,传输网络所需的带宽也很大,因此需要对采集的视频进行压缩,然后通过网络进行实时传输.

本文采用DirectShow实现音视频采集、压缩以及基于RTP/RTCP协议的无线网络传输,视频压缩采用H.264标准,RTP/RTCP保证音视频实时同步,以此实现无线视频会议系统.

2.基本原理

2.1 DirectShow技术

DirectShow是Microsoft为了能够简单、有效地进行流媒体处理而推出的一个基于Windows平台的流媒体处理开发包.它对流媒体的捕捉、回放提供了强大的支持,使用它还可以在基于WDM(Windows Device Modal)驱动的各种采集卡上进行数据捕捉.基于它的优点我们采用DirectShow进行视频采集.

DirectShow主要由过滤器图表(Filter Graph)构成,过滤器图表中包含了各种Filter,这些Filter能够按一定顺序连接在一起,构成一条流水线,最后交由Filter Graph Manager统一控制.

过滤器根据功能不同分为三类[1]:(1)源过滤器(Source Filter),它引入数据到过滤器图表中,数据来源可以是文件、网络、照相机等.获取的数据传输至下一级过滤器.(2)变换过滤器(Tranorm Filters),主要负责数据的格式转换.(3)渲染过滤器(Rendering Filter),渲染过滤器在过滤器图表里处于最后一级,它们接收数据并把数据提交给外设.

2.2 视频采集的实现

DirectShow采用WDM驱动模型进行视频捕捉.WDM是纯32位模型,对于不同的设备具有统一的结构,最重要的是DirectShow与WDM的紧密结合,在系统核心提供了基于WDM的驱动程序的过滤器和接口,大大提高了视频捕获的速度和质量.由于DirectShow对视频捕获、回放提供了强大的支持,大大增强了系统对不同硬件的通用性和适应性.因此,在DirectShow开发环境中,通过WDM视频采集过滤器(WDM Video Capture Filter)可以非常简便地对基于WDM驱动的采集卡采集进来的视频数据进行捕捉.

基于WDM的采集设备有很多种,本视频采集系统采用的是USB2.0摄像头.视频信号经摄像头进入计算机,然后系统的软件部分通过摄像头的驱动程序来采集视频数据.

2.3 RTP(Real-time Transport Protocol)/RTCP (Real-time Traner Control Protocol)协议

RTP网络实时传输协议专门用于网络传输多媒体数据流,将需要发送的多媒体数据块(音视频)经过压缩编码后,先送给RTP封装成为RTP分组,RTP分组再装入下层协议运输层的UDP用户数据报,然后再向下传递给IP层[2].RTP协议的设计目的是通过提供实时数据传输中的时间戳信息和分组序列号字段,使接收方通过检测接收到的分组序列号来判断是否有分组丢失,并重新恢复发送时的分组顺序,从而达到使各数据流同步的功能.

RTCP是与RTP配合使用的协议,RTP只包含RTP数据,而控制是由另一个不可分割的配套使用的RTCP协议提供的.RTCP协议有以下三个主要功能:(1)监视并反馈RTCP的怎么写作质量;(2)保证传输媒体间的同步性;(3)对多播组中的成员进行标志.

RTCP分组同RTP分组一样,也使用UDP来传送,区别是RTCP并不对音频视频分组进行封装.由于RTCP的分组很短,因此在一个UDP数据报中可以封装多个RTCP分组.被封装的RTCP分组可以周期性地在网上传送,它包含有发送端和接收端对怎么写作质量的统计信息的报告(如已发送的分组数和字节数、分组丢失率、分组到达时间间隔的抖动等).

3.系统的结构设计

本系统可用于视频会议直播.在发送端采用IP组播技术,这样可以降低网络上传输的信息包总量,从而减少网络拥塞和冲突的发生;在接收端,也可以通过设置接收缓冲来减少数据的抖动,提高质量.当会议开始时,会议发布者在怎么写作器端,将摄像头和麦克风捕捉的音视频数据经压缩编码后通过3G无线网络发送出去,其他与会者使用移动终端加入该组后,在终端屏幕上播放经解码后的音视频,完成会议的参与.因此,该系统主要由以下几个模块构成,系统结构如图1所示.

(1)音视频的采集和回放:采用DirectShow技术实现音视频数据的采集和回放.该方法基于COM技术的优势,可以方便的对音视频数据进行采集,并且使采集到的数据播放流畅,图像稳定.

(2)音频的编解码:采用具有开源库的G.729a 标准对音频数据进行编码和解码.该标准数据压缩率高,复杂度低,时延小.

(3)视频的编解码:采用具有开源库的H.264标准对视频数据进行编码和解码.该标准能提高网络适应能力,具有错误恢复能力.

(4)同步处理、数据加密、网络传输、数据解密:采用RTP 实时传输协议对音视频数据进行打包、封包传输、解包以保证数据的实时性,并采用RTCP实时传输控制协议提供传输QoS监测和拥塞控制、媒体间同步等怎么写作.

基于DirectShow的无线音视频采集与传输系统的参考属性评定
有关论文范文主题研究: 关于计算机的论文范文 大学生适用: 高校毕业论文、电大毕业论文
相关参考文献下载数量: 29 写作解决问题: 本科论文怎么写
毕业论文开题报告: 论文任务书、论文前言 职称论文适用: 杂志投稿、初级职称
所属大学生专业类别: 本科论文怎么写 论文题目推荐度: 优质选题

4.系统的程序实现

本系统由怎么写作器端和移动终端两部分组成.怎么写作器端PC基于Windows XP平台,程序采用Visual Studio2005进行编写;移动终端为Pocket PC,基于WinCE平台,程序也是采用Visual Studio2005进行编写.在开发前,要先安装VisualStudio2005和DirectX 9.0b SDK,并对开发环境进行相应的配置,使其支持DirectShow的开发.系统中音视频的编解码部分采用的是va_g729a.lib和h264.lib开源库,打包、封包传输、解包部分使用开源的jrtplib.lib.由于WinCE 操作系统提供了和桌面Windows操作系统很接近的Win32 API,大多数Win32 API的函数在WinCE中都存在.因此,下面程序的实现是以PC平台下的Visual Studio2005为例,WinCE下的程序可以方便移植,但对于系统中采用的一些开源库要经过修改才能在WinCE环境下编译使用.

(1)音频的采集和回放:使用DirectShow的系统设备枚举器枚举,找到我们想要创建的声卡对象.在本文中,我们采集生成一个We文件,于是还需要加入一个We Dest Filter和一个File Write Filter.

static const GUID CLSID_WDest 等于{0x3c78b8e2,0x6d,0x11d1,


{0xad,0xe2,0x0,0x0,0xf8,0x75,0x4b,0x99}},//注册WDest组件

CoCreateInstance(CLSID_FilterGraph,NULL,CLSCTX_INPROC_SERVER,IID_IGraphBuilder,(void**)&pGraph),// 创建Filter Graph Manager 实例

pGraph->AddFilter(pSrc,L”Capture”),//将Capture Filter 加入Filter Graph 中以实现音频采集

pGraph->AddFilter(pWDest,L”WDest"),//将WDest Filter 加入Filter Graph 中以实现在结束采集时,再在文件头位置插入一个We格式的数据块

pGraph->AddFilter(pWrite,L”File Writer”),// 将File Writer 加入Filter Graph 中

(2)视频的采集和回放:使用DirectShow 技术,选择视频画面的大小为176*144 真彩色,每秒捕获30 帧.

CoCreateInstance(CLSID_FilterGraph,NULL,CLSCTX_INPROC_SERVER,IID_IGraphBuilder,(void**)&pGraph),// 创建Filter Graph Manager 实例

pGraph->AddFilter(pSrc,L”VSourceFilter”),//将VSource Filter 加入Filter Graph 中以实现视频捕获

pGraph->AddFilter(pRender,L”VRenderFilter”),//将VRender Filter 加入Filter Graph 中以实现视频播放

SetupWindow(),//设定视频播放窗口的大小和位置

5.结语

文中给出了一种基于DirectShow的无线视频采集与传输系统的设计.同时,将3G网络应用到音视频传输中,并采用RTP/RTCP来保证音视频的同步和实时性.将该系统应用到3G无线视频会议系统中,可以使视频会议系统更具有灵活性和移动性.

随着3G网络的推广,智能手机的普及,基于嵌入式移动设备的视频会议系统的设计与开发逐渐引起人们的重视,该系统的设计与实现对移动视频会议系统和无线监控系统具有一定的借鉴和推广意义.