流媒体技术 rtp/rtcp/rtsp资料精华!



流媒体技术 rtp/rtcp/rtsp资料精华!

流媒体技术
  流媒体是指在网络中使用流式(Sreaming)传输技术进行传输的连续时基媒体。如音频数据流或视频数据流,而不是一种新的媒体。流媒体技术(或称为流式媒体技术)就是把连续的影像和声音信息通过压缩处理后放到网络server上,让浏览者一边下载一边观看、收听,而不需要等到整个多媒体文件下载完毕就可以即时观看的技术。流媒体技术并不是单一的技术。它是融合流媒体数据的採集、压缩、存储、传输以及网络通讯等多项技术以后所产生的技术。
  流媒体给互联网带来的变化是巨大的,对于用户来说,观看流媒体文件与观看传统的音视频文件在操做上差点儿没有不论什么区别。

唯一有区别的就是在影音品质上。由于流媒体为了解决带宽问题以及缩短下载时间。而採用了较高的压缩比,所以用户感觉不到很是高的图像和声音质量。算法

 

  一.流式传输 

  流式传输定义很是普遍,现在主要指经过网络传送媒体(如视频、音频)的技术总称。浏览器

其特定含义为经过Internet 将影视节目传送到PC机。网络

实现流式传输有两种方法:实时流式传输(Realtime streaming)和顺序流式传输(progressive streaming)。 

  1.顺序流式传输


  顺序流式传输是顺序下载,在下载文件的同一时候用户可观看再线媒体,在给定时刻,用户仅仅能观看已下载的那部分,而不能跳到还未下载的前头部分,顺序流式传输不象实时流式传输在传输期间依据用户链接的速度作调整。由于标准的HTTPserver可发送这样的形式的文件,也不需要其它特殊协议,它常常被称做HTTP流式传输。顺序流式传输比較适合高质量的短片断,如片头、片尾和广告,由于该文件在播放前观看的部分是无损下载的,这样的方法保证电影播放的终于质量。这意味着用户在观看前,必须经历延迟。对较慢的链接尤为如此。tcp

 
  对经过调制解调器公布短片断,顺序流式传输显得很是有用。它赞成用比调制解调器更高的数据速率建立视频片断。虽然有延迟,毕竟可以让你公布较高质量的视频片断。ide

 
  顺序流式文件是放在标准HTTP 或FTPserver上。易于管理,基本上与防火墙无关。顺序流式传输不适合长片断和有随机訪问要求的视频,如:讲座、演说与演示。工具

它也不支持现场广播,严格说来。它是一种点播技术。


  2.实时流式传输

  二.流媒体技术原理
  多媒体数据必须进行预处理才干适合流式传输,这是由于眼下的网络带宽对多媒体巨大的数据流两来讲还显得远远不够。预处理主要包含双方面:一是减小质量。二是採用先进高效的压缩算法。 

  流式传输的过程一般是这样的:

  (1)用户选择某一流媒体服务后。Web浏览器与Webserver之间使用HTTP/TCP交换控制信息。以便把需要传输的音/视频流实时数据从原始信息中检索出来。

  (2)客户机上的Web浏览器启动client程序(即一些播放程序),使用HTTP从Webserver检索相关參数对client程序进行初始化。这些參数可能包含文件夹信息、音/视频数据的编码类型或与A/V检索相关的server地址。post



   (3)client程序及流媒体server执行实时流控制协议(RTSP),以交换音/视频数据流传输所需的控制信息。RTSP起到一个遥控器的做用,用于client对流媒体server的远程控制,控制媒体数据流的播放、快进、快倒、暂停等命令。

  (4)流媒体server使用RTP/UDP协议将音/视频传输数据给client程序,一旦音/视频数据抵达client,音/视频客户程序就能够播放输出。性能



   需要说明的是,在流式传输中,使用RTP/UDP和RTSP/TCP两种不一样的通讯协议与流媒体server创建联系。是为了可以把server的输出重定向到一个不一样于执行client程序所在客户机的目的地址。实现流式传输通常都需要专用server和播放器。



  三.支持流媒传输的网络协议
  1.实时传输协议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包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,所以,server可以利用这些信息动态地改变传输速率。甚至改变有效载荷类型。

