流媒体技术概述

一、流媒体定义

所谓流媒体,是指采用流式传输的方式在Iternet播放的媒体格式。流媒体又称流式媒体,是将普通多媒体,如音频、视频、动画等,经过特殊编码,使其成为在网络中使用流式传输的连续时基媒体,以适应在网络上边下载边播放的方式。其具有连续性、实时性、时序性三个特点。在这个过程中,网络上传输的一系列相关的数据包称为流(Stream)。

二、流媒体特点

1.启动延时大幅度地缩短
用户不用等待所有内容下载到硬盘上才开始浏览,启动延时大幅度缩短,一般在带宽足够的情况下,影片片段基本在一分钟以内就显示在客户端上,而且在播放过程基本不会出现断续的情况。另外,全屏播放对播放速度几乎无影响,但快进、快倒时需要时间等待。

2.对系统缓存容量的需求大大降低
Internet是以包传输为基础进行断续的异步传输,数据被分解为许多包进行传输,动态变化的网络使各个包可能选择不同的路由,故到达用户计算机的时间延迟也就不同。所以,在客户端需要缓存系统来弥补延迟和抖动的影响及保证数据包传输顺序的正确,使媒体数据能连续输出,不会因网络暂时拥堵而使播放出现停顿。虽然流媒体仍需要缓存,但由于不需要把所有的动画、视音频内容都下载到缓存中,因此,对缓存的容量要求大大降低。

3.流式传输的实现有特定的实时传输协议
流媒体的流式告的过程采用RTSP、RTP、RTCP等实时传输协议,更加适合动画、音视频等流媒体文件在互联网上传输。

三、流媒体组成

一个基本的流媒体系统必须包括编码器(Encoder)、流媒体服务器(Server)和客户端播放器(Player)三个组成部分。各组成部分之间通过特定的协议互相通信,并按照特定格式互相交换文件数据。其中编码器用于将原始的音/视频转换成合适的流格式文件,服务器向客户端发送编码后的媒体流,客户端播放器则负责解码和播放接收到的媒体数据。
流媒体技术概述_第1张图片
1.编码器
编码器的功能是对输入的原始音、视频信号进行压缩编码。不同的流媒体业务,对编码器有不同的性能要求。目前常用的视频编码方案有MPEG-4、H.264和Microsoft公司的Windows Media Video采用的AC-1;音频编码方案有MP3、MPEG-2、AAC、AMR和AMR-WB等。多媒体编码器所生成的码流只包含了解码该码流所必需的信息,不包含媒体间的同步、随机访间等系统信息,因此编码后的多媒体数据仍要被组织成为流媒体文件格式用于传输或存储。
2.流媒体服务器
流媒体服务器用来存储和控制流媒体数据,并向客户端发送流媒体文件。
流媒体服务器的主要功能有:
(1)响应客户的请求,把媒体数据传送给客户。流媒体服务器在流媒体传送期间必须与客户的播放器保持双向通信(这种通信 是必需的,因为客户可能随时暂停或快放一个文件)。
(2)响应广播的同时能够及时处理新接收的实时广播数据,并将其编码。
(3)可提供其他额外功能,如数字权限管理(DRM)、插播广告、分割或镜像其他服务器的流,还有组播。
3.客户端播放器
音/视频数据包经网络传输到客户端后,先进入一个缓冲队列等待,这个缓冲队列中的所有数据包按照包头的序列号排序,如果有迟到的包,则按序列号重新插入正确的位置上,这样就避免了乱序的问题。
客户端每次从队列头部读取一帧数据,从包头的时间标记中解出该顿的播放时间,然后进行音/视频同步处理。同步后的数据将送入解码器进行解码,解码后的数据被送人一个循环读取的缓冲中等待。一旦该帧的播放时间到达,就将解码数据从缓冲中取出,送入播放模块进行显示或播放。

四、流媒体实现

在网络上传输音/视频等多媒体信息,目前主要有下载列流式传输两种方案。流式媒体在播放前并不下载整个文件,只将开始部分内容存人内存,流式媒体的数据流随时传送随时播放,只在开始时有一些延迟。流媒体实现的关键技术就是流式传输
实现流式传输需要使用缓存机制。因为音频或视频数据在网络中是以包的形式传输的,而网络是动态变化的,各个数据包选择的路由可能不尽相同,到达客户端所需的时间也就不一样,有可能会出现先发的数据包后到。因此,客户端如果按照包到达的次序播放数据,必然会得到不正确的结果。使用缓存机制就可以解决这个问题,客户端收到数据包后先缓存起来,播放器再从缓存中按次序读取数据。

