流媒体概述

1.概述

  流媒体技术——把连续的影像和声音信息经过压缩处理后放上网服务器,由视频服务器向用户计算机顺序或实时地传送各个压缩包,让用户一边下载一边观看、收听,而不要等整个压缩文件下载到自己的计算机上才可以观看的网络传输技术。 该技术先在使用者端的计算机上创建一个缓冲区,在播放前预先下一段数据作为缓冲,在网路实际连线速度小于播放所耗的速度时,播放程序就会取用一小段缓冲区内的数据,这样可以避免播放的中断,也使得播放品质得以保证。

   根据媒体形式的不同,流媒体可分为如下五类:

1)、流式音频。网上流式音频主要有数字化声音、音乐和语音识别三种形式,如ToolVox,RealAudio,Crescendo MIDI等。
2)、流式视频。如VDO Net公司的VDO Live,CISCO公司的IP/TV, XING Technology公司的StreamWorks等。
3)、流式动画。如Macromedia公司的FLASH矢量动画。
4)、流式图象。新推出的RealPlayer G2支持RealPix流式图象文件格式。
5)、流式文本。新推出的RealPlayer G2支持RealText流式文本文件格式。

顺序流传输

  顺序流传输采用顺序下载的方式进行传输,在下载的同时用户可以在线回放多媒体数据,但给定时刻只能观看已经下载的部分,不能跳到尚未下载的部分,也不能在传输期间根据网络状况对下载速度进行调整。由于标准的HTTP服务器就可以发送这种形式的流媒体,而不需要其他特殊协议的支持,因此也常常被称作 HTTP流式传输。顺序流式传输比较适合于高质量的多媒体片段,如片头、片尾或者广告等。由于该文件在播放前观看的部分是无损下载的,这种方法保证电影播放的最终质量。这意味着用户在观看前,必须经历延迟,对较慢的连接尤其如此。  顺序流式文件是放在标准HTTP 或 FTP服务器上,易于管理,基本上与防火墙无关。顺序流式传输不适合长片段和有随机访问要求的视频,如:讲座、演说与演示。它也不支持现场广播,严格说来,它是一种点播技术。

实时流传输

  实时流式传输保证媒体信号带宽能够与当前网络状况相匹配,从而使得流媒体数据总是被实时地传送,因此特别适合于现场事件。实时流传输支持随机访问, 即用户可以通过快进或者后退操作来观看前面或者后面的内容。从理论上讲,实时流媒体一经播放就不会停顿,但事实上仍有可能发生周期性的暂停现象,尤其是在 网络状况恶化时更是如此。与顺序流传输不同的是,实时流传输需要用到特定的流媒体服务器,而且还需要特定网络协议的支持。  实时流式传输必须配匹连接带宽,这意味着在以调制解调器速度连接时图象质量较差。而且,由于出错丢失的信息被忽略掉,网络拥挤或出现问题时,视频质量很 差。如欲保证视频质量,顺序流式传输也许更好。实时流式传输需要特定服务器,如QuickTime Streaming Server、RealServer与Windows Media Server。这些服务器允许你对媒体发送进行更多级别的控制,因而系统设置、管理比标准HTTP服务器更复杂。实时流式传输还需要特殊网络协议, 如:RTSP (Realtime Streaming Protocol)或MMS (Microsoft Media Server)。这些协议在有防火墙时有时会出现问题,导致用户不能看到一些地点的实时内容。

 

2、流式传输的原理

(1)流式传输的实现途径与过程

     预处理(压缩)+缓存+传输协议

     首先,多媒体数据必须进行预处理才能适合流式传输,这是因为目前的网络带宽对多媒体巨大的数据流量来说还显得远远不够。预处理主要包括两方面:一是降低质量;二是采用先进高效的压缩算法。

    其次,流式传输的实现需要缓存。这是因为Internet是以包传输为基础进行断续的异步传输。数据在传输中它们要被分解为许多包,由于网络是动态变化的,各个包选择的路由可能不尽相同,故到达客户端的时间延迟也就不等。为此,使用缓存系统来弥补延迟和抖动的影响,并保证数据包的顺序正确, 从而使媒体数据能连续输出,而不会因网络暂时拥塞使播放出现停顿。

    再次,流式传输的实现需要合适的传输协议。WWW技术是以HTTP协议为基础的,而HTTP又建立在TCP协议基础之上。由于TCP需要较多的开销,故不太适合传输实时数据。在流式传输的实现方案中,一般采用HTTP/TCP来传输控制信息,而用RTP/UDP来传输实时声音数据

 

