基于DirectX的音频视频无线传输系统设计与实现-设计应用_第1页
基于DirectX的音频视频无线传输系统设计与实现-设计应用_第2页
基于DirectX的音频视频无线传输系统设计与实现-设计应用_第3页
基于DirectX的音频视频无线传输系统设计与实现-设计应用_第4页
基于DirectX的音频视频无线传输系统设计与实现-设计应用_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档-下载后可编辑基于DirectX的音频视频无线传输系统设计与实现-设计应用1引言

近些年来,多媒体技术,网络技术和无线通信技术的迅速发展为相互之间的交叉融合奠定了基础,也使其成为信息产业发展的必然趋势,传统的Internet主要提供数据业务,无线通信主要提供语音业务,而多媒体技术的日新月异,使得文本、语音及视频综合加入Internet与无线通信领域的需求日益增长。对于音视频流的传输,如果采用TCP协议,由于TCP的检错和重传机制会大大增加数据包的延时,因此不符合音视频传输的要求,而如果单纯采用UDP协议,由于UDP不提供任何的QoS保证,因此传输质量不理想。而IETF制定的实时传输协议/实时传输控制协议(RTP/RTCP)使得在理论上具有提供多媒体实时传输的能力。微软推出的DirectX提供了与音视频应用相关的SDK,开发者以此为跳板则可以较方便地实现语音与视频的捕捉、网络传输、解压、回放等功能,并可以根据需要来订制和扩充利用。

2系统概述

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

3基于DirectPlayVoice的音频传输

DireetPlayVoice是DirectX系统的成员之一,应用DirectPlayVoice开发时可用的组件。

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

3.1混音

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

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

3.2语音延时、抖动消除

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

本系统实现时提供了两种混音方式和多种音频编码类型可选,因此能够适应网络带宽较差的环境,提供的编码类型如下:MS-PCM64kb/s,MS-ADPCM32.8kb/s,MicrosoftGSM6.1013kb/s,TrueSpeech(TM)8.6kb/s,VoxwareSC033.2kb/s,'VoxwareSC066.4kb/s。

4基于DirectShow的视频传输

DirectShow是一套完全基于COM的应用系统,COM组件有3种类型:进程内组件、本地组件和远程组件。Filter一般是一种进程内组件,以动态链接库(Dell)的形式提供服务。在Dir。ectShow体系结构中,Filter是基本的模块。

DirectShow对流媒体的处理是分步进行的,每项特定的处理由特定的Filter。来完成。Filter主要有3类:SourceFilters,TransformFilters和RenderingFilters。SourceFilters主要负责取得数据,然后将数据往下传输;Trans-formFitlers主要负责数据的格式转换、传输;RenderingFiltes主要负责数据的终去向。

在发送端,采集卡捕获的视频数据经过DiMPEG-4LOW-MotionFilter编码压缩,然后进行RTP打包,再发送到网络上。接收端使用RTP解包,DiMPEG-4ReceivetFilter接收并缓冲视频流,然后由DiDecoderFilter进行解码,由VideoRendererFilter播放。同时引入RTCP进行传输质量控制。

4.1视频的压缩与编码

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

4.2RTP/RTCP协议

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

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

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

4.3DirectShow框架下RTP实现

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

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

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

4.4Filter实现

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

发送端Filter类:

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

发送Filter关键过程:

(1)初始化套接字;(2)设置系统缓冲区,绑定端口;(3)创建默认的接口;(4)调用sendto发送数据;(6)关闭套接字。

5结语

本文结合实际项目需要,详细论述了音视频传输系统的设计方法和具体实现框架,利用DirectPlayVoice实现音频混音功能,并且对音频传输过程中的延时抖动进行了

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论