RTP和RTCP配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,于是特别适合传送网上的实时数据。 
  RTCP执行下列四大功能: 
  主要是提供数据公布的质量反馈。是做为RTP传输协议的一部分,与其它传输协议的流和堵塞控制有关。反馈对自适应编码控制直接起做用。但IP组播经验代表。从发送者收到反馈对诊断发送错误是致关重要的。

给所有參加者发送接收反馈报告赞成问题观察者预计那些问题是局部的,仍是全局的。

诸如IP组播等公布机制使网络服务提供商类团体可能接收反馈信息,充当第三方监控者来诊断网络问题。

反馈功能由RTCP发送者和接收者报告执行。 
  RTCP带有称做规范名字(CNAME)的RTP源持久传输层标识。如发现冲突。或程序又一次启动。既然SSRC标识可改变,接收者需要CNAME跟踪參加者。接收者也需要CNAME 与相关RTP链接中给定的几个数据流联系。

 
  前两种功能要求所有參加者发送RTCP包,所以,为了RTP扩展到大规模数量,速率必须受到控制。让每个參加者给其它參加者发送控制包。就大独立观察參加者数量。该数量用语计算包发送的速率。 
  第四个可选功能是传送最小链接控制信息。如參加者辨识。最可能用在\"松散控制\"链接。那里參加者自由进入或离开,没有成员控制或參数协调,RTCP充当通往所有參加者的方便通道,但没必要支持应用的所有控制通信要求。


  2.实时流协议RTSP

  实时流协议RTSP(RealTimeStreamingProtocol)是由RealNetworks和Netscape共同提出的,该协议定义了一对多应用程序怎样有效地经过IP网络传送多媒体数据。RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或RTP完毕传输数据。

HTTP与RTSP相比,HTTP传送HTML。而RTP传送的是多媒体数据。

HTTP请求由客户机发出,server做出响应;使用RTSP时,客户机和server都可以发出请求。即RTSP可以是双向的。 


  3.资源预订协议RSVP协议

  由于音频和视频数据流比传统数据对网络的延时更敏感,要在网络中传输高质量的音频、视频信息,除带宽要求以外,还需其它不少其它的条件。RSVP(ResourceReserveProtocol)是正在开发的Internet上的资源预订协议,使用RSVP预留一部分网络资源(即带宽),能在必定程度上为流媒体的传输提供QoS。在某些试验性的系统如网络视频会议工具vic中就集成了RSVP。 



  四.流媒体系统的组成

  一个最主要的流媒体系统必须包含编码器(Encoder)、流媒体server(Server)和client面播放器(Player)3个模块。

模块之间经过特定的协议互相通讯,并依照特定格式互相交换文件数据。当中编码器用于将原始的音/视频转换成合适的流格式文件,server向client发送编码后的媒体流,client播放器则负责解码和播放接收到的媒体数据。

 

  一、编码器

  编码器的功能是对输入的原始音、视频信号进行压缩编码。不一样的流媒体业务,对编码器有不一样的性能要求。

眼下常用的视频编码方案有MPEG-四、H.264和Microsoft公司的Windows Media Video採用的AC-1;音频编码方案有MP三、MPEG-二、AAC、AMR和AMR-WB等。多媒体编码器所生成的码流仅仅包含了解码该码流所必需的信息,不包含媒体间的同步、随机訪问等系统信息。所以编码后的多媒体数据还要被组织成为流媒体文件格式用于传输或存储。

  二、流媒体server

一般流媒体的播放採用下面三种方式

  1.单播


  在client与媒体server之间需要创建一个单独的数据通道,从一台server送出的每个数据包仅仅能传送给一个客户机,这样的传送方式称为单播。

每个用户必须分别对媒体server发送单独的查询,而媒体server必须向每个用户发送所申请的数据包拷贝。

