新闻中心

EEPW首页 > 消费电子 > 设计应用 > 基于DirectX的音频视频无线传输系统设计与实现

基于DirectX的音频视频无线传输系统设计与实现

——
作者:时间:2007-10-19来源:现代电子技术收藏

  1引言

  近些年来,多媒体技术,技术和通信技术的迅速发展为相互之间的交叉融合奠定了基础,也使其成为信息产业发展的必然趋势,传统的Internet主要提供数据业务,通信主要提供语音业务,而多媒体技术的日新月异,使得文本、语音及综合加入Internet与通信领域的需求日益增长。对于音流的传输,如果采用TCP协议,由于TCP的检错和重传机制会大大增加数据包的延时,因此不符合音传输的要求,而如果单纯采用UDP协议,由于UDP不提供任何的QoS保证,因此传输质量不理想。而IETF制定的实时传输协议/实时传输控制协议(RTP/RTCP)使得在理论上具有提供多媒体实时传输的能力。

  微软推出的提供了与音视频应用相关的SDK,开发者以此为跳板则可以较方便地实现语音与视频的捕捉、传输、解压、回放等功能,并可以根据需要来订制和扩充利用。

  2系统概述

  本系统设计应用于XXX设备与系统,主要实现前后方与视频的无线通信,传输部分基于DirectPlayVoice实现,视频传输部分基于DirectShow实现。采用典型的客户端/服务器结构,服务器端主要包括视频的采集与压缩以及数据发送,客户端主要包括数据接收以及音频视频解压播放,客户端与服务器端通过无线网连接。系统结构如图1所示。

  

  3基于DirectPlay Voice的音频传输

  DireetPlay Voice是系统的成员之一,图2显示了应用DirectPlay Voice开发时可用的组件。

  

  采用客户端/服务器模式时,使用IdirectPlayVoice-Client和IdireetPlayVoiceServer接口创建并管理一个声音会话。

  3.1 混音

  本系统实际应用中,经常需要多人同时语音会话,因此对混音效果有很高要求,DireetPlayVoice提供了多人会话时混音功能,并且C/S模式下提供了客户端混音,服务器混音两种混音方式。

  客户端混音方式,通过转发服务器拓扑结构,选择会话中的一个客户端电脑充当转发服务器,每一个客户端把语音数据流送到转发服务器,转发服务器负责把收到的所有客户声音数据送到每一个客户端,然后每一个客户端把接收到的音频数据混音并播放。 服务器混音方式,选择服务器端电脑作为混音服务器,每一个客户端的声音数据流到混音服务器上,混音服务器会检测每个声音流的目的地,完成解压缩、混音,再压缩,把混音的音频数据送到每一个客户端,每一个客户端接受单一的预混和的音频数据并播放。

  3.2语音延时、抖动消除

  在语音传输过程中,由于等原因会发生语音延时、抖动,采取抖动缓冲技术,可以较好地解决这一问题。在接收方设定一个缓冲池,语音包到达时首先进入缓冲池暂存,系统以稳定平缓的速率将语音包从缓冲池中取出、解压,然后播放给受话者。如图3(a)所示,这种缓冲技术可以在一定限度内有效处理语音抖动,提高音质。 为了确定呼话音包的正确时间间隔,在RTP的包头上提供了一个时间戳(Time Stamp),用于记录这个呼包的产生时间。在发送端网关产生的呼包①经过A,B的时间间隔和B,C的时间间隔均为20ms,如图3(b)所示;经过网络传输,在接收端收到的呼包②的B,C的时间间隔变成了30ms;为了恢复原有的时间间隔,接收端网关根据每个呼包的RTP时间戳来确定呼包③的正确时间间隔,把他们恢复成原来的20ms向下一级设备发送。由于消抖动缓存池不是在接收到每一个话音包的情况下就立即转发,因此还要确定适当的转发延时的大小。如果延时太长,就会使系统整体的延时变得很长;如果延时太短,话音包在允许的时间范围内没有到达,话音仍会出现抖动现象,缓存池的作用不很明显。取两者平衡点的结果使缓存器的网络延时保持在40ms左右。

  

  本系统实现时提供了两种混音方式和多种音频编码类型可选,因此能够适应网络带宽较差的环境,提供的编码类型如下:MS-PCM 64kb/s,MS-ADPCM 32.8kb/s,Microsoft GSM6.10 13kb/s,True Speech(TM)8.6kb/s,Voxware SC03 3.2 kb/s,'Voxware SC06 6.4kb/s。

  4基于DirectShow的视频传输

  DirectShow是一套完全基于COM的应用系统,COM组件有3种类型:进程内组件、本地组件和远程组件。Filter一般是一种进程内组件,以动态链接库(Dell)的形式提供服务。在Dir。ectShow体系结构中,Filter是最基本的模块。DirectShow对流媒体的处理是分步进行的,每项特定的处理由特定的Filter。来完成。Filter主要有3类:SourceFilters,Transform Filters和Render ing Filters。 SourceFilters主要负责取得数据,然后将数据往下传输;Trans-form Fitlers主要负责数据的格式转换、传输;RenderingFiltes主要负责数据的最终去向。

  视频传输结构框图如图4所示:在发送端,采集卡捕获的视频数据经过Divx MPEG-4 LOW-Motion Filter编码压缩,然后进行RTP打包,再发送到网络上。接收端使用RTP解包,Divx MPEG-4 Receivet Filter接收并缓冲视频流,然后由Divx Decoder Filter进行解码,由VideoRenderer Filter播放。同时引入RTCP进行传输质量控制。

  4.1视频的压缩与编码

  在视频传输的过程中,服务器和客户端的视频压缩、解压缩过程至关重要,视频的流量非常庞大,网络带宽的占用随着用户的增加大幅增长,这在要求高质量视频的时候最为突出。针对这种情况,选择MPEG-4视频压缩算法,以提供高质量的视频质量。与现有的标准相比,在可比拟速率上,MPEG-4标准能提供更好的主观视觉质量的图像,一般来说MPEG-4的压缩倍数高达100倍。MPEG-4具有很强的容错性,这使得他广泛应用在各种媒体中,尤其在易发生严重错误的低比特率应用中,MPEG-4将提高抗错误能力。

  

  4.2 RTP/RTCP协议

  RTP协议是IETF在1996年为支持网络数据实时传输而制订的标准。RTP协议实际上是由实时传输协议RTP(Real Time Transport Protocol)和实时传输控制协议RTCP(Real Time Transport Control Protoeol)两部分组成。

  RTP协议用来提供端到端的实时数据传输服务,包括有效载荷类型鉴定、数据序号、时间戳、传送监测。但是RTP本身并不能为按序传输数据包提供保证,他依赖于底层服务去实现这一过程,也不能提供流量控制和拥塞控制,这些都由实时传输控制协议RTCP来负责完成。

  RTCP用来控制服务质量,并在正在进行的会话里传递各个参与站点的信息。在RTP会话期间,各站点周期性地传递RTCP包。RTCP包中含有已发送的数据包数量和丢失的数据包数量等统计资料。因此站点可以利用这些信息动态改变传输速率,调整缓冲区大小和个数,甚至改变有效载荷类型。RTP和RTCP配合使用,可以有效地反馈和以最小的开销使传输效率最佳化,因而特别适合传送网上的实时数据。

  4.3 DirectShow框架下RTP实现

  在DirectShow框架下,多媒体数据以媒体样本为单位在滤镜之间流动。一个特定应用程序的滤镜图中,相邻滤镜的引脚之间流动的媒体样本类型一般不同。因此,传输两端需要选用合理滤镜图,确保服务器端传出的媒体样本能被客户端正确播放。

  程序实现中,传输两端的滤镜图如图5所示。服务器采用摄像头滤镜捕获视频数据,向后传送,经过编码器滤镜压缩,传到MyRTPRenderer滤镜,并由他负责网络发送;在客户端,MyRTPSource滤镜收到MyRTPRenderer发来的数据,经过解码器滤镜解压缩后显示到屏幕渲染滤镜。服务器的编码器和客户端的解码器是配套的,保证服务器传输的媒体样本能被客户端正确解压播放。从客户端来看,网络对于用户透明,就相当于是一个远程摄像头捕捉、压缩、解压、播放的过程。

  

  架中的两个RTP滤镜负责数据传输,而TCP传输的反馈控制在两端上层的滤镜图管理器中实现。

  4.4 Filter实现

  本系统中视频流的网络发送与接收通过自己开发的Filter来实现。

  发送端Filter类:

  

  CbaseInputPin是一个用于实现输人Pin的抽象类,该类支持IMereInput Pin接口。由于IMemInputPin接口是一个支持推模式(Push Model)的接口,因此,CnetworkSendFilter支持推模式(Push Model)应用。

  发送Filter关键过程:

  (1)初始化套接字;

  (2)设置系统缓冲区,绑定端口;

  (3)创建默认的接口;

  (4)调用sendto发送数据;

  (6)关闭套接字。

  5结语

  图6为本系统客户端界面,有4路视频显示,在正常条件下,达到了较好的效果。

  

  本文结合实际项目需要,详细论述了音视频传输系统的设计方法和具体实现框架,利用DirectPlay Voice实现音频混音功能,并且对音频传输过程中的延时抖动进行了去除,利用RTP/RTCP传输MPEG-4视频流,讨论了在DirectShow框架下用RTP/RTCP协议传输MPEG-4视频数据的实现方案。

  实验表明,该系统音频混音效果良好,利用RTP/RTCP传输MPEG-4视频,能够适应复杂的网络状况,提供更好的传输质量。



评论


相关推荐

技术专区

关闭