客户端的流媒体播放器与流媒体服务器之间交换控制信息时使用的是RTSP协议,它是基于TCP协议的一种应用层协议,默认使用的是554端口。RTSP协议提供了有关流媒体播放、快进、快倒、暂停及录制等操作的命令和方法。通过RTSP协议,客户端向服务器提出了播放某一流媒体资源的请求,服务器响应了这个请求后,就可以把流媒体数据传输给客户端。
需要注意的是,RTSP协议并不具备传输流媒体数据的功能,承担流媒体数据传输任务的是另一种基于UDP的RTP协议,但在RTP协议传输流媒体数据的过程中,RTSP连接是一直存在的,并且控制着流媒体数据的传输。一旦流媒体数据到达了客户端,流媒体播放器就可以播放输出。流媒体的数据和控制信息使用不同的协议和连接时,还可以带来一个好处,就是播放流媒体的客户机和控制流媒体播放的客户机可以是不同的计算机。

实现流式传输有两种方式:实时流式传输(Realtime Streaming)和顺序流式传输(Progressive Streaming)。一般说来,如视频为实时广播,或使用流式传输媒体服务器,或应用如RTSP的实时协议,即为实时流式传输。如使用HTTP服务器,文件即通过顺序流发送。流式文件也支持在播放前完全下载到硬盘。

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

2.实时流式传输
实时流式传输指保证媒体信号带宽与网络连接匹配,使媒体可被实时观看到。实时流与HTTP流式传输不同,它需要专用的流媒体服务器与传输协议。
实时流式传输总是实时传送,特别适合现场事件,也支持随机访问,用户可快进或后退以观看前面或后面的内容。理论上,实时流一经播放就可不停止,但实际上,可能发生周期暂停。
实时流式传输必须匹配连接带宽,这意味着在以调制解调器速度连接时图像质量较差。而且,由于出错丢失的信息被忽略掉,网络拥挤或出现问题时,视频质量很差。若要保证视频质量,应选择顺序流式传输。
实时流式传输需要特定服务器,如QuickTime Streaming Server、RealSermer与品你务MGdiasaner。这些服务器允许对媒体发送进行更多级别的控制,因而系统设置、管理比标准HTTP服务器更复杂。
实时流式传输还需要特殊网络协议,如RTSP(Realtlime Streaming Protocol)或MMS(Microsoft Media Server)。这些协议在有防火墙时会出现问题,导致用户不能看到一些地点的实时内容。

五、流媒体播放

从不同的角度来看,流媒体播放方式的含义不同。

(1)从用户参与的角度来看,可分为点播和广播两种方式。

点播指用户主动与服务器进行连接,发出选择节目内容的请求,服务器应用户请求将节目内容传输给用户。在播放过程中,用户可以对播放的流进行开始、停止、后退、快进或暂停流。点播连接提供了对流的最大控制,但这种方式由于每个客户端各自连接服务器,会迅速用完网络带宽。
广播指的是媒体服务器主动发送流数据,用户被动接收流数据的方式。在广播过程中,客户端只能接收流,但不能控制流,例如,用户不能进行暂停、快进或后退操作。这种方式类似于电台广播或电视直播,用户可选择频道接收所需的广播节目,但是在收听收看节目时,不能随意控制节目的播放流程,在有些流媒体产品中将此称为直播。

(2)从服务器端传输数据的方式来看,可以分为单播、多播和广播3种发布方式。

