论文部分内容阅读
流媒体是指在网络中使用流式传输技术的连续时基媒体,如:音频、视频。随着宽带基础设施的完善,流媒体应用也越来越普及。如视频点播(VOD),远程教育(distance Learning),视频会议(video conference),视频监控(video monitoring)等。 抽象看来,这些应用都是分布式技术与多媒体技术的结合。说到分布式就容易联想到中间件。有没有可能提供一个流媒体中间件,为开发人员提供节点间的互连互操作,使得开发人员不需要面对底层网络的传输和控制;同时,又对流媒体的开发提供第一级的支持,如采集,处理,播放等。综合起来,这个平台能够为分布式多媒体应用提供采集,处理,传输,控制,播放的整个框架以及相关的系统服务,如流式协议支持,数字版权管理等。这就是本文的目的:设计与实现一个流媒体中间件,命名为StreamingWare。 StreamingWare架构上分为两大部分:基础框架和系统服务。 所谓基础框架如上所述要提供媒体的采集,处理,传输,控制,播放五大功能。在实现上是将Microsoft的多媒体开发框架Directshow扩展到网络上。Directshow是一个成熟的单机的多媒体开发框架,换言之,提供了对媒体的采集,处理,播放的优秀支持。但在传输(包括媒体传输和控制信息传输)和控制(分布式组件间的控制)上都缺乏支持。所以扩展主要是基于传输和控制。具体的做法是提供一个网络过滤器NetFilter,节点间的媒体传输和控制信息传输都通过NetFilter来完成。节点间的控制,即分布式组件间的控制,包括了组件技术和远程调用技术。其中组件技术就是Microsoft的COM技术。远程调用技术参考了web service的思想,采用XML+SOCKET的方式来实现组件间的通信。 所谓系统服务可以扩展出很多内容,如应用层QOS服务,数字版权管理,流式协议支持等。本文设计实现了RTP/RTCP。RTP/RTCP在流媒体应用中是非常关键的。RTP为媒体流提供了时间戳和序列号信息,这对于应用层帧处理,如组帧,回放都是很重要的。而RTCP提供了多种报告,其中发送者/接收者报告提供了包发送的反馈信息,这对于QoS控制是很关键的。 这是一个有一定创新的工作。虽然目前StreamingWare的实现还非常简单,还没有工业使用价值,但其设计思想是很有意义的。如果将来真的有成熟的流媒体中间件出现,那么流媒体软件厂商就能减少重复劳动,把更多资源投入到特定应用中去。这样可以形成分工更加合理细致的流媒体应用软件产业链。就如同J2EE产业链一样。 本文先精要地分析中间件的要素,流媒体的核心技术,流媒体中间件的参考标准;然后全面深入的分析Directshow的框架组成,运作机理;在这个基础上针对DireCtshow的不足,阐明Streamingware的设计思想;然后介绍基础框架的设计与实现以及最重要的系统服务一流式协议RTP/RTCP的设计与实现。最后总结论文。