89
基于RTP/RTCP协议流媒体传输的研究
陈洪敏1,2
(1、中国矿业大学计算机科学与技术学院江苏徐州221008
2、江苏省徐州技师学院信息工程系江苏徐州221151)
【摘要】:随着Internet的普及,个人计算机处理能力的提高,以及视频压缩技术的发展,流媒体技术已经吸引了越来越多的关注。本文在分析DirectShow和RTP原理的基础上,提出了完整的C/S架构的基于RTP/RTCP的视频传输方案,适合对网络视频传输有比较高的实时性要求的场合。
【关键词】:流媒体;RTP;DirectShow
1、引言
随着Internet的日益普及,在网络上传输的数据已经不再局限于文字和图形,而是逐渐向声音和视频等多媒体格式过渡。流(Streaming)是近年在Internet上出现的新概念,主要是指通过网络传输多媒体数据的技术总称,即流媒体技术。通过运用流媒体技术,服务器能够向客户机发送稳定和连续的多媒体数据流,客户机在接收数据的同时以一个稳定的速率回放,而不用等数据全部下载完之后再进行回放。流媒体的应用非常广泛。如在工业上,需要对一些多变的、有毒的、人类不宜久留的场合进行监控,如发生瓦斯爆炸的矿井;又如在医疗上,则需要一些高级专家对异地的病人进行诊断和治疗;在生活中,远居海外长年不能相见的亲人可以通过视频电话系统看到彼此的图像如对方就在眼前……这些都是基于高保真实时动态图像采集压缩和远程传输技术的综合实现。故而对RTP/RTCP流媒体传输进行深入的研究具有非常强的现实意义。2、流式传输的原理
首先,多媒体数据必须进行预处理才能适合流式传输,这是因为目前的网络带宽对多媒体巨大的数据流量来说还显得远远不够。预处理主要包括两方面:一是降低质量;二是采用先进高效的压缩算法。
其次,流式传输的实现需要缓存。这是因为Internet是以包传输为基础进行断续的异步传输。数据在传输中它们要被分解为许多包,由于网络是动态变化的,各个包选择的路由可能不尽相同,故到达客户端的时间延迟也就不等。为此,使用缓存系统来弥补延迟和抖动的影响,并保证数据包的顺序正确,从而使媒体数据能连续输出,而不会因网络暂时拥塞使播放出现停顿。
再次,流式传输的实现需要合适的传输协议。一般采用HTTP/TCP来传输控制信息,而用RTP/UDP来传输实时音视频数据。
3、流媒体传输中使用的关键技术3.1DirectShow技术
DirectShow是微软公司提供的一套在Windows平台上进行流媒体处理的开发包,可以在Windows操作平台上处理各种格式的媒体文件的回放、音视频采集等高性能要求的多媒体应用。DirectShow使用一种叫FilterGraph的模型来管理整个数据流的处理过程。参与数据处理的各个功能模块叫做Filter,各个Filter在FilterGraph中按一定的顺序连接成一条\"流水线\"协同工作。过滤器按照其在数据流处理过程中的功能不同,可以划分为三类:
(1)源过滤器(SourceFilters)主要负责取得数据,将数据引入过滤器图中。这些数据可以来自网络、本地文件、基于WDM(Window驱动程序模型)的输入设备等,然后将数据往下传输。
(2)转换过滤器(TransformFilters)主要负责数据的格式转换、传输,接收输入流,处理其中的数据,然后生成输出流。编解码器过滤器是最典型的转换过滤器。
(3)渲染过滤器(RenderingFilters)主要负责数据的最终去向,将数据送给声卡、显卡进行多媒体的演示,也可以输出到文
件进行存储。如视频显示过滤器是通过DirectDraw将视频数据传给显卡,音频显示过滤器是通过DirectSound将音频数据传给声卡,而文件显示过滤器将文件数据写入文件系统。3.2MPEG-4压缩标准
MPEG即MovingPictureExpertGroup,它是专门从事制定多媒体视音频压缩编码标准的国际组织。MPEG-4以视听媒体对象为基本单元,采用基于内容的压缩编码,以实现数字视音频、图形合成应用及交互式多媒体的集成。
MPEG-4的应用能大幅度的降低录像存储容量,获得较高的录像清晰度,特别适用于长时间实时录像的需求,同时具备在低带宽上优良的网络传输能力。3.3RTP/RTCP网络传输协议
实时传输协议RTP(Real-timeTransportProtocol)由IETF的AVT工作组于1996年公布为RFC正式文档,编号为RFC1889,是专门为交互式语音、视频等实时数据而设计的传输协议,用于视频传输等实时多媒体应用。
RTP被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。RTP的典型应用建立在UDP上。RTP本身只保证实时数据的传输,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。
实时传输控制协议RTCP(Real-timeTransportControlPro-tocol):主要功能是提供数据发布的质量反馈。当应用程序开始一个RTP会话时将使用两个端口:一个给RTP,一个给RTCP。RTP使用一个偶数号端口,则相应的RTCP使用其后的奇数号端口。在会话期间,各参与者周期性地传送RTCP控制包。每个RTCP信息包封装发送端/接收端的统计资料。这些信息包括己发送的数据包的数量,丢失的数据包的数量等。因此,服务器可以利用这些信息动态地改变传输速率。3.4RTP数据封装
由多媒体应用程序生成的声音和电视数据块被封装在RTP信息包中,每个RTP信息包被封装在UDP消息段中,然后再封装在IP数据包中。RTP用于UDP数据封装时的情景如图1所示:
图1RTP数据封装
RTP数据解包,为RTP封包的逆序过程。4、流媒体传输的设计4.1系统模块设计
系统主要可划分为音视频采集发送、客户端回放两个模块组成。
4.1.1音视频采集模块
该模块分为音视频采集、编码、网络发送三个部分。
90
福建电脑2010年第2期
音视频采集部分是从音视频采集设备采集到的音视频流,通过DirectShow技术枚举系统音视频采集设备,选取对应的音视频采集源过滤器捕获音视频数据;编码部分主要功能是将音视频数据流进行编码,主要由MPEG-4编码过滤器构成,编码器采用开源的Xvid编码器;网络发送部分的主要功能是将编码后的音视频流数据发送到客户端。4.1.2客户端回放模块
客户端回放的功能是加入特定的组播组,从网络上实时接收音视频流,并将接收到的音视频流解码回放。客户端回放部分主要包括视频网络接收,音视频解码、音视频回放三部分组成。其中视频网络接收部分功能主要由自主开发的网络接收过滤器组成;视频解码主要由MPEG-4解码过滤器(Xvid)构成;视频播放部分是回放解码后的视频流,主要由视频流播放过滤器组成。4.2基于RTP/RTCP协议的组播传输方案
在发送端,原始数据流通过采集后,进入MPEG-4适用性编码器进行编码,将MPEG-4数据打包成RTP数据报,利用UDP协议将其封装成UDP报,随后系统将数据交给IP层,在IP层中打成IP包后发送到网络上进行传输,传输时所有客户端都在接收相同的流媒体数据,与此同时RTP/UDP/IP中也发送和接收RTCP分组,通过RTCP反馈控制模块的交互来完成对流量的调控和丢包的统计。
在传输过程中,数据包可能因为网络阻塞在路由器/网关被丢失,也可能超过延迟时间在接收端被丢弃。
在接收端,传输到目的端的数据在显示前要先通过RTP/UDP/IP协议的逆程解包,再进入MPEG-4解码器进行解码。RTCP根据接收端接收到的数据包的情况(如丢包、延迟)判断网络拥塞状态,并将信息及时反馈到发送端,发送端根据这些信息
调控MPEG-4编码器的输出速率。
图2组播传输方案
5、结语
信息传输从两方面加强力度:一是多媒体化;二是实时化。人们对网络视频服务,譬如视频电话,视频会议,远程教学等实时视频业务的需求不断增长。因此高保真准动态图像采集、压缩和远程传输技术成为许多先进国家计算机领域的重要研究课题。基于MPEG-4视频网络实时传输的研究无论是在应用领域还是在科研领域都具有非常重要的意义。
参考文献:
[1]钟玉琢,向哲,沈洪.流媒体和视频服务器[M].北京:清华大学出版社,2003.
[2]陆其明.DirectShow开发指南[M].北京:清华大学出版社,2003
[3]赵臣兵,刘立柱.基于RTP协议的视频实时采集与传输的研究[J]微计算机信息,2006,(16):124~127
[4]雷刚勇,解梅.基于DirectShow的MPEG-4远程视频监控系统[J].电视技术,2005,(5):34~36
[5]RTPPayloadFormatforH.264Video.RFC3984,2005
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(上接第88页)
子件\",\"配套件数\"映射到\"子件\"。将映射结果的概念实体加入到产品配置模型中,并建立各概念实体间的语义关联,得出产品配置模型,如图3所示。求本体的基础上定义了用户需求模型,从而更加清晰、准确地表达了用户需求。研究了用户需求与陶瓷产品配置之间的内在联系,并在本体映射的基础上,实现了用户需求模型向陶瓷产品配置模型的转换。
在实际应用中还存在一些需要改进的地方,例如,虽然能利用启发式规则推断出概念间的相似度,在用户不完全了解陶瓷领域域知识的情况下,这种推断往往不够准确,导致映射结果出现偏差,进而影响到模型转换效果。本文只挑选取了相似的概念对进行相似度计算,减少了计算次数,提高了时间性能,但在一定程度上影响到了转换效果。所以,下一步研究的重点是继续完善本体映射机制,协调好时间性能和转换效果。
参考文献:
[1]姜燕,但斌.MC模式下基于本体的客户需求映射方法[J].工业工程,2009,12(2):19-23.
[2]梁樑,周俊,罗彪.MC模式下基于顾客需求的产品配置优化分析[J].管理科学学报,2003,6(3):52-56.
[3]代莎莎,李冠宇.一种基于视图的本体映射模型的构建.微计算机信息,2008,24(3-3):181~183.
[4]李光达,常春.构建本体时获取概念方法研究.情报科学,2009,27(5):713~716,722.
[5]王宝友,宁汝新等.大规模定制模式下陶瓷产品的生产及其产品数据管理[J]中国陶瓷工业,2004,9(5):38-40.
利用本体映射,将材料特性、外观装饰、配套件数等用户需求转换成由一系列子件及其参数构成的产品配置模型,然后可对产品配置模型进行求解。并利用工具Protege对映射结果进行了一致性校验分析。5、结论
本文提出了一个用户需求本体和陶瓷产品配置本体,分别用于描述用户需求知识和表达陶瓷产品配置知识,并在用户需
(上接第109页)
理的技术融合起来,使生物医学信号处理速度更快、更好、更准确。
参考文献:
[1]杨福生,高上凯.生物医学信号处理[M].北京:高等教育出版社,1989.[2]聂能,尧德中,谢正祥.生物医学信号数字处理技术及应用[M].北京:科
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!学出版社,2005.
[3]饶妮妮,李凌.生物医学信号处理[M].成都:电子科技大学出版社,2005.[4]张志涌等.精通MATLAB6.5版[M].北京:北京航空航天大学出版社,
2003
因篇幅问题不能全部显示,请点此查看更多更全内容