(2)支持流媒体传输的网络协议

A、实时传输协议RTP与RTCP

  RTP: 实时传输协议(Real-timeTransportProtocol)一种用于Internet上针对多媒体数据流的一种传输协议。
  RTCP: 实时传输控制协议(Real-timeTransportControlProtocol)和RTP一起提供流量控制和拥塞控制服务。

     RTP/RTCP 是端对端基于组播的应用层协议。其中RTP(Realtime Transfer Protocol)用于数据传输,RTCP(Realtime Transfer Control Protocol)用于统计、管理和控制RTP传输,两者协同工作,能够显著提高网络实时数据的传输效率。 RTP是用于Internet上针对多媒体数据流的一种传输协议。RTP被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步RTP通常使用UDP来传送数据,但RTP也可以在TCP或ATM等其他协议之上工作。当应用程序开始一个RTP会话时将使用两个端口:一 个给RTP,一个给RTCP。RTP本身并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。通常 RTP算法并不作为一个独立的网络层来实现,而是作为应用程序代码的一部分。

  RTP和 RTCP都定义在RFC1889中。RTP用于在单播或多播情况下传输实时数据,通常工作在UDP上。RTP协议核心在于其数据包格式,它提供应用于多媒体的多个域,包括VOD,VoIP,电视会议等,并且不规定负载的大小,因此能够灵活应用于各媒体环境。但RTP协议本身不提供数据包的可靠传送和拥塞控制,必须依靠RTCP提供这些服务。RTCP的主要功能是为应用程序提供媒体质量信息。在RTP会话期间,每个参与者周期性地彼此发送RTCP控制包,包 中封装了发送端或接收端的统计信息。包括发送包数、丢包数、包抖动等,这样发送端可以根据这些信息改变发送速率,接收端则可以判断包丢失等问题出在哪个网 络段。总的来说,RTCP在流媒体传输中的作用有:QoS管理与控制、媒体同步和附加信息传递。

  在RTP/RTCP协议基础上,不同的媒体类型需要不同的封装和管理技术。目前国际上正在研究基于RTP/RTCP的媒体流化技术,包括MPEG-1/2/4的媒体流化技术。

B、 实时流协议RTSP

    RTSP:实时流协议 (RealTimeStreamingProtocol) 定义了一对多的应用程序如何有效地通过IP网络传送多媒体数据。

     实时流协议RTSP(RealTimeStreamingProtocol)是由RealNetworks和Netscape共同提出的,该协议定义了一 对多应用程序如何有效地通过IP网络传送多媒体数据。RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或RTP完成数据传输HTTP与 RTSP相比,HTTP传送HTML,而RTP传送的是多媒体数据。HTTP(超文本传输协议(HTTP,HyperText Transfer Protocol))请求由客户机发出,服务器作出响应;使用RTSP时,客户机和服务器都可以发出请求,即RTSP可以是双向的。

 

C、资源预订协议RSVP协议

     RSVP:资源预订协议(ResourceReserveProtocol )正在开发的Internet上的资源预订协议。

    由于音频和视频数据流比传统数据对网络的延时更敏感,要在网络中传输高质量的音频、视频信息,除带宽要求之外,还需其他更多的条件。 使用RSVP预留一部分网络资源(即带宽),能在一定程度上为流媒体的传输提供方便

 

(3) 识别流媒体类型的途径--MIME

  Web服务器和Web浏览器如何识别流媒体并进行相应的处理呢?答案是MIME。MIME是MultipurposeInternet MailExtensions(通用因特网邮件扩展)的缩略词。它不仅用于电子邮件,还能用来标记在Internet上传输的任何文件类型。Web服务器 和Web浏览器都基于HTTP协议,而HTTP都内建有MIME。HTTP正是通过MIME标记Web上繁多的多媒体文件格式。

 

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

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

