2.2 流媒体技术
流媒体技术发源于美国,又称流式媒体技术,是一种新的媒体传送方式。流媒体技术利用特殊的压缩方式,将整个音频/视频(A/V)及3D媒体等多媒体文件分成多个压缩包,由视频服务器向用户计算机连续、实时传送。因此,用户不必等待整个文件全部下载完毕,只需经过几秒或几十秒的启动延时,即可在自己的计算机上利用解压软件对压缩的A/V、3D媒体等多媒体文件进行解压和播放。这种边下载、边播放多媒体文件的流式传输方式,不仅能够大幅缩短启动延时,而且对系统缓存容量的需求也大大降低。
2.2.1 流媒体简介
我们正处在信息时代,信息量越来越大,信息的表现形式越来越丰富。大量公司和个人不断利用多媒体技术发布和传播信息,一些多媒体应用(如视频会议、远程教学等)也不断出现。随着智能终端的日益普及,用户希望通过更加便利的方式获得信息。
网络已经改变并将继续改变我们的生活方式。多媒体应用的环境正由桌面平台(如多媒体PC)向网络多媒体平台和简单智能终端相结合的方向演进,网络将成为无可比拟的超级服务器。要想使用网络中的多媒体内容,就必须通过网络访问和传输信息。流媒体技术在这种情况下应运而生。
流媒体(Streaming Media)是指采用流式传输方式在Internet/Intranet上播放的媒体格式,如音频、视频或多媒体。用户在播放流媒体文件时,并不需要下载整个文件。流媒体数据流随时传送、随时播放,只是在开始时有些延迟。显然,流媒体实现的关键技术就是流式传输,流式传输主要指使用特定的压缩方式,将整个A/V、3D媒体等多媒体文件解析成一个个压缩包,由视频服务器向用户计算机顺序或实时传送。
2.2.2 流媒体技术定义
流媒体技术不是一种单一的技术,而是网络技术和音频/视频技术的有机结合。
首先,要想通过网络进行流媒体传输,所传输的文件必须被制作成适合流式传输的流媒体文件。需要选用适当的压缩算法对流媒体文件进行压缩,从而使生成的文件较小。
其次,流媒体的传输需要合适的传输协议,网络上的文件传输大部分都建立在TCP的基础上,也有一些以FTP的方式进行传输,但基于这些传输协议无法实现实时传输。随着流媒体技术相关研究的不断深入,比较成熟的流媒体传输一般都采用建立在UDP上的RTP/RTSP实时传输协议。因为网络是以包为单位对数据进行异步传输的,因此多媒体数据在传输中要被分解成许多包。由于网络传输的不稳定性,各数据包到达客户端的时间顺序可能发生改变,甚至出现丢包的情况,为此必须利用缓存技术来对到达的数据包进行正确排序,解决数据包到达顺序发生改变的问题。
最后,在最终呈现方面,客户端的Web浏览器启动A/V Helper程序,使用HTTP/TCP 交换控制信息,把需要传输的实时数据从原始信息中检索出来;之后客户端的 Web 浏览器利用 A/V Helper 程序检索相关参数,包括目录信息、A/V数据的编码类型及服务器地址等。客户端的A/V Helper程序及A/V服务器运行实时流控制协议(RTSP),以交换 A/V 数据传输所需的控制信息,一旦A/V数据抵达客户端,便可开始播放。
2.2.3 流式传输基础
在网络上传输A/V等多媒体信息时,主要有下载和流式传输两种方案。在进行下载时,文件一般都较大,所以网络需要的存储空间也较大;同时由于网络带宽的限制,经常需要很长时间,所以网络延迟也很大。在进行流式传输时,声音、影像或动画等时基媒体由音视频服务器向用户计算机连续、实时传送,用户不必等待整个文件全部下载完毕,只需经过几秒或十几秒的启动延时便可进行观看。与此同时,文件的剩余部分在后台继续从服务器下载。
流式传输是实现流媒体的关键技术。流式传输是通过网络传送媒体(如视频、音频)的技术总称,其特定含义为通过互联网将影视节目传送到PC机中。流式传输有两种实现方法:顺序流式传输(Progressive Streaming)和实时流式传输(Realtime Streaming)。顺序流式传输是顺序下载,在下载文件的同时用户可在线观看媒体文件,在某一时刻,用户只能观看已经下载的内容,而不能跳转到还未下载的部分,在传输期间,不会根据用户的网络连接速度对下载顺序进行调整。实时流式传输是指保证媒体信号带宽与网络连接相匹配,使用户可实时观看媒体文件。实时流式传输根据网络情况调整输出音视频的质量,从而实现媒体文件的持续、实时传送,用户可在播放过程中快进或后退。
一般说来,如果视频为实时广播,或使用流式传输媒体服务器,或应用RTSP 等实时传输协议,即为实时流式传输。如果使用 HTTP 服务器,即为顺序流式传输。流媒体文件支持在播放前将整个文件下载到硬盘中。
1.顺序流式传输
由于在标准的 HTTP 服务器中进行顺序流式传输不需要其他特殊协议,因此顺序流式传输也称为 HTTP 流式传输。顺序流式传输比较适合高质量的短片段,如电影的片头、片尾及广告,这类文件在播放前是经过无损下载的,能够保证最终的播放质量。这意味着用户在观看前必须经历网络延迟,在较差的网络连接状态下尤其如此。
对于通过调制解调器发布的短片段,顺序流式传输显得很实用,它允许用比调制解调器更高的数据速率创建视频片段,尽管有网络延迟,但可以发布质量较高的视频。顺序流式文件放在标准HTTP服务器或FTP服务器上,易于管理,基本与防火墙无关。
顺序流式传输不适合长片段和有随机访问要求的视频,如讲座、演说与演示。它也不支持现场广播,严格说来,它是一种点播技术。
2.实时流式传输
实时流式传输与顺序流式传输不同,其需要专用的流媒体服务器与传输协议。
实时流式传输是实时传送,特别适合现场事件,也支持随机访问,用户可快进或后退以观看其他内容。理论上,实时流式传输文件一经播放就不可停止,但实际上可能发生周期性暂停。实时流式传输必须匹配相应的连接带宽,这意味着在以调制解调器的速度进行连接时,流媒体图像质量较差。另外,由于出错或丢失的信息被忽略,在网络拥挤或出现问题时,视频质量很差。如果想保证视频质量,采用顺序流式传输更合适一些。
实时流式传输需要特定服务器,如 QuickTime Streaming Server、Real Server、Windows Media Server。这些服务器允许用户对媒体发送进行更多控制,因而系统设置、管理等比标准 HTTP 服务器更复杂。实时流式传输还需要特殊的网络协议,如RTSP(Realtime Streaming Protocol)、MMS(Microsoft Media Server)。这些协议在有防火墙时可能会出现问题,导致用户不能看到一些实时内容。
2.2.4 流媒体系统简介
1.流媒体系统基本构成
流媒体系统基本构成如图2-1所示。
图2-1 流媒体系统基本构成
在一套大规模的流媒体系统中,流媒体编码器负责对音视频文件进行编码,压缩格式为H.264、H.265、VP9、AAC等;流媒体服务器负责对数据包进行容器封装,并负责网络协议(RTMP/HTTP 等)打包;CDN 网络负责进行全网分发;播放器负责对图像进行解码显示。
2.流媒体系统工作流程
流式传输需要合适的传输协议。由于 TCP 需要较大的开销,因此该协议不太适合用于传输实时数据。在流式传输的实现方案中,一般采用 HTTP/TCP传输控制信息,而使用RTP/UDP传输实时数据。
流式传输的实现要依赖缓存。因为一个实时的音视频源或存储的音视频文件在传输过程中会被分解为多个数据包,而网络又是动态变化的,各数据包选择的路由可能不同,因此到达客户端的时延也不同,先发的数据包有可能后到。为此,需要使用缓存系统来消除时延和抖动的影响,从而使数据能够连续输出。通常来说,高速缓存所需的容量并不大,因为通过丢弃已经播放的内容,可以重新利用空出的空间来缓存后续尚未播放的内容。
流媒体传输流程如图2-2所示。
图2-2 流媒体传输流程
流式传输的过程一般如下。
(1)用户在选择某一流媒体服务后,Web 浏览器与 Web 服务器之间使用HTTP/TCP 交换控制信息,从而把需要传输的实时数据从原始信息中检索出来。
(2)Web浏览器启动音视频客户程序,使用HTTP从Web服务器中检索相关参数,对音视频客户程序进行初始化,这些参数可能包括目录信息、音视频数据的编码类型及与音视频检索相关的服务器地址。
(3)音视频客户程序及音视频服务器运行实时流式传输协议,以交换音视频传输所需的控制信息。实时流式传输协议提供执行播放、快进、快倒、暂停及录制等命令的方法。
(4)音视频服务器使用RTP/UDP将音视频数据传输给音视频客户程序,一旦音视频数据抵达客户端,音视频客户程序即可开始播放。
需要说明的是,在流式传输中,使用RTP/UDP和RTSP/TCP两种不同的通信协议与音视频服务器建立联系,目的是把服务器的输出重定向到一个非运行的音视频客户程序的客户机的目的地址中。另外,流式传输一般都需要专用服务器和播放器。
2.2.5 三种流媒体系统
1.Real公司的流媒体系统
Real公司(Real Networks)的流媒体系统是一个非常稳定且性能非常好的系统,在全球有很高的市场占有率。该系统采用一种高性能的自适应压缩算法,能够生成独特的RM格式文件,并且有很高的压缩比,可以适应56K-lOM的线路要求。
目前,在实时网络直播领域,Real 公司的流媒体系统无可替代,其提供了大量的实际方案,而且可以适应各平台的操作系统。其可以选择的平台有NT、Linux、Solaris、HP-Unix、AIX及Irix系统等。客户端采用标准的浏览器系统平台,服务器采用Real公司的产品,通过相关协议控制客户端及服务器的互动。
2.微软公司的Media Server系统
微软的流媒体解决方案在微软视窗平台上是免费的,制作端与播放器的音视频质量都非常好且易于使用。Media Server 系统的缺点是目前的整体解决方案和Real公司的产品相比还有差距,并且只能在微软视窗平台上使用(播放器除外)。在预算紧张时,该系统是个不错的选择。
3.苹果公司的QuickTime系统
QuickTime系统是苹果公司面向专业视频编辑、Web网站创建和CD-ROM内容制作而开发的多媒体技术平台,QuickTime 系统支持几乎所有主流的个人计算机平台,是数字媒体领域中创建 3D 动画及实时效果、虚拟现实和其他数字流媒体应用的重要基础。QuickTime 5是目前最新的版本,对使用macOS系统的用户来说是一个比较理想的选择方案。目前,QuickTime 5播放器已经在世界范围内被众多用户采用,成为仅次于RealPlayer、Windows Media Player的流视频播放器。QuickTime 系统的一个显著特点是支持转播功能和模块化 API,用户可以方便地通过QTSS API为服务器添加新的功能。
QuickTime系统组成如下。
(1)QuickTime Pro:高级的客户端播放、编码、编辑工具。
(2)QuickTime 5播放器:客户端播放、编码、编辑工具。
(3)QuickTime Streaming Server 2.0.1:视频服务器。
4.三种流媒体系统比较
目前流行的主要流媒体系统就是上文提到的三种,表 2-1 可以清楚地说明其所用技术的特点和差异。
表2-1 三种流媒体系统所用技术比较
续表
2.2.6 流媒体技术主要应用
互联网的不断发展决定了流媒体广阔的市场前景。流媒体技术应用可以根据传输模式、实时性、交互性等分为多种类型。
传输模式主要指流媒体传输是采用点到点的方式还是采用点到多点的方式。点到点的方式主要通过单播传输实现;点到多点的方式一般通过组播传输实现,在网络不支持组播时,也可以通过多个单播传输实现。实时性指视频内容是否实时产生、实时采集和实时播放,实时内容包括实况直播内容、视频会议内容等,而非实时内容指预先制作、存储的媒体内容。交互性是指应用是否需要交互,即流媒体的传输是单向的还是双向的。
根据上述分类,流媒体技术的主要应用可以分为视频点播业务和视频广播业务。视频点播业务既包括广播电视系统通过即时点播、轮播、下载播放等方式使用户自主选择和收看广播电视节目的业务,也包括多种多样的互联网视听点播业务;视频广播业务可以看作视频点播业务的扩展,其把节目源组织成频道,以广播的方式向用户提供,用户通过加入频道收看节目。
流媒体技术的三种应用场景如下。
(1)视频监控。
通过安装在不同地点且接入互联网的摄像头,视频监控系统可以实现远程监测。与传统的基于电视系统的监控不同,视频监控系统的信息可以通过网络以流媒体的形式传输,因此更为方便、灵活,目前已经在中小商铺及家庭中应用。
(2)视频会议。
如果视频监控系统是单向的流媒体传输,那么视频会议则应用了双工流媒体传输技术。视频会议可以是双向的,也可以是多向的,是典型的具有交互性的流媒体技术应用。
(3)远程教学。
远程教学的应用场景也非常广泛,并且具有很好的市场前景,可将其视为包含多种应用类型的综合场景。在远程教学中,我们可以采用多种模式的流媒体应用。例如,采用点播的方式传送教学视频,以视频会议的方式进行课堂交流等。
放眼未来,流媒体技术与视频技术的结合还将带来更多的应用场景,为媒体行业带来新的发展机遇,同时也为用户带来更多的视听选择和更好的视听体验。