1、概述
流媒体技术是一种专门用于网络多媒体信息传播和处理的新技术,该技术能够在网络上实现传播和播放同时进行的实时工作模式,相对于其他的一些音、视频网络传输和处理技术,流媒体比较成熟和使用,目前已经成为网上音、视频(特别是实时音视频)传输的主要解决方案。
流媒体与常规视频媒体之间的不同在于,流媒体可以边下载边播放。“流”的重要作用体现在可以明显的节省时间,由于常规视频媒体文件比较大,并且只能下载下来后才能播 放,因此下载需要很长的时间,妨碍了信息的流通,流媒体的应用是近几年来Internet发展的产物,广泛应用于远程教育、网络电台、视频点播、收费播放 等。
目前,制约流媒体宽带应用发展的关键在于互联网的服务质量,流媒体从理论上解决了大容量网络多媒体数据传输的实时性要求问题,但是由于大型分组交换网络中数据传输受到诸多因素的影响,网络的状况是不可靠的,其带宽、负荷等的变化难以满足流媒体宽带业务的实时性服务质量要求,并且常常造成播放卡壳、延迟、视频抖动剧烈,给使用者感官造成很大影响,所以解决好流媒体网络应用的服务质量问题对于流媒体宽带应用是极为重要的。
2、流媒体技术原理
流媒体的传输的实现需要缓存。因为Internet以分组传输为基础进行断续的异步传输,对一个实时的A/V源或存储的A/V文件。在传输中它们要被分解为许多的分组,由于网络是动态变化的,各个分组选择的路由可能不尽相同,故到达客户端的时间延迟也就不等,甚至先发的数据分组有可能后到。为此,使用缓存系统来弥补延迟和抖动的影响,并保证分组的顺序正确,从而使媒体数据能连续输出,而不会因为网络暂时拥塞使播放出现停顿。
流媒体传输的实现需要合适的传输协议。由于TCP需要较多的开销,因此不太适合传输实时数据。在流媒体传输的实现方案中,一般采用HTTP/TCP来传输控制信息,而用RTP/UDP来传输实时数据。
》流式传输的过程一般是这样的:
(1)用户选择某一流媒体服务后,Web浏览器与Web服务器之间使用HTTP/TCP交换控制信息,以便把需要传输的音/视频流实时数据从原始信息中检索出来。
(2)客户机上的Web浏览器启动客户端程序(即一些播放程序),使用HTTP从Web服务器检索相关参数对客户端程序进行初始化。这些参数可能包括目录信息、音/视频数据的编码类型或与A/V检索相关的服务器地址。
(3)客户端程序及流媒体服务器运行实时流控制协议(RTSP),以交换音/视频数据流传输所需的控制信息。RTSP起到一个遥控器的作用,用于客户端对流媒体服务器的远程控制,控制媒体数据流的播放、快进、快倒、暂停等命令。
(4)流媒体服务器使用RTP/UDP协议将音/视频数据传输给客户端程序,一旦音/视频数据抵达客户端,音/视频客户程序即可播放输出。
==》需要说明的是,在流媒体传输中。使用RTP/UDP和RTSP/TCP两种不同的通信协议与A/V服务器建立联系,是为了能够把服务器的输出重定向到一个不同于运行A/V Helper程序所在客户机的目的地址。实现流媒体传输一般都需要专用服务器和播放器。
3、流媒体传输模式
流媒体之所以能够实现多媒体数据的实时播放是采用了专门的网络控制协议和数据传输机制。服务器端有专门的流媒体发布系统,而客户端则有专门的播放器,这两部分都需要通过数据缓存区进行数据的缓存。
与普通的分组交换网络不同,流媒体系统的缓存区中的数据在数据传输过程中是动态的,也可成为是交换状态的,数据以堆栈方式进出缓冲区,而不需要等待数据全部达到客户 机后才从缓冲区中被释放出来,由于数据缓冲区中的数据是“流动”的,再加上数据的播放需要维持一个稳定的数据输出速度,随时都要求缓冲区有相应的数据提供给播放器,如果没有相应的数据,则会出现内容播放过程中的暂停和画面的条约,出现前一种情况一般是由于网络传输速度跟不上数据的播放速度,而发生了数据的 下溢,而后一种情况的发生是由于网络传输速度过快,超过了播放的速度,而又没有适当的传输控制而造成的数据上溢。
4、网络传输与控制协议
多媒体业务流由于其数据量大、实时等特点,对网络传输也提出相应的要求,主要表现在高带宽、低传输时延、同步和高可靠性几方面。为了保证好的QoS,必须考虑传输模式、协议栈和应用体系控制等问题。以下主要讨论应用于流媒体实时控制和传输的几种协议。
4.1 RTP/RTCP协议簇
RTP(Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输协议。RTP被定义为在一对一或一对多的传输情况下工作。其目的是提供时间信息和实现流同步。但RTP通常使用UDP来传送数据。但RTP也可以在TCP或ATM等其他协议之上工作。当应用程序开始一个RTP会话时将使用两个端口:一个给RTP一个给 RTCP。RTP本身并不能为接顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。通常RTP算法并不作为一个独立的网络层来实现,而是作为应用程序代码的一部分。实时传送控制协议RTCP。RTCP(Real-time Transport Control Protocol)和RTP提供流量控制和拥塞控制。在RTP会话期间,各参与者周期性地传送RTCP包。RTCP包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料。因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTP和RTCP配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化。因而特别适合传送网上的实时数据。 RTCP执行下列四大功能: 主要是提供数据发布的质量反馈。是作为RTP传输协议的一部分,与其他传输协议的流和阻塞控制有关。反馈对自适应编码控制直接起作用,但IP组播经验表明,从发送者收到反馈对诊断发送错误是致关重要的。给所有参加者发送接收反馈报告允许问题观察者估计那些问题是局部的,还是全局的。诸如IP组播等发布机制使网络服务提供商类团体可能接收反馈信息,充当第三方监控者来诊断网络问题。反馈功能由RTCP发送者和接收者报告执行。 RTCP带有称作规范名字(CNAME)的RTP源持久传输层标识。如发现冲突,或程序重新启动,既然SSRC标识可改变,接收者需要CNAME跟踪参加者。接收者也需要CNAME 与相关RTP连接中给定的几个数据流联系。 前两种功能要求所有参加者发送RTCP包,因此,为了RTP扩展到大规模数量,速率必须受到控制。让每个参加者给其它参加者发送控制包,就大独立观察参加者数量。该数量用语计算包发送的速率。 第四个可选功能是传送最小连接控制信息,如参加者辨识。最可能用在\"松散控制\"连接,那里参加者*进入或离开,没有成员控制或参数协调,RTCP充当通往所有参加者的方便通道,但不必支持应用的所有控制通讯要求。 RTP/RTCP是端对端基于组播的应用层协议。其中RTP(Realtime Transfer Protocol)用于数据传输,RTCP(Realtime Transfer Control Protocol)用于统计、管理和控制RTP传输,两者协同工作,能够显著提高网络实时数据的传输效率。 RTP和 RTCP都定义在RFC1889中。RTP用于在单播或多播情况下传输实时数据,通常工作在UDP上。RTP协议核心在于其数据包格式,它提供应用于多媒体的多个域,包括VOD,VoIP,电视会议等,并且不规定负载的大小,因此能够灵活应用于各媒体环境。但RTP协议本身不提供数据包的可靠传送和拥塞控制,必须依靠RTCP提供这些服务。RTCP的主要功能是为应用程序提供媒体质量信息。在RTP会话期间,每个参与者周期性地彼此发送RTCP控制包,包中封装了发送端或接收端的统计信息,包括发送包数、丢包数、包抖动等,这样发送端可以根据这些信息改变发送速率,接收端则可以判断包丢失等问题出在哪个网络段。总的来说,RTCP在流媒体传输中的作用有:QoS管理与控制、媒体同步和附加信息传递。 在RTP/RTCP协议基础上,不同的媒体类型需要不同的封装和管理技术。目前国际上正在研究基于RTP/RTCP的媒体流化技术,包括MPEG-1/2/4的媒体流化技术。4.2 RSVP协议
资源预留协议RSVP(Resource reSerVation Protocol)是针对IP网络传输层不能保证QoS和支持多点传输而提出的协议。RSVP在业务流传送前先预约一定的网络资源,建立静态或动态的传输 逻辑通路。从而保证每一业务流都有足够的“独享”带宽,因而能够克服网络的拥塞和丢包,提高QoS性能。
值得一提的 是,RSVP是由接收方执行操作的协议。接收方决定预留资源的优先级,并对预留资源进行初始化和管理。在网络节点(如路由器)上被要求预留的资源包括缓冲 区和带宽等,一般数据包通过位于网路节点上的“滤包器”使用预留资源,RSVP共有3种预留类型:无滤包器形式、固定滤包器形式和动态滤包器形式。
4.3 RTSP协议
实时流协议 (Real-Time Streaming Protocol)由RealNetworks和Netscape共同提出,是工作在RTP之上的应用层协议。它的主要目标是为单播和多播提供可靠的播放性能。RTSP的主要思想是提供控制多种应用数据传送的功能。即提供一种选择传送通道的方法,例如UDP、TCP、IP多播,同时提供基于RTP传送机制的方法。RTSP控制通过单独协议发送的流,与控制通道无关,例如,RTSP控制可通过TCP连接,而数据流通过UDP。通过建立并控制一个或几个时间同 步的连续流数据,其中可能包括控制流,RTSP能为服务器提供远程控制。另外,由于RTSP在语法和操作上与HTTP类似,RTSP请求可由标准HTTP 或MIME解析器解析,并且RTSP请求可被代理、通道与缓存处理。与HTTP相比,RTSP是双向的,即客户机和服务器都可以发出RTSP请求。
实现RTSP的系统必须支持通过TCP传输RTSP,并支持UDP。RTSP服务器的TCP和UDP缺省端口都是554。目前最新的微软Media Services V9和RealSystem都支持RTSP协议。
5、RTP/RTCP/RTSP协议
一.产生的背景:随着互连网的发展,人们已经不满足于传统的HTTP,FTP和电子邮件等文本信息和服务,而对内容丰富多彩的多媒体信息,服务以及多媒体通信方式提出了需求,包括声音,图象,图形,视频信息等等,而这些不但传输的数据量大而且对交互性和实时性要求很高。这时,基于HTTP的TCP协议无法达到要求,故产生RTP协议来进行多媒体数据实时传输。
二.RTP/RTCP/RTSP协议与TCP/IP协议对比
1)为什么TCP/IP协议就不能满足多媒体通信的要求呢?这是因为TCP有以下4个特点:
1.TCP重传机制
2.TCP拥塞控制机制
3.TCP报文头比UDP保文头要大
4.TCP的启动速度慢
2)RTP由IETF(Internet Engineering Task Force,互联网工程任务组)的音频/视频传输工作组制定,主要实现实时数据的传输,它在包头中提供编码类型,包中数据的采样时刻和数据包的序号,根据这些信息发送和接受方可以协商编码类型,可以对接收到的数据包进行排序等工作;RTCP主要负责传输质量的监控以及传送发送者的一些标志信息。试验和研究表明,RTP/RTCP所提出的实时数据的传输机制是行之有效的。
3)TCP/IP和RTP/RTCP对比记忆
IP:数据传输
RTP:多媒体数据实时传输
TCP:保证数据传输可靠
RTCP:保证多媒体数据传输的可靠
三.RTP/RTCP,RTSP协议对比说明
1)RTP(Realtime Transport Potocol 实时传输协议):提供时间标志,序列号以及其他能够保证在实时数据传输时处理时间的方法;
2)RTCP(Realtime Transport Control Potocol 实时传输控制协议):是RTP的控制部分,是用来保证服务质量和成员管理的;
3)RTSP(RealTime Streaming Potocol 实时流协议):具体数据传输交给RTP,提供对流的远程控制;
4)RSVP(Resource Reserve Potocol 资源预留协议):预留带宽,提高QoS(Quality of Sever)。
6、媒体价值链和运营模式
宽带流媒体 业务的价值链至少需要包括几个部分:应用提供商、内容开发商、业务支撑系统运营商、网络提供商、用户。其中,用户最终获得宽带流媒体应用业务,并为之付 费。应用提供商是宽带流媒体业务的直接提供者,直接面对用户提供业务。内容提供商是流媒体内容资源的拥有者,负责节目的制作,包括流媒体文件的生成、编 码、压缩。业务支撑系统运营商提供一个独立的可运营的管理和传输平台,为宽带流媒体应用提供支撑环境。网络提供商提供基本的承载网络。
目前,流媒体业务的运营模式还在不断发展中,网络运营商、应用提供商、内容提供商都在不断寻求成熟的运营模式和合作模式。
7、结束语
流媒体技术 包含了从服务器构架到网络协议等一系列技术,目前这些技术还在不断发展和完善中,同时各运营商也正在探索合适的商业模式。尽管如此,流媒体技术转变了传统 互联网限于文本和图片的二维呆板的内容表现形式,是宽带应用的发展方向。同时流媒体能够广泛应用于VOD、远程教学、网络广告、交互视频游戏等,大大拓宽服务范围,因此各电信运营商都看好流媒体业务,并希望能够以此带动宽带产业进入高速发展的时期。可以预见,流媒体业务将成为宽带网络上的主流信息业务。
流媒体应用:
1.在线直播
随着Internet的普及网络上舆的资料不再局限于文字和图形,有许多的视频应用需要在网上直播,如世界杯现场直播、春节晚会直播等。对电视台来说,利用流媒体技术实现在线直播,可以最大范围地覆盖观众,能像电视直播一样大致宣传、广告或满足观众需求的目的。
2.视频点播
随着多媒体技术、通信技术以及硬件存储技术的发展,人们已不再满足以往单一、被动的单方向信息获取方式。采用流媒体技术的视频点播(Video on Demand,VOD)的交互式业务,正受到人们的欢迎。现在网上很多的在线影院基本上都是采用RealNetwork公司的RealSystem或微软的Windows Meadia System。
3.远程教育
远程教育系统与传统学校教育相比,突破了时空限制,增加了学习机会,有利于扩大教育规模,提高教学质量,降低教学成本。学习者可以在自己方便的时间、适合的地点,按照自己需要的速度和方式,运用丰富的教学资源来进行教学。目前许多大学都已采用流媒体技术实现了远程教育。
此外,流媒体技术在电子商务、远程医疗和视频会议等许多方面都有成功应用。目前流媒体技术的应用主要有宽带和窄带两种方式。窄带方式包括多媒体新闻直播、远程教学、e-Learing、股评分析和视频会议等;宽带方式包括网络电视、KTV、企业培训和多媒体IDC等。
转自:《流媒体技术原理》
========================================
8、流媒体系统的组成
一个最基本的流媒体系统必须包括编码器(Encoder)、流媒体服务器(Server)和客户端面播放器(Player)3个模块。模块之间通过特定的协议互相通信,并按照特定格式互相交换文件数据。其中编码器用于将原始的音/视频转换成合适的流格式文件,服务器向客户端发送编码后的媒体流,客户端播放器则负责解码和播放接收到的媒体数据。
1、编码器
编码器的功能是对输入的原始音、视频信号进行压缩编码。不同的流媒体业务,对编码器有不同的性能要求。目前常用的视频编码方案有MPEG-4、H.264和Microsoft公司的Windows Media Video采用的AC-1;音频编码方案有MP3、MPEG-2、AAC、AMR和AMR-WB等。多媒体编码器所生成的码流只包含了解码该码流所必需的信息,不包含媒体间的同步、随机访问等系统信息,因此编码后的多媒体数据还要被组织成为流媒体文件格式用于传输或存储。
2、流媒体服务器
通常流媒体的播放采用以下三种方式
1)单播:在客户端与媒体服务器之间需要建立一个单独的数据通道,从一台服务器送出的每个数据包只能传送给一个客户机,这种传送方式称为单播。每个用户必须分别对媒体服务器发送单独的查询,而媒体服务器必须向每个用户发送所申请的数据包拷贝。这种巨大冗余首先造成服务器沉重的负担,响应需要很长时间,甚至停止播放;管理人员也*购买硬件和带宽来保证一定的服务质量。
2)组播:在IP组播技术构建一种具有组播能力的网络上,允许路由器一次将数据包复制到多个通道上。采用组播方式,单台服务器能够对几十万台客户机同时发送连续数据流而无延时。媒体服务器只需要发送一个信息包,而不是多个;所有发出请求的客户端共享同一信息包。信息可以发送到任意地址的客户机,减少网络上传输的信息包的总量。网络利用效率大大提高,成本大为下降。
3)点播与广播:点播连接是客户端与服务器之间的主动的连接。在点播连接中,用户通过选择内容项目来初始化客户端连接。用户可以开始、停止、后退、快进或暂停流。点播连接提供了对流的最大控制,但这种方式由于每个客户端各自连接服务器,却会迅速用完网络带宽。广播指的是用户被动接收流。在广播过程中,客户端接收流,但不能控制流。例如,用户不能暂停、快进或后退该流。广播方式中数据包的单独一个拷贝将发送给网络上的所有用户。 使用单播发送时,需要将数据包复制多个拷贝,以多个点对点的方式分别发送到需要它的那些用户,而使用广播方式发送,数据包的单独一个拷贝将发送给网络上的所有用户,而不管用户是否需要,上述两种传输方式会非常浪费网络带宽。组播吸收了上述两种发送方式的长处,克服了上述两种发送方式的弱点,将数据包的单独一个拷贝发送给需要的那些客户。组播不会复制数据包的多个拷贝传输到网络上,也不会将数据包发送给不需要它的那些客户,保证了网络上多媒体应用占用网络的最小带宽。
3、客户端播放器:音/视频RTP数据包经网络传输到客户端后,先进入一个缓冲队列等待,这个缓冲队列中的所有数据包按照包头的序列号排序,如果有迟到的包,则按序列号重新插入正确的位置上,这样就避免了乱序的问题。 客户端每次从队列头部读取一帧数据,从包头的时间标记中解出该帧的播放时间,然后进行音/视频同步处理。同步后的数据将送入解码器进行解码,解码后的数据被送入一个循环读取的缓冲中等待。一旦该帧的播放时间到达,就将解码数据从缓冲存中取出,送入播放模块进行显示或播放。
9、实时视频播放流程:当用户向流媒体发送请求时,将携带用户名、密码、RTSP端口号和非数据信息使用的端口号等信息。用户的视频请求信息转换成RTSP信息通过socket发送,在客户端和流媒体服务器中形成请求(request)和回应(response)。