分享

23.1.1 流媒体传输的基本原理

 guitarhua 2013-11-10

23.1.1 流媒体传输的基本原理  

2012-02-14 15:54:48|  分类: 流媒体服务器 |字号 订阅

第23章  流媒体服务器架设(pdf:http://wenku.baidu.com/view/1bab6ceff8c75fbfc77db2bd.html)

流媒体技术也称为流式传输技术,是指在网络上按时间先后次序传输和播放的连续音、视频数据流。随着网络速度的提高,以流媒体技术为核心的视频点播、在线电视、远程培训等业务开展得越来越广泛。本章主要介绍流媒体技术的基础知识、流媒体服务器的安装、运行、配置和使用等内容。

23.1  流媒体技术基础

流媒体是指利用流式传输技术传送的音频、视频等连续媒体数据,它的核心是串流(Streaming)技术和数据压缩技术,具有连续性、实时性、时序性3个特点,可以使用顺序流式传输和实时流式传输两种传输方式。本节主要介绍有关流媒体的技术基础。

23.1.1  流媒体传输的基本原理

实现流式传输需要使用缓存机制。因为音频或视频数据在网络中是以包的形式传输的,而网络是动态变化的,各个数据包选择的路由可能不尽相同,到达客户端所需的时间也就不一样,有可能会出现先发的数据包却后到。因此,客户端如果按照包到达的次序播放数据,必然会得到不正确的结果。使用缓存机制就可以解决这个问题,客户端收到数据包后先缓存起来,播放器再从缓存中按次序读取数据。

使用缓存机制还可以解决停顿问题。网络由于某种原因经常会有一些突发流量,此时会造成暂时的拥塞,使流数据不能实时到达客户端,客户端的播放就会出现停顿。如果采用了缓存机制,暂时的网络阻塞并不会影响播放效果,因为播放器可以读取以前缓存的数据。等网络正常后,新的流数据将会继续添加到缓存中。

虽然音频或视频等流数据容量非常大,但播放流数据时所需的缓存容量并不需要很大,因为缓存可以使用环形链表结构来存储数据,已经播放的内容可以马上丢弃,缓存可以腾出空间用于存放后续尚未播放的内容。

当传输流数据时,需要使用合适的传输协议。TCP虽然是一种可靠的传输协议,但由于需要的开销较多,并不适合传输实时性要求很高的流数据。因此,在实际的流式传输方案中,TCP协议一般用来传输控制信息,而实时的音视频数据则是用效率更高的RTP/UDP等协议来传输。流媒体传输的基本原理如图23-1所示。

在图23-1中,Web服务器只是为用户提供了使用流媒体的操作界面。客户机上的用户在浏览器中选中播放某一流媒体资源后,Web服务器把有关这一资源的流媒体服务器地址、资源路径及编码类型等信息提供给客户端,于是客户端就启动了流媒体播放器,与流媒体服务器进行连接。

 
(点击查看大图)图23-1  流媒体传输原理

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

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


23.1.2  实时流媒体协议RTSP

RTSP(Real Time Streaming Protocol,实时流媒体协议)是由Real Network和Netscape共同提出的一种应用层协议,它定义了如何在IP网络上有效地传输流媒体数据。RTSP提供了一种机制,使音频、视频等数据可以按照需要进行实时传输,并且可以实施诸如暂停、快进等控制。源数据可以是存储的文件,也可以是现场数据的反馈。RTSP协议本身并不传输数据,数据的传输是通过基于UDP协议的RTP协议来完成的。

RTSP协议与HTTP协议有点类似,通信双方是通过请求消息和回应消息进行交互的。请求消息的格式如下:

  1. <请求方法>  <URI>  <RTSP版本> 
  2. [消息头]  
  3. CR/ LF  
  4. [消息体] 

其中,请求方法包括PLAY、DESCRIBE等,可以通过OPTION方法得到对方所支持的其他方法名称。URI是对方的地址,例如:rtsp://192.168.0.1。"RTSP版本"一般都是RTSP/1.0。每一行的最后都是回车换行符CR/LF,消息头和消息体之间要有一个空行。回应消息格式如下:

  1. <RTSP版本> <状态码> <解释> 
  2. [消息头]  
  3. CR/LF  
  4. [消息体] 

回应消息的格式规定与请求消息类似。其中状态码是一个3位数,后面跟随着解释文本,例如,200表示成功。

HTTP协议是单向的,即只能是客户端提出请求,服务端给予回应,而使用RTSP时,客户机和服务器都可以发出请求,双方都可以对收到的请求进行应答,即RTSP可以是双向的。一个典型的RSTP交互过程如下所示,其中C表示RTSP客户端,S表示RTSP服务端

  1. C->S:    OPTION request     //客户端通过OPTION方法询问
    服务端支持哪些方法  
  2. S->C:    OPTION response    //服务端进行回应,提供了所支持方法的名称  
  3.  
  4. C->S:    DESCRIBE request   //客户端通过DESCRIBE方法查询服务
    端媒体的初始化描述
    //信息  
  5. S->C:    DESCRIBE response  //服务端回应媒体初始化描述信息,
    采用的是sdp会话描述
    //格式  
  6.  
  7. C->S:    SETUP request      //客户端通过SETUP方法设置会话
    的属性、传输模式等参数,
    //并请求建立会话  
  8. S->C:    SETUP response         //服务端响应回话请求,与客
    户端建立会话,并返回会话标识
    //符及其他相关信息  
  9.  
  10. C->S:    PLAY request       //客户端通过PLAY方法请求播放某一多媒体资源  
  11. S->C:    PLAY response      //服务器回应请求,开始发送流数据  
  12.  
  13. S->C:    …                      //此时,RTSP通过其他协议发送流媒体数据  
  14.  
  15. C->S:    TEARDOWN request   //客户端通过TEARDOWN方法请求关闭会话  
  16. S->C:    TEARDOWN response      //服务器回应请求,会话关闭,交互结束 

实际应用中,RTCP的交互过程可能和以上过程会有区别,但基本的流程是一样的。

说明:还有一种常见的流媒体协议是由Microsoft公司开发的MMS协议,但Microsoft公司没有公开该协议。


23.1.3  流媒体播放方式

流媒体服务器可以提供多种播放方式,它可以根据用户的要求,为每个用户独立地传送流数据,实现VOD(Video On Demand)的功能;也可以为多个用户同时传送流数据,实现在线电视或现场直播的功能。下面介绍一下这些播放方式的特点。

1.单播方式

当采用单播方式时,每个客户端都与流媒体服务器建立了一个单独的数据通道,从服务器发送的每个数据包都只能传给一台客户机。对用户来说,单播方式可以满足自己的个性化要求,可以根据需要随时使用停止、暂停、快进等控制功能。但对服务器还说,单播方式无疑会带来沉重的负担,因为它必须为每个用户提供单独的查询,向每个用户发送所申请的数据包复制。当用户数很多时,对网络速度、服务器性能的要求都很高。如果这些性能不能满足要求,就会造成播放停顿,甚至停止播放。

2.广播方式

承载流数据的网络报文还可以使用广播方式发送给子网上所有的用户,此时,所有的用户同时接受一样的流数据,因此,服务器只需要发送一份数据复制就可以为子网上所有的用户服务,大大减轻了服务器的负担。但此时,客户机只能被动地接受流数据,而不能控制流。也就是说,用户不能暂停、快进或后退所播放的内容,而且,用户也不能对节目进行选择。

3.组播方式

单播方式虽然用户提供了最大的灵活性,但网络和服务器的负担很重。广播方式虽然可以减轻服务器的负担,但用户不能选择播放内容,只能被动地接受流数据。组播吸取了上述两种传输方式的长处,可以将数据包复制发送给需要的多个客户,而不是像单播方式那样复制数据包的多个文件到网络上,也不是像广播方式那样将数据包发送给那些不需要的客户,保证数据包占用最小的网络带宽。当然,组播方式需要在具有组播能力的网络上使用。


23.1.4  流媒体文件的压缩格式

数据压缩技术也是流媒体技术的一项重要内容,由于视频数据的容量往往都非常大,如果不经过压缩或压缩得不够,则不仅会增加服务器的负担,更重要的是会占用大量的网络带宽,影响播放效果。因此如何在保证不影响观看效果或对观看效果影响很小的前提下,最大限度地对流数据进行压缩,是流媒体技术研究的一项重要内容。下面介绍一下几种主流的音视频数据压缩格式。

1.AVI格式

AVI(Audio Video Interleave,音频视频交错)是符合RIFF文件规范的数字音频与视频文件格式,由Microsoft公司开发,目前得到了广泛的支持。AVI格式支持256色和RLE压缩,并允许视频和音频交错在一起同步播放。但AVI文件并未限定压缩算法,只是提供了作为控制界面的标准,用不同压缩算法生成的AVI文件,必须要使用相同的解压缩算法才能解压播放。AVI文件主要应用在多媒体光盘上,用来保存电影、电视等各种影像信息。

2.MPEG格式

MPEG(Moving Picture Experts Group,动态图像专家组)是运动图像压缩算法的国际标准,已被几乎所有的计算机平台共同支持,它采用有损压缩算法减少运动图像中的冗余信息,同时保证每秒30帧的图像刷新率。MPEG标准包括视频压缩、音频压缩和音视频同步3个部分,MPEG音频最典型的应用就是MP3音频文件,广泛使用的消费类视频产品如VCD、DVD其压缩算法采用的也是MPEG标准。

MPEG压缩算法是针对运动图像而设计的,其基本思路是把视频图像按时间分段,然后采集并保存每一段的第一帧数据,其余各帧只存储相对第一帧发生变化的部分,从而达到了数据压缩的目的。MPEG采用了两个基本的压缩技术:运动补偿技术(预测编码和插补码)实现了时间上的压缩,变换域(离散余弦变换DCT)技术实现了空间上的压缩。MPEG在保证图像和声音质量的前提下,压缩效率非常高,平均压缩比为50∶1,最高可达200∶1。

3.RealVideo格式

RealVideo格式是由Real Networks公司开发的一种流式视频文件格式,包含在Real Media音频视频压缩规范中,其设计目标是在低速率的广域网上实时传输视频影像。RealVideo可以根据网络的传输速度来决定视频数据的压缩比率,从而提高适应能力,充分利用带宽。本章后面介绍的Real Server软件就是由Real Networks公司提供的,使用的就是Real Video格式的视频文件。

RealVideo格式文件的扩展名有3种,RA是音频文件、RM和RMVB是视频文件。RMVB格式文件具有可变比特率的特性,它在处理较复杂的动态影像时使用较高的采样率,而在处理一般静止画面时则灵活地转换至较低的采样率,从而在不增加文件大小的前提下提高了图像质量。

4.QuickTime格式

QuickTime是由Apple公司开发的一种音视频数据压缩格式,得到了Mac OS、Microsoft Windows等主流操作系统平台的支持。QuickTime文件格式提供了150多种视频效果,支持25位彩色,支持RLE、JPEG等领先的集成压缩技术。此外,QuickTime还强化了对Internet应用的支持,并采用一种虚拟现实技术,使用户可以通过鼠标或键盘的交互式控制,观察某一地点周围360度的景像,或者从空间的任何角度观察某一物体。QuickTime以其领先的多媒体技术和跨平台特性、较小的存储空间要求、技术细节的独立性以及系统的高度开放性,得到业界的广泛认可。QuickTime格式文件的扩展是MOV或QT。

5.ASF和WMV格式

ASF(Advanced Streaming Format,高级流格式)和WMV是由Microsoft公司推出的一种在Internet上实时传播多媒体数据的技术标准,提供了本地或网络回放、可扩充的媒体类型、部件下载以及可扩展性等功能。ASF的应用平台是Net Show服务器和Net Show播放器。

WMV也是Microsoft公司推出的一种流媒体格式,它是以ASF为基础,升级扩展后得到的。在同等视频质量下,WMV格式的体积非常小,因此很适合在网上播放和传输。WMV文件一般同时包含视频和音频部分,视频部分使用Windows Media Video编码,而音频部分使用Windows Media Audio编码。音频文件可以独立存在,其扩展名是WMA。


23.2  Helix Server的安装与运行

Helix Server是由著名的流媒体技术服务商Real Networks公司提供的一种流媒体服务器软件,利用它可以在网上提供Real Video和MMS格式文件的流媒体播放服务,配上相应设备后,还具有现场直播的功能。下面介绍一下有关Helix服务器的获取、安装、运行管理和使用方法。

23.2.1  Helix Server的获取

Helix服务器软件是一个商业软件,使用时需要付费。但RealNetworks公司提供了这个软件的试用评估版,可以从公司的网站下载,主页地址是http://www./,具体步骤如下:

(1)单击主页上的Helix Server链接后,在出现的页面上找到如图23-2所示的部分。

(2)单击"Download & Evaluate"链接,会出现一个用户资料表单,要求填写相应的内容。在填写时,操作系统平台和电子邮件地址必须要正确,如图23-3所示。

 
图23-2  Helix Server Unlimited下载链接
 
图23-3  下载Helix Server前需填写的表单

(3)用户资料表单提交后,还有一个有关用户调查的表单,内容填写和选择完成并提交后,将出现下载页面,如图23-4所示。

(4)单击任一个下载按钮,即可下载Helix Server软件,大小接近16MB,文件名是rs1201-ga-linux-rhel5.tar.gz。

另外,当安装Helix Server时,还需要一个许可文件,许可文件的下载位置需要通过查询邮箱获得。打开刚才在用户资料表单中填写的邮箱,正常情况下应该会收到一封主题为Real Product Licenses的邮件,单击后,将会看到如图23-5所示的部分内容。其中,蓝色部分就是许可文件的下载链接,单击后将出现下载页面,就可以下载许可文件了。

说明:许可文件的文件名各不相同,类似于RNKey-Helix_Server_Unlimited-120-35746

14794791602.lic这样的名字。

 
图23-4  Helix Server Unlimited下载页面
 
图23-5  邮箱中收到的许可文件下载链接
Helix Server软件和对应的许可文件下载后,就可以进行安装了,详见23.2.2小节。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多