流媒体介绍
越朗
2023-12-01
一、 流媒体简介
1、流媒体的出现
长期以来,由于受到网路带宽的限制,互联网上的数据都是以文字、图片之类的静态内容为主,而那些音频、视频数据很难在网上发布,因为一般非压缩的广播级品质视频需要160Mbps的网络带宽;非压缩CD音质的音频则需要大约2.8Mbps的网络带宽。目前大部分网络用户的带宽还只是56Kbps,这与音频、视频的传播要求相差甚远。网络带宽很难在短期内得到迅速提升,因此要实现网上音频、视频传播就必须在传播文件本身下功夫,这样就出现了流媒体(Streaming media)。所谓流媒体是指采用流式传输的方式在Internet播放的媒体格式,而流式传输方式则是将整个A/V及3D等多媒体文件经过特殊的压缩方式分成一个个压缩包,由视频服务器向用户计算机连续、实时传送。
流媒体技术的开发创意是从传统的TCP/IP协议对通过网络传送信息的控制方法中得到的。当我们通过TCP/IP协议下载文件时,服务器会按照一定的次序将文件分成若干个独立的数据包,然后依次发送出去。而客户端的程序会将这些数据包重新组装起来,最终形成和原来完全一样的完整的文件。这时候,我们就可以对这个文件进行任何可能的操作了。流技术则不然。流技术能够按照特定的顺序将文件发送出去,而播放程序则可以边接收数据边播放他们。
2、流媒体形式简介
目前,在Internet/Intranet上提供流媒体服务的软件中应用广泛、成熟的产品还不多。 根据媒体形式的不同,流媒体可分为如下五类:
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流式文本文件格式。
二、流媒体实现的关键技术---流式传输
流式传输的定义很广泛,现在主要指通过网络传送媒体(如视频、音频等)的技术总称。其特定含义为通过INTERNET将影视节目传送到PC机。
1、 流式传输的方式
实现流式传输有两种方法:顺序流式传输(progressive streaming)和实时流式传输(Realtime streaming)。
1)、顺序流式传输(progressive streaming)
顺序流式传输是顺序下载,在下载文件的同时用户可观看再线媒体,在给定时刻,用户只能观看已下载的那部分,而不能跳到还未下载的前头部分,顺序流式传输不象实时流式传输在传输期间根据用户连接的速度做调整。由于标准的HTTP服务器可发送这种形式的文件,也不需要其他特殊协议,它经常被称作HTTP流式传输。顺序流式传输比较适合高质量的短片段,如片头、片尾和广告,由于该文件在播放前观看的部分是无损下载的,这种方法保证电影播放的最终质量。这意味着用户在观看前,必须经历延迟,对较慢的连接尤其如此。
顺序流式文件是放在标准HTTP 或 FTP服务器上,易于管理,基本上与防火墙无关。顺序流式传输不适合长片段和有随机访问要求的视频,如:讲座、演说与演示。它也不支持现场广播,严格说来,它是一种点播技术。
2)、实时流式传输(Realtime streaming)
实时流式传输总是实时传送,特别适合现场事件,也支持随机访问,用户可快进或后退以观看前面或后面的内容。理论上,实时流一经播放就可不停止,但实际上,可能发生周期暂停。
实时流式传输必须配匹连接带宽,这意味着在以调制解调器速度连接时图象质量较差。而且,由于出错丢失的信息被忽略掉,网络拥挤或出现问题时,视频质量很差。如欲保证视频质量,顺序流式传输也许更好。实时流式传输需要特定服务器,如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上针对多媒体数据流的一种传输协议。
RPCP: 实时传输控制协议(Real-timeTransportControlProtocol)和RTP一起提供流量控制和拥塞控制服务。
RTP是用于Internet上针对多媒体数据流的一种传输协议。RTP被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。RTP通常使用UDP来传送数据,但RTP也可以在TCP或ATM等其他协议之上工作。当应用程序开始一个RTP会话时将使用两个端口:一个给RTP,一个给RTCP。RTP本身并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。通常RTP算法并不作为一个独立的网络层来实现,而是作为应用程序代码的一部分。
实时传输控制协议RTCP和RTP一起提供流量控制和拥塞控制服务。在RTP会话期间,各参与者周期性地传送RTCP包。RTCP包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTP和RTCP配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,因而特别适合传送网上的实时数据。 B、 时流协议RTSP
RTSP:实时流协议 (RealTimeStreamingProtocol) 定义了一对多的应用程序如何有效地通过IP网络传送多媒体数据。
实时流协议RTSP(RealTimeStreamingProtocol)是由RealNetworks和Netscape共同提出的,该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或RTP完成数据传输。HTTP与RTSP相比,HTTP传送HTML,而RTP传送的是多媒体数据。HTTP请求由客户机发出,服务器作出响应;使用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程序所在客户机的目的地址。实现流式传输一般都需要专用服务器和播放器,其基本原理如图一所示。
三、流媒体的播放方式
1、 单播
在客户端与媒体服务器之间需要建立一个单独的数据通道,从一台服务器送出的每个数据包只能传送给一个客户机,这种传送方式称为单播。每个用户必须分别对媒体服务器发送单独的查询,而媒体服务器必须向每个用户发送所申请的数据包拷贝。这种巨大冗余首先造成服务器沉重的负担,响应需要很长时间,甚至停止播放;管理人员也被迫购买硬件和带宽来保证一定的服务质量。
2、 组播
IP组播技术构建一种具有组播能力的网络,允许路由器一次将数据包复制到多个通道上。采用组播方式,单台服务器能够对几十万台客户机同时发送连续数据流而无延时。媒体服务器只需要发送一个信息包,而不是多个;所有发出请求的客户只需连结到这个数据流而不是连结到视频服务器,从而降低带宽的使用。网络利用效率大大提高,成本大为下降。
3、 点播与广播
点播连接是客户端与服务器之间的主动的连接。在点播连接中,用户通过选择内容项目来初始化客户端连接。用户可以开始、停止、后退、快进或暂停流。点播连接提供了对流的最大控制,但这种方式由于每个客户端各自连接服务器,却会迅速用完网络带宽。
广播指的是用户被动接收流。在广播过程中,客户端接收流,但不能控制流。例如,用户不能暂停、快进或后退该流。广播方式中数据包的单独一个拷贝将发送给网络上的所有用户,而不管用户是否需要。
使用单播发送和广播方式发送的方式会非常浪费网络带宽,组播吸收了上述两种发送方式的长处,克服了上述两种发送方式的弱点,组播不会复制数据包的多个拷贝传输到网络上,也不会将数据包发送给不需要它的那些客户,保证了网络上多媒体应用占用网络的最小带宽。
四、流媒体的文件格式
1、 压缩媒体文件格式
压缩格式有时被称为压缩媒体格式,包含了描述一段声音和图象的同样信息,尽管它的文件大小被处理得更小。很明显,压缩过程改变了数据位的编排。在压缩媒体文件再次成为媒体格式前,其中数据需要解压缩。由于压缩过程自动进行,并内嵌在媒体文件格式中,通常我们在存储文件时没有注意到这点。该过程如图二所示。
2、 流式文件格式
流式文件格式经过特殊编码,使其适合在网络上边下载边播放,而不是等到下载完整个文件才能播放。可以在网上以流的方式播放标准媒体文件,但效率不高。将压缩媒体文件编码成流式文件,必须假如一些附加信息,如计时、压缩和版权信息。编码过程如图三所示。表一列举了常用的流式文件类型。
3、媒体发布格式
媒体发布格式不是压缩格式,也不是传输协议,其本身并不描述视听数据,也不提供编码方法。媒体发布格式是视听数据安排的唯一途径,物理数据无关紧要,我们仅需要知道数据类型和安排方式。以特定方式安排数据有助于流式多媒体的发展,因为我们希望有一个开放媒体发布格式为所有商业流式产品应用,为应用不同压缩标准和媒体文件格式格式的媒体发布提供一个事实上的标准方法。我们也可从以相同格式同步不同类型流中获益。 总有一天,单个媒体发布格式能包含不同类型媒体的所有信息,如计时、多个流同步、版权和所有人信息。实际视听数据可位于多个文件中,而由媒体发布文件包含的信息控制流的播放。常用媒体发布格式如表二所示。
五、媒体服务器
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)的视频服务器呼叫;执行呼叫到合适的视频服务器进程;转发视频服务器应答并返回给客户如图七。
六、未来属于流媒体
人们常说互联网是一场革命,实际上在流媒体全面发展之前,这场革命是不彻底的。没有流媒体的互联网无声无影,所谓"虚拟的世界"的说法名与实相去太远。流媒体技术全面应用后,人们在网上聊天就不必用文字表达自己的语言了,直接语音输入就行了。如果想彼此看见对方的容貌、表情,只要双方各有一个摄像头就可以了;电子商务的货品展示也不再限于图片的二维观看了,看到感兴趣的商品,点击后,就会有讲解员和商品的影像出现,可以达到与现实完全一致的展示效果,而且你可以与讲解员进行现场交流;网上新闻也不仅仅只能用文字和图片表达,更有真实感的影像新闻也会出现。非但如此,流媒体还将给互联网带来全新的内容,如网络电视、网络影院、网上教育等。 流媒体发端于美国,目前的流媒体技术都源于美国,而且美国的带宽比国内丰富得多,因此流媒体在美国的应用已经非常广泛。像如今在美国如火如荼的MP3.COM就是得益于流媒体技术. 网络电视,相对于传统电视,它的优势是:
第一,提升电视台的形象,在国内众多的电视台网站中,能够把电视台最大的优势资源--视频节目在互联网上进行全面应用的电视台并不多,网络电视能够马上提升电视台的国内国际形象。
第二,网络电视是一个全互动的电视概念,它是双向的,对电视台和观众的沟通反馈起着非常大的作用,传统电视这方面是相当弱的,基本上,它是单向的。
第三,网络电视除了能在互联网上进行广播外,它还能让全世界的网民对电视节目进行点播,想看什么就看什么,想什么时候看就什么时候看。传统电视能做到这一点吗?不能。
第四,随着网络带宽越来越宽,电信宽带网,广电宽带网和城域网等等宽带网的铺设,在互联网欣赏广播级的电视节目不再是一件遥远的事情。现在在小范围内已经有应用,这个时候建立网络电视是一个非常前瞻性的事情,抢占未来的制高点。这时候,网络电视不再是电视台的一个补充,而是可以完全以一个独立的电视台形式运营存在。
可以预见,随着厂商对流媒体技术的不断发展和完善,、以及用户对流媒体需求的增加,流媒体技术定会更上层楼。