今天,56kbps调制解调器是internet连接的基本速率,cable modem、 adsl、dss、isdn等发展快,内容提供商不得不要么限制发布媒体质量,要么限制连接人数。根据realnetwork站点统计,对56kbps调制解调器,实际流量为10bps到26kbps,呈钟形分布,高峰在20kbps。这意味着若内容提供商选择20kbps固定速率,将有大量用户得不到好质量信号,并可能停止媒体流而引起客户端再次缓冲,直到接收足够数据。
一种解决方法是服务器减少发送给客户端的数据而阻止再缓冲,在realsystem 5.0中,这种方法称为“视频流瘦化”。这种方法的限制是realvideo文件为一种数据速率设计,结果可通过抽取内部帧扩展到更低速率,导致质量较低。离原始数据速率越远,质量越差。另一种解决方法是根据不同连接速率创建多个文件,根据用户连接,服务器发送相应文件,这种方法带来制作和管理上的困难,而且,用户连接是动态变化的,服务器也无法实时协调。 智能流技术通过两种途径克服带宽协调和流瘦化。首先,确立一个编码框架,允许不同速率的多个流同时编码,合并到同一个文件中;第二,采用一种复杂客户/服务器机制探测带宽变化。
针对软件、设备和数据传输速度上的差别,用户以不同带宽浏览音视频内容。为满足客户要求,progressive networks公司编码、记录不同速率下媒体数据,并保存在单一文件中,此文件称为智能流文件,即创建可扩展流式文件。当客户端发出请求,它将其带宽容量传给服务器,媒体服务器根据客户带宽将智能流文件相应部分传送给用户。以此方式,用户可看到最可能的优质传输,制作人员只需要压缩一次,管理员也只需要维护单一文件,而媒体服务器根据所得带宽自动切换。智能流通过描述i现实世界internet上变化的带宽特点来发送高质量媒体并保证可靠性,并对混合连接环境的 内容授权提供了解决方法。流媒体实现方式如下:
对所有连接速率环境创建一个文件
在混合环境下以不同速率传送媒体
根据网络变化,无缝切换到其它速率
关键帧优先,音频比部分帧数据重要
向后兼容老版本realplayer
智能流在realsystem g2中是对所谓自适应流管理(asm)api的实现,asm描述流式数据的类型,辅助智能决策,确定发送那种类型数据包。文件格式和广播插件定义了asm规则。用最简单的形式分配预定义属性和平均带宽给数据包组。对高级形式,asm规则允许插件根据网络条件变化改变数据包发送。每个asm规则可有一定义条件的演示式,如演示式定义客户带宽是5,000到15,000kbps,包损失小于2.5%。如此条件描述了客户当前网络连接,客户就订阅此规则。定义在规则中的属性有助于realserver有效传送数据包,如网络条件变化,客户就订阅一个不同规则。
支持流媒体传输的网络协议
实时传输协议rtp与rtcp
rtp(real-timetransportprotocol)是用于internet上针对多媒体数据流的一种传输协议。rtp被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。rtp通常使用udp来传送数据,但rtp也可以在tcp或atm等其他协议之上工作。当应用程序开始一个rtp会话时将使用两个端口:一个给rtp,一个给rtcp。rtp本身并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠rtcp提供这些服务。通常rtp算法并不作为一个独立的网络层来实现,而是作为应用程序代码的一部分。实时传输控制协议rtcp。rtcp(real-timetransportcontrolprotocol)和rtp一起提供流量控制和拥塞控制服务。在rtp会话期间,各参与者周期性地传送rtcp包。rtcp包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。rtp和rtcp配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,因而特别适合传送网上的实时数据。
实时流协议rtsp
实时流协议rtsp(realtimestreamingprotocol)是由realnetworks和netscape共同提出的,该协议定义了一对多应用程序如何有效地通过ip网络传送多媒体数据。rtsp在体系结构上位于rtp和rtcp之上,它使用tcp或rtp完成数据传输。http与rtsp相比,http传送html,而rtp传送的是多媒体数据。http请求由客户机发出,服务器作出响应;使用rtsp时,客户机和服务器都可以发出请求,即rtsp可以是双向的。
资源预订协议rsvp协议
由于音频和视频数据流比传统数据对网络的延时更敏感,要在网络中传输高质量的音频、视频信息,除带宽要求之外,还需其他更多的条件。rsvp(resourcereserveprotocol)是正在开发的internet上的资源预订协议,使用rsvp预留一部分网络资源(即带宽),能在一定程度上为流媒体的传输提供qos。在某些试验性的系统如网络视频会议工具vic中就集成了rsvp。
流媒体播放方式
单播
在客户端与媒体服务器之间需要建立一个单独的数据通道,从一台服务器送出的每个数据包只能传送给一个客户机,这种传送方式称为单播。每个用户必须分别对媒体服务器发送单独的查询,而媒体服务器必须向每个用户发送所申请的数据包拷贝。这种巨大冗余首先造成服务器沉重的负担,响应需要很长时间,甚至停止播放;管理人员也被迫购买硬件和带宽来保证一定的服务质量。
组播
ip组播技术构建一种具有组播能力的网络,允许路由器一次将数据包复制到多个通道上。采用组播方式,单台服务器能够对几十万台客户机同时发送连续数据流而无延时。媒体服务器只需要发送一个信息包,而不是多个;所有发出请求的客户端共享同一信息包。信息可以发送到任意地址的客户机,减少网络上传输的信息包的总量。网络利用效率大大提高,成本大为下降。
点播与广播
点播连接是客户端与服务器之间的主动的连接。在点播连接中,用户通过选择内容项目来初始化客户端连接。用户可以开始、停止、后退、快进或暂停流。点播连接提供了对流的最大控制,但这种方式由于每个客户端各自连接服务器,却会迅速用完网络带宽。
广播指的是用户被动接收流。在广播过程中,客户端接收流,但不能控制流。例如,用户不能暂停、快进或后退该流。广播方式中数据包的单独一个拷贝将发送给网络上的所有用户。 使用单播发送时,需要将数据包复制多个拷贝,以多个点对点的方式分别发送到需要它的那些用户,而使用广播方式发送,数据包的单独一个拷贝将发送给网络上的所有用户,而不管用户是否需要,上述两种传输方式会非常浪费网络带宽。组播吸收了上述两种发送方式的长处,克服了上述两种发送方式的弱点,将数据包的单独一个拷贝发送给需要的那些客户。组播不会复制数据包的多个拷贝传输到网络上,也不会将数据包发送给不需要它的那些客户,保证了网络上多媒体应用占用网络的最小带宽。