2)、 然后客户机上的Web浏览器启动A/VHelper程序,使用HTTP从Web服务器检索相关参数对Helper程序初始化。这些参数可能包括目录信息、A/V数据的编码类型或与A/V检索相关的服务器地址。

3)、 A/VHelper程序及A/V服务器运行实时流控制协议(RTSP),以交换A/V传输所需的控制信息。与CD播放机或VCRs所提供的功能相似,RTSP提供了操纵播放、快进、快倒、暂停及录制等命令的方法。

4)、 A/V服务器使用RTP/UDP协议将A/V数据传输给A/V客户程序(一般可认为客户程序等同于Helper程序),一旦A/V数据抵达客户端,A/V客户程序即可播放输出。

    需要说明的是,在流式传输中,使用RTP/UDP和RTSP/TCP两种不同的通信协议与A/V服务器建立联系,是为了能够把服务器的输出 重定向到一个不同于运行A/VHelper程序所在客户机的目的地址。实现流式传输一般都需要专用服务器和播放器。

  客户端的流媒体播放器与流媒体服务器之间交换控制信息时使用的是RTSP协议,它是基于TCP协议的一种应用层协议,默认使用的是554端口。 RTSP协议提供了有关流媒体播放、快进、快倒、暂停及录制等操作的命令和方法。通过RTSP协议,客户端向服务器提出了播放某一流媒体资源的请求,服务器响应了这个请求后,就可以把流媒体数据传输给客户端了。

  需要注意的是,RTSP协议并不具备传输流媒体数据的功能,承担流媒体数据传输任务的是另一种基于UDP的RTP协议,但在RTP协议传输流媒体数据的过程中,RTSP连接是一直存在的,并且控制着流媒体数据的传输。一旦流媒体数据到达了客户端,流媒体播放器就可以播放输出了。流媒体的数据和控制信 息使用不同的协议和连接时,还可以带来一个好处,就是播放流媒体的客户机和控制流媒体播放的客户机可以是不同的计算机。

  从图中可以看出,RTP被划分在传输层,它建立在UDP上。同UDP协议一样,为了实现其实时传输功能,RTP也有固定的封装形式。RTP用来为端到端的实时传输提供时间信息和流同步,但并不保证服务质量。服务质量由RTCP来提供。

 

3.流媒体播放方式

(1)单播

    在客户端与媒体服务器之间需要建立一个单独的数据通道,从一台服务器送出的每个数据包只能传送给一个客户机,这种传送方式称为单播。每个用户必须分别对媒体服务器发送单独的查询,而媒体服务器必须向每个用户发送所申请的数据包拷贝。这种巨大冗余首先造成服务器沉重的负担,响应需要很长时间, 甚至停止播放;管理人员也被迫购买硬件和带宽来保证一定的服务质量。

(2)组播

    组播技术构建一种具有组播能力的网络,允许路由器一次将数据包复制到多个通道上。采用组播方式,单台服务器能够对几十万台客户机同时发 送连续数据流而无延时。媒体服务器只需要发送一个信息包,而不是多个;所有发出请求的客户只需连结到这个数据流而不是连结到视频服务器,从而降低带宽的使 用。网络利用效率大大提高,成本大为下降。

(3)点播与广播

     点播连接是客户端与服务器之间的主动的连接。在点播连接中,用户通过选择内容项目来初始化客户端连接。用户可以开始、停止、后退、快进或暂停流。点播连接提供了对流的最大控制,但这种方式由于每个客户端各自连接服务器,却会迅速用完网络带宽。

     广播指的是用户被动接收流。在广播过程中,客户端接收流,但不能控制流。例如,用户不能暂停、快进或后退该流。广播方式中数据包的单独一个拷贝将发送给网络上的所有用户,而不管用户是否需要。

     使用单播发送和广播方式发送的方式会非常浪费网络带宽,组播吸收了上述两种发送方式的长处,克服了上述两种发送方式的弱点,组播不会复制数据包的多个拷贝传输到网络上,也不会将数据包发送给不需要它的那些客户,保证了网络上多媒体应用占用网络的最小带宽。

 

