3.3.4 流媒体技术
流媒体(streamingmedia)是指用户通过网络或者特定数字信道边下载边播放数字媒体数据的一种工作方式。流媒体应用的一个最大的好处是用户不需要花费很长时间将数字媒体数据全部下载到本地后才能播放,而仅需将起始几秒的数据先下载到本地的缓冲区中就可以开始播放,后面收到的数据会源源不断输入到该缓冲区,从而维持播放的连续性,因此流媒体播放器通常只是在开始时有一些时延。
流媒体技术较好地解决了尽力而为的互联网络不能保证提供数字媒体信息业务的QoS和文件下载时间过长的问题。流媒体系统要比下载播放系统复杂得多,需要将网络通信、数字媒体数据采集、压缩、存储以及传输技术很好地结合在一起,才能确保用户在复杂的网络环境下也能得到较稳定的播放质量。
1.流媒体的基本组成与实现
流媒体结构的基本组成,如图3-13所示。原始视/音频经过压缩算法的预压存储在存储设备中。流服务器根据客户端的请求,从存储设备中获取压缩好的视/音频数据,应用层QoS控制模块根据网络的拥塞状态和QoS要求来调整视/音频比特流。然后通过传输协议把压缩过的比特流打包并且发送到网上。通过网络传输到客户端,由于网络拥塞,数据包可能出现丢包或者过度时延现象,可通过缓存系统来弥补延迟和抖动的影响,并保证数据包的顺序正确,从而使媒体数据能连续输到解码器端进行解码,还需要媒体同步机制实现播放中的视/音频的同步。需要注意的是不同的流媒体标准和解决方案会在某些方面有所不同。
图3-13 流媒体系统构架
流媒体的实现包含着制作、发布、传输、播放四个环节,其中需要解决一系列的技术问题。首先,数字媒体数据必须进行预处理,主要是采用高效的压缩算法减小数字媒体文件的数据量和在文件中加入流式信息,以解决网上传输以及存储问题和支持流式传输。其次,由于互联网是以数据包传输为基础进行断续的异步传输,实时视/音频源或存储的视/音频文件被分解为许多数据包在动态变化的网络上传输,各个包选择的路由可能不同,到达客户端的时间延迟也就不等,甚至可能先发的包后到,为此需要使用缓存系统来弥补延迟和抖动的影响,并保证数据包的顺序正确,从而使媒体数据能连续输出,而不会因为网络暂时拥塞使播放出现停顿。再次,由于TCP需要较多的开销,不太适合传输实时数据,因此流式传输的实现还需要建立合适的传输协议。最后,由于目前互联网只提供尽力而为的服务,要实现流媒体的实时传输,获得良好的视频质量,还需要建立QoS控制机制。
在流式传输网络协议领域,已经颁布的传输协议主要有实时传输协议(RTP)、实时传输控制协议(RTCP)、实时流协议(RTSP)以及资源预约协议(RSVP)等。
2.流式传输与播送方式
流式传输就是把声音、影像或动画等信息由网络中音视频服务器向用户终端(如PC、PDA、数字电视等)连续、实时传送。在采用流式传输的系统中,用户只需经过几秒或数十秒的启动延时(缓冲)即可在用户的计算机上利用解压设备(硬件或软件)对压缩的数字媒体数据解压后进行回放,当视音频等时基媒体在客户端播放时,文件的剩余部分将在后台从服务器继续下载。流式不仅使启动延时成十倍、百倍地缩短,而且不需要太大的高速缓存容量。这是因为高速缓存使用环形链表结构来存储数据,即通过丢弃已经播放的内容,“流”可以重新利用空出的高速缓存空间来缓存后续尚未播放的内容。(www.xing528.com)
流式传输方式有顺序流式传输和实时流式传输两种方式。顺序流媒体传输是顺序下载,在给定的时刻,用户只能观看已下载的那部分,顺序流媒体传输不能根据用户连接的速率做调整。顺序流式传输不支持随机访问(快进、后退、暂停等)控制。实时流媒体传输技术可保证媒体信号带宽与网络连接匹配,可实现媒体的实时观看,特别适合现场事件,也支持随机访问。实时流媒体传输有速率控制机制,可调整媒体传输速率与网络带宽匹配,当网络拥塞或出现问题时,出错丢失的信息会被忽略掉,对视频质量会造成很大影响。如果想保证视频观看质量,顺序流媒体传输也许更好。
流媒体播送方式有单播、广播和组播。对等网络技术(P2P)技术也可以应用于流媒体的播送,特别适用于一些热门事件的播出。对于多人的数字媒体实时通信,P2P技术也会给网络状况和视音频质量带来很大改进。流媒体播送形式主要有直播和点播。直播是电台或电视台实际播出节目的网上传输形式,其时效性强,用户可在第一时间获取信息,但主要问题是用户不能选择关心的部分,会一直占用带宽资源。直播主要应用于重大活动的即时报道。点播连接是客户端对服务器的主动连接,用户通过选择内容项目来初始化客户端连接。用户可以开始、停止、后退、快进或暂停流。点播连接提供了对流的最大控制,但这种方式由于每个客户端各自连接服务器,会迅速耗尽网络带宽。点播可以更合理地满足用户的要求,是目前广泛采用的网上广播形式。
3.流媒体压缩编码技术
数字媒体数据在传输前必须先有效地压缩成码流,以减少对网络资源的占用率,并将文件分成压缩包,形成数据流,成为具有流格式的流媒体。在选择视频编码算法时,视音频质量和带宽通常是两个最重要的考虑因素,需要平衡网络吞吐量与视音频感觉质量间的关系。此外,编码视音频流在网络上传输,易受到信道差错和信息损失对服务质量的影响,所以需要考虑视音频编码算法对差错的鲁棒性,以保证接收端有可接受的业务质量。
传统的媒体信息编码是面向存储的,传输的目标也是将数据压缩成为特定速率的码流。由于实际的网络带宽是动态变化的,固定速率编码不太适合网络传输,解决方法是采用可伸缩性的视音频编码技术,把同一段视频内容编码生成多个具有不同码率和图像尺寸的码流,然后自适应选择一个最合适的码流进行传输,以适应网络带宽的动态变化。
流媒体压缩编码技术主要采用分层编码和多描述编码等可伸缩视音频编码技术。分层编码就是将媒体数据压缩编码成多个流,其中一个可以独立解码,产生粗糙质量的视频序列,适应最低的网络带宽,称为基本层码流;其他的码流按层为单位可以在任何地点截断,称为增强层,用来覆盖网络带宽变化的动态范围,不能单独解码,只能与基本层及前一些增强层联合解码,以提高观看效果。分层编码主要分为时域分层编码、空域分层编码和质量分层编码。多描述编码(MDC)也将一个视频源编码成多个子流(称为描述),区别在于产生的描述是相关的,有着同样的重要性。任何一个单独的描述必须提供一个基本级别的质量,多个描述一起提供改善的质量。MDC相对于分层编码的优点是不需要网络提供可靠的子信道,是一个可用于解决尽力而为的网络所引发的一些问题。
结合多种视频编码技术来适应网络上的QoS波动是今后可伸缩视频编码的发展方向。如可分级视频编码可以适应网络带宽的变化、错误弹性编码可以适应丢包、延时认识编码可以适应网络时延。这三种技术的结合可以更好地提供一种应对网络QoS波动的解决方案。
目前,常用的视频编码器有MPEG-2、MPEG-4、H.263、H.264、Window Media和Real System视频编码器等;音频编码器有MP3、MPEG AAC、Window Media音频编码器和AMR等;图像编码器有JPEG和JPEG2000等。编码器所生成的码流只包含了该码流解码所必需的信息,不包含媒体间的同步、随机访问等系统信息,因此编码后的媒体数据还要被组织成为具有特定系统格式的媒体文件用于流媒体传输或者是存入磁盘中,目前常用的文件格式有MPEG-2系统、MP4、微软公司的ASF、Real的文件格式、QuickTime的文件格式以及用于3G无线服务的3GPP和3GPP2等。
目前市场上主流的流媒体技术有三种,分别是Real Networks公司的Real Media,Microsoft公司的Windows Media和Apple公司的QuickTime。这三家的技术都有自己的专利算法、专利文件格式甚至专利传输控制协议。另外,在多媒体课件和动画方面的流媒体技术还有Macromedia的Shockwave技术和Meta Creation公司的Meta Stream技术等。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。