这样的巨大冗余首先形成server沉重的负担,响应需要很是长时间,甚至中止播放;管理人员也被迫购买硬件和带宽来保证必定的服务质量。 


  2.组播


  在IP组播技术构建一种具备组播能力的网络上。赞成路由器一次将数据包拷贝到多个通道上。

採用组播方式,单台server可以对几十万台客户机同一时候发送连续数据流而无延时。媒体server仅仅需要发送一个信息包,而不是多个;所有发出请求的client共享同一信息包。信息可以发送到随意地址的客户机。减小网络上传输的信息包的总量。网络利用效率大大提升,成本大为降低。 


  3.点播与广播


  点播链接是client与server之间的主动的链接。在点播链接中,用户经过选择内容项目来初始化client链接。用户可以開始、中止、后退、快进或暂停流。

点播链接提供了对流的最大控制,但这样的方式由于每个client各自链接server。却会迅速用完网络带宽。

 
  广播指的是用户被动接收流。在广播过程当中,client接收流。但不能控制流。好比。用户不能暂停、快进或后退该流。广播方式中数据包的单独一个拷贝将发送给网络上的所有用户。 使用单播发送时。需要将数据包复制多个拷贝,以多个点对点的方式分别发送到需要它的那些用户,而使用广播方式发送。数据包的单独一个拷贝将发送给网络上的所有用户,而不管用户是否需要,上述两种传输方式会很是浪费网络带宽。组播吸取了上述两种发送方式的好处,克服了上述两种发送方式的弱点,将数据包的单独一个拷贝发送给需要的那些客户。组播不会复制数据包的多个拷贝传输到网络上,也不会将数据包发送给不需要它的那些客户。保证了网络上多媒体应用占用网络的最小带宽。

 



  三、client播放器

  音/视频RTP数据包经网络传输到client后,先进入一个缓冲队列等待,这个缓冲队列中的所有数据包依照包头的序列号排序。假设有迟到的包,则按序列号又一次插入正确的位置上。这样就避免了乱序的问题。
  client每次从队列头部读取一帧数据。从包头的时间标记中解出该帧的播放时间,而后进行音/视频同步处理。同步后的数据将送入解码器进行解码。解码后的数据被送入一个循环读取的缓冲中等待。一旦该帧的播放时间到达,就将解码数据从缓冲存中取出,送入播放模块进行显示或播放。


  五.流媒体文件格式
  流媒体文件格式是支持採用流式传播及播放的媒体格式。流式文件格式通过特殊编码,使其适合在网络上边下载边播放,而不是等到下载完整个文件才干播放。

将压缩媒体文件编码成流式文件。必须假如一些附加信息,如计时、压缩和版权信息。




  六.流媒体应用

  1.在线直播
  随着Internet的普及网络上舆的资料再也不局限于文字和图形,有不少的视频应用需要在网上直播。如世界杯现场直播、春节晚会直播等。对电视台来讲,利用流媒体技术实现在线直播。可以最大范围地覆盖观众,能像电视直播同样大体宣传、广告或知足观众需求的目的。

  2.视频点播
  随着多媒体技术、通讯技术以及硬件存储技术的发展。人们已再也不知足以往单1、被动的单方向信息获取方式。採用流媒体技术的视频点播(Video on Demand,VOD)的交互式业务,正受到人们的欢迎。现在网上很是多的在线影院基本上都是採用RealNetwork公司的RealSystem或微软的Windows Meadia System。



  3.远程教育
  远程教育系统与传统学校教育相比,突破了时空限制。添加了学习机会,有利于扩大教育规模,提升教学质量,减小教学成本。

学习者可以在本身方便的时间、适合的地点,依照本身需要的速度和方式。运用丰富的教学资源来进行教学。眼下不少大学都已採用流媒体技术实现了远程教育。



  此外。沪江网校也是。流媒体技术在电子商务、远程医疗和视频会议等不少方面都有成功应用。眼下流媒体技术的应用主要有宽带和窄带两种方式。

窄带方式包含多媒体新闻直播、远程教学、e-Learing、股评分析和视频会议等;宽带方式包含网络电视、KTV、企业培训和多媒体IDC等。

相关文章
相关标签/搜索