4.流媒体的文件格式

(1)、 压缩媒体文件格式

     压缩格式有时被称为压缩媒体格式,包含了描述一段声音和图象的同样信息,尽管它的文件大小被处理得更小。很明显,压缩过程改变了数据位的编排。在压缩媒体 文件再次成为媒体格式前,其中数据需要解压缩。由于压缩过程自动进行,并内嵌在媒体文件格式中,通常我们在存储文件时没有注意到这点。

 

                                                  

  

(2)、 流式文件格式

    流式文件格式经过特殊编码,使其适合在网络上边下载边播放,而不是等到下载完整个文件才能播放。可以在网上以流的方式播放标准媒体文件,但效率不高。将压缩媒体文件编码成流式文件,必须假如一些附加信息,如计时、压缩和版权信息。编码过程如图三所示。表一列举了常用的流式文件类型。

                             

(3)、媒体发布格式

    媒体发布格式不是压缩格式,也不是传输协议,其本身并不描述视听数据,也不提供编码方法。媒体发布格式是视听数据安排的唯一途径,物理数据 无关紧要,我们仅需要知道数据类型和安排方式。以特定方式安排数据有助于流式多媒体的发展,因为我们希望有一个开放媒体发布格式为所有商业流式产品应用, 为应用不同压缩标准和媒体文件格式格式的媒体发布提供一个事实上的标准方法。我们也可从以相同格式同步不同类型流中获益。 总有一天,单个媒体发布格式能包含不同类型媒体的所有信息,如计时、多个流同步、版权和所有人信息。实际视听数据可位于多个文件中,而由媒体发布文件包含 的信息控制流的播放。常用媒体发布格式如表二所示。

 

 

5.媒体服务器

<1>、媒体服务器的硬件平台

     视频服务器的工作模式是当服务器响应客户的视频流后,从存储系统读入一部分视频数据到对应于这个视频流的特定的缓存中,然后此缓存中的内容送入网络接口发 送到客户。当一个新的客户请求视频服务时,服务器根据系统资源的使用情况,决定是否响应此请求。系统的资源包括存储I/O的带宽、网络带宽、内存大小和 CPU的使用率。

(1) 、目前有三中类型的视频服务器结构:

A、通用主机方法

     最早的通用视频服务器采用计算机主机来实现其功能,它运行在一个标准的操作系统上,如UNIX系统,硬件由一系列众多的的视频磁盘阵列组成。视频服务器的 主要功能是存储、选择、传送大量的数据,却很少进行数据处理。因此,将主机作为视频服务器既不利于发挥主机的主要功能,有增加了系统的成本,因为必须提供 大量的并非必须的硬件和软件。因此,有必要研究具有专门的功能、结构简单的视频服务器。

B、紧耦合多处理机

     按照视频服务器功能要求,制作出大量完成某项指令或专门功能的硬件单元,然后将相关单元组合成相应的专用系统。这些系统有的擅长创建静止图象,有的是数据 库管理器,还有的是网络设备和其它动态视频的数据库。最后将这些系统级联起来构成紧耦合多处理机实现的视频服务器。这种服务器费用低、性能高、功能强,具 有解决专项问题的特征,但节目受到一定的限制,扩展性较差。

C、调谐视频服务器

     调谐视频服务器的主板有一个有独特微码的嵌入式仿真器控制。磁盘控制器、ATM打包器和记帐计算机接口都利用这些极高速的仿真器来提供它们的功能和各功能 块间的通讯。仿真器是通过特殊的寄存器总线和微码紧密耦合的。调谐视频服务器的结构是可扩展的。只要在主板中插入更多的服务通路,就可以达到扩容的目的。