IP协议支持单播、广播和多播(组播)3种地址类型。由于流媒体服务是在IP网络中实现的,因此流媒体在网上传输也有相应的三种方式。
单播指在客户端与媒体服务器之间需要建立一个单独的数据通道,即从一台服务器发送的每个数据包只能传送给一个客户机。单播是一种典型的点对点传输方式。每个用户必须分别对媒体服务器发送单独的请求,而媒体服务器必须向每个用户发送所请求的数据包复制,每份数据复制都要经过网络传输,占用带宽和资源,如果请求的用户多起来,网络和服务器将不堪重负。
多播又称组播,是一对多连接,多个客户端可以从服务器接收相同的流数据,即所有发出请求的客户端共享同一流数据,从而节省带宽资源。多播将一个数据流发送给多个客户端,而不是分别发送给每个客户端,客户端直接连接到多播流,而不是服务器。采用这种方式,一台服务器甚至能够对数万台客户机同时发送连续的数据流,而无延时的现象发生。
还有一种传输方式称为广播,在广播过程中,数据包的单独一个复制将发送给网络上的所有用户。不管用户是否需要,都进行广播传输,浪费了网络资源。为阻止广播风暴,一般将广播限制在一个子网中,流媒体传输中并不采用这种方式。这里的广播是指传输方式,而前面讲述的广播(直播)则指用户被动接收的播放方式。

在实际应用中,播放方式一般将上述方式结合起来,如点播单播、广播单播和广播多播。

六、流媒体传输质量控制

传输质量控制是制约流媒体服务性能的最重要因素。影响流媒体传输质量的因素主要包含以下几个。
(1)端到端的延迟:包括传输时延、传播时延、排队时延。它是影响流媒体质量最重要的因素之一。必须根据网络的负载情况,控制在一个合理的范围之内。
(2)时延抖动:是两个相邻分组的数据在网络传输过程中由于经过不同的网络延迟产生的。由于网络传输的不确定性,时延抖动是无法避免的,解决的方法通常是在接收端设置缓冲区,在数据流到达后,并不立即播放,而是保存在缓冲区,等到规定播放时间到来才进行播放。
(3)丢包率:是指网络拥塞时,数据流没有及时到达接收端。这时丢失的数据包将直接影响到接收播放的质量,一般情况下,丢包率不得超过1%。
(4)数据包的失序:每个数据帧都有一个序列号,以标记在流中正确的序号。在网络传输过程中,由于数据包经过不同的线路或丢包等原因,致使数据的顺序发生变化。解决的方法也是在接收端设置缓冲区,将接收到的数据进行重新组合,恢复原来的顺序。

流媒体是一种宽带业务,对于网络带宽、时延、延迟、和丢包率都有较高要求。目前流媒体领域已经发展了几种较为成熟的带宽适应和质量控制技术。
(1)缓存(Caching)技术。由于互联网是以断续的异步包传输为基础,一个实时媒体流或媒体文件在传输中将被分成多个包传输。由于网络的延时、抖动等因素,包到达客户端的顺序和延迟可能不一样,可能出现先发的包后到的情况,因此需要缓存系统来弥补网络延迟和抖动的影响,以保证数据包的顺序正确以及不会因为网络暂时拥塞而出现播放停顿的现象。缓存技术一般采用环形链表结构存储数据,丢弃已发送或已播放内容并利用空出的空间存储将要发送或将要播放的内容,所以一般缓存不会很大。目前主要用到的缓存技术有正向缓存、反向缓存和透明代理缓存技术。微软Media Services 和RealSystem都提供服务器端和播放器端的缓存设定。
(2)分流(spliting)技术。分流技术一般用在网络直播时。发送服务器通过UDP单播、UDP组播等方式将直播媒体流发送到分布在各地的多个接收服务器,客户端可以就近访问服务器获得较高质量的媒体流,同时减少带宽使用。发送服务器与接收服务器之间由高速链路连接。分流技术分推(Push)和拉(Pull)两种模式,目前微软Media Services 和RealSystem都支持分流技术。
(3)内容分发网络(CDN)技术。CDN是近几年才发展起来的新技术,它作为基础IP网络之上的一个内容叠加网,通过引入主动内容管理、全局负载均衡和内容缓存等技术,可以将用户请求的流媒体内容发布到距离用户最近的网络边缘,从而提高用户访间的响应速度,并有效解决网络拥塞,最大限度地减轻骨干网络流量。CDN为在WAN或MAN范围开展流媒体业务提供了有效的QoS保证。
(4)智能流技术。智能流技术出现之前,“视频流瘦化”方法以及“带宽协调”方法是解决流媒体传送速率的基本方法。

你可能感兴趣的:(多媒体技术,流媒体,RTSP)