HTTP缓存原理及相关知识(3)-流媒体主流格式及相关协议

流媒体三种主流格式及相关协议

一、流媒体的主流格式

  流媒体服务器的主要功能是以流式协议(RTP/RTSP、MMS、RTMP等)将视频文件传输到客户端,供用户在线观看;也可从视频采集、压缩软件接收实时视频流, 再以流式协议直播给客户端。典型的流媒体服务器有微软的Windows Media Service(WMS),它采用MMS协议接收、传输视频,采用Windows Media Player(WMP)作为前端播放器;RealNetworks公司的Helix Server,采用RTP/RTSP协议接收、传输视频,采用Real Player作为播放前端;Adobe公司的Flash Media Server,采用RTMP(RTMPT/RTMPE/RTMPS)协议接收、传输视频,采用Flash Player作为播放前端。值得注意的是,随着Adobe公司的Flash播放器的普及(根据Adobe官方数据,Flash播放器装机量已高达99%以 上),越来越多的网络视频开始采用Flash播放器作为播放前端,因此,越来越多的企业开始采用兼容Flash播放器的流媒体服 务器,而开始淘汰其他类型的流媒体服务器。支持Flash播放器的流媒体服务器,除了Adobe Flash Media Server,还有sewise的流媒体服务器软件和Ultrant Flash Media Server流媒体服务器软件,以及基于Java语言的开源软件Red5。

  流媒体格式主要有三种:它们是RealNetworks公司的RealMedia;微软公司的WindowsMedia;苹果公司的QuickTime。

①RealMedia

  在编码方面主要技术是RealMediaCodec8。由于RealMedia发展的时间比较长,因此具有很多先进的设计,如 ScalableVideoTechnology可伸缩视频技术,能根据用户电脑速度和连接质量而自动调整媒体的播放质素。Two- PassEncoding两次编码技术可通过对媒体内容进行预扫描,再根据扫描的结果来编码从而提高编码质量。特别是SureStream自适应流技术, 可通过一个编码流提供自动适合不同带宽用户的流播放。RealMedia音频部分采用的是RealAudio,该编码在低带宽环境下的传输性能非常突出。 RealMedia通过基于SMIL并结合自己的RealPix和RealText技术,来达到一定的交互能力和媒体控制能力,但相比QuickTime 还有一段距离。

  RealMedia包括RealAudio、RealVideo和RealFlash三类文件:RealAudio用 来传输CD音质的音频数据,RealVideo用来传输连续视频数据,而RealFlash则是RealNetworks公司与Macromedia公司 新近联合推出的一种高压缩比的动画格式。这类文件的后缀是.rm,文件对应的播放器是“RealPlayer”。

②WindowsMedia

  WindowsMedia编码方案的目前版本也称为8.0,当然版本号现在已经成为商品促销的一个手段了。视频方面的 WindowsMediaVideo8采用的是MPEG-4视频压缩技术,音频方面采用的是微软自己开发的WindowsMediaAudio技术。 WindowsMedia的关键核心是MMS协议和ASF数据格式,MMS用于网络传输控制,ASF(AdvancedStreamFormat)是一个 在Internet上实时传播多媒体的技术标准,主要用于媒体内容和编码方案的打包。

  微软的ASF格式文件的后缀是.asf和.wmv,与它对应的播放器是微软公司的“MediaPlayer”。用户可以将图形、声音和动画数据组合成一个 ASF格式的文件,也可以将其他格式的视频和音频转换为ASF格式,而且用户还可以通过声卡和视频捕获卡将诸如麦克风、录像机等外设的数据保存为ASF格 式。

③QuickTime

  QuickTime在视频压缩上采用的是SorensonVideo技术,音频部分则采用QDesignMusic技术。QuickTime最大的特点是 其本身所具有的包容性,使得它是一个完整的多媒体平台,因此基于QuickTime可以使用多种媒体技术来共同制作媒体内容。如在一个QuickTime文件中,可同时包含MIDI、动画GIF、FLASH和SMIL等格式的文件,因而配合QuickTime的WiredSprites互动格式,可设计出各种互动界面和动画。

二、流媒体相关协议

  流式传输的实现需要合适的传输协议。由于TCP需要较多的开销,故不太适合传输实时数据。在流式传输的实现方案中,一般采用HTTP/TCP来传输控制信息,而用RTP/UDP来传输实时信息。流媒体的相关协议是:

  ①实时传输协议RTP(Real-TimeTransportProtocol)与实时传输控制协议RTCP(Real-TimeTransportControlProtocol)

   RTP是一种用于网络上针对多媒体数据流的传输协议,适合一对一、一对多传输情况,可提供时间信息并实现流同步。它不作为独立网络层实现,而是应用程序 一部分,通常使用UDP来传输数据,但也可在TCP、ATM等协议上工作。当应用程序开始一个RTP会话时,会使用到两个端口,一个给RTP,一个给 RTCP。RTP本身并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,而是依靠RTCP提供这些服务。通常RTP算法并不作为 一个独立的网络层来实现,而是作为应用程序代码的一部分。

  RTCP能为按顺序传输的数据包提供可靠传输机制,并和RTP一起提供流量 控制、拥塞控制服务。在RTP会话期间,各客户端周期性传输RTCP包。该包中含有已传输的数据包数量、丢失的数据包数量等等统计数据信息,服务器可根据 此信息动态改变传输速率,甚至改变有效载荷类型。RTP与RTCP的配合使用,可有效地进行反馈,从而减小开销,提高传输效率,非常适合传送网上的实时数 据。

  ②实时流协议RTSP(Real-TimeStreamingProtocol)

  实时流协议RTSP是由 RealNetworks和Netscape共同提出的一种协议,它定义了一对多应用程序如何有效地通过IP网络传输多媒体数据。其体系结构位于RTP和 RTCP之上,使用TCP或RTP完成数据传输。与请求由客户端发出、服务器作出响应的单向方式HTTP相比,RTP传送的是多媒体数据,而HTTP传送 HTML。RTSP是双向的,使用时客户端和服务器均可发出请求,而HTTP的请求是由客户机发出,服务器进行响应。并且,RTSP提供操纵播放、快进、 快倒、暂停及录制等命令的方法。

  ③资源预订协议RSVP(RresourceReserveProtocol)

   由于音频、视频数据流比传统数据对网络的延时更敏感,因此要通过网络传输高质量音频、视频信息,除带宽要求外,还需要其他方面的条件。RSVP是一种正在 开发的Internet资源预订协议,它通过采取预留一部分网络资源(带宽)的措施,能在一定程度上为流媒体的传输提供良好的服务质量QOS。有某些试验 性系统,如网络视频会议工具VIC就集成了RSVP。

<来源于网络>

posted @ 2016-04-02 15:41  夜空中_最亮的星  阅读(605)  评论(0编辑  收藏  举报