(2)、 视频服务器的软件平台

     网络视频平台包括媒体内容制作、发行与管理模块、用户管理模块、视频服务器。内容制作涉及视频采集、编码。发行模块负责将节目提交到网页,或将视频流地址 邮寄给用户。内容管理主要完成视频存储、查询;节目不多时可使用文件系统,当节目量大,就必须编制数据库管理系统。用户管理可能包括用户的登记和授权。视频服务器将内容通过点播或直播的方式播放。对范围广、用户多的播放,可在不同区域的中心(如中国华东上海、华北北京、华中武汉等)建立相应的分发中心,协 同完成播放。此外,对商业站点,还应包括计费系统等。网络视频播放的结构如图三所示。

1)任务服务(Session Service)

    建立和维持客户和服务器之间的通信通道;为特定的客户设备管理一系列的服务器资源;每一个客户设备只分配一个任务。

2)内容服务(Content Service)

 

               其操作过程如下:

        ⑴、 为当前的一个或多个视频主题查询内容;
        ⑵、 容服务返回一个与所需要的视频内容相关联的"assetcookie";
        ⑶、 客户把"assetcookie"交给流服务,准备视频内容"流化"
        ⑷、 流服务用节目解析器解析出"assetcookie";
        ⑸、 流服务定位MDS中所关联的节目内容;
        ⑹、 流服务指引"视频泵""流出"节目内容到客户端。

 

 

 

 

3)流服务(StreamService)

    流服务指引"视频泵"(VideoPump)以实时流的形式分发数据(MPEG-1或MPEG-2传输流)到客户端;同"视频泵"一起执行 VCR控制功能(暂停、继续、快进、快退);客户端通过媒体网络(MediaNet)以流(MediaNetStream)的形式接收BLOB数据;

     -BLOB(BinaryLargeOBject)二进制大对象,如bitmap(位图)、imagestills(静止画面)及客户需要下载供本地访问 的一些存储在VS中的数据,以可靠方式传输(通过MN),而实时视频流的传输往往被认为是不可靠的(如图五)。

4)媒体数据存储服务(MediaDataStoreService-MDS)

     进行文件管理(创建、存储、修改、删除)及目录管理功能;当"视 频泵"(videopump)要"播"一个视频文件时,它先给MDS目录服务器(MDSDirectoryServer)发一个消息打开文件,然后从该目 录服务器得到这个文件的磁盘布局数据;由于影像文件都很大,视频服务器采用RAID(Redundant Arrays of Inexpensive Disks)存储影像文件;所有用来存储影像节目文件的磁盘称作一个卷(volume),每个卷都有一个TOC(table of contents),存储卷里面的文件及它们在磁盘阵列的位置,TOC的大小决定了一个卷能存储文件的个数;AStripe是卷上所有磁盘同样大小的一块 存储空间;Striping是把一个文件分散成片(块)存储在不同的磁盘上,可以减少单块盘的访问次数和时间,以利于并发流的处理;存储节目时,先存 tableofcontents(如文件的大小、创建的时间、在磁盘阵列中的位置等),然后横跨磁盘连续地存储,每一块盘上存一个stripe,当写完第 一个RAID后,继续下一个RAID,当写到最后一个RAID的最后一块硬盘时,又从第一个RAID写起。当最后一个stripe没写满时,会留下空的小 块,下次写盘时,又从下一个RAID开始写盘;因为采用RAID存储机制,当硬盘出现故障,不影响视频服务器正常运行,数据不会丢失。视频服务器还支持" 热插拔"(hot-swap)磁盘。

5)文件(节目)上传和下载(FTPService)

     视频服务器提供远程访问MDS的能力,即mdsftp。远程客户计算机 运行FTP即可上传和下载视频服务器中的MDS文件(影像节目文件),如图六所示。

    视频服务器还提供远程两台视频服务器之间上传和下载MDS文件(影 像节目文件)的能力,这特别适合分布式大规模VOD系统的实现。

6)RTSP服务

     RTSP(RealTimeStreamingProtocol)服务处理客户与服务器之间的 通信任务;接收客户基于RTSP协议的请求;把请求映射为适当的基于媒体网络(MN)的视频服务器呼叫;执行呼叫到合适的视频服务器进程;转发视频服务器 应答并返回给客户如图七。

 

   

 

 

 

 

 

 

 

posted @ 2015-06-23 21:03  zxqstrong  阅读(1376)  评论(0编辑  收藏  举报