基于MPEG-4标准的流媒体服务器搭配图文教程

作者: 不详 2013/1/15 11:22:30

MPEG-1标准视频编码部分的基本得法与H.261/ H.263相似,也采用运动补偿的帧间预测、二维DCT、VLC游程编码等措施。此外还引入了帧内帧(I)、预测帧(P)、双向预测帧(B)和直流帧(D)等概念,进一步提高了编码效率。

流媒体服务器是流媒体系统中的关键部分,其性能的好坏直接决定着流媒体应用系统的优劣,当前流行的直播服务器系统和我们国家自己研制成功的直播服务器系统引人注目,其采用的直播技术将是未来发展的主流方向。

MPEG-4于1998年公布,和MPEG-2所针对的不同,MPEG-4追求的不是高品质而是高压缩率以及适用于网络的交互能力。MPEG-4提供压缩率非常惊人,以VCD画质为标准,MPEG-4可以把120分钟的多媒体流压缩至300M。MPEG-4标准,主要应用于视像电话(Video Phone),视像电子邮件(Video Email)和电子新闻(Electronic News)等,其传输速率要求较低,在4800-64000bits/sec之间,分辨率为176X144。MPEG-4利用很窄的带宽,通过帧重建技术,压缩和传输数据,以求以最少的数据获得最佳的图象质量。

流媒体服务器是流媒体系统中的关键部分,其性能的好坏直接决定着流媒体应用系统的优劣,它在功能上分为以下几个模块: 

● 点播服务器模块 主要接收用户的视频点播,为用户提供视频播放功能,处于流媒体服务器系统的核心地位。它直接与用户管理、节目管理、计费模块、网络管理模块、直播服务器模块进行通信,协调这些模块的运行。 

● 用户管理、节目管理和计费模块 随着用户和节目源的增多,必然要引入用户管理、节目管理和计费模块,并对可靠性和稳定性提出更高的要求。 

● 网络管理模块 为了提高流媒体服务器的稳定性,统一管理与配置系统资源,网络管理模块是必不可少的。 

● 直播服务器模块 直播服务器模块是实时采集音视频信号,为用户提供现场直播的功能。 

Real System:分流技术占主导 

  Real Networks公司最新的网上流式音视频解决方案名为Real System IQ。Real System IQ容易安装,在高、低带宽上均可提供良好的视音频质量,但价格较贵。作为流媒体领域的主导厂商,Real Networks公司凭借其优秀的技术,占领了一多半的网上流媒体点播市场。Real System IQ由服务器端流播放引擎(real server)、内容制作(Real Producer)、客户端播放(Real Player)三个方面的软件组成。 

  Real Server使用分流技术(splitting)在服务器之间传输直播数据。Splitting方法可以解决RealServer超负荷的问题,使得客户端可以就近访问Realserver服务器,获得更好的访问质量,并且减少带宽使用,服务更多用户。Splitting技术可以采用UDP单播、UDP组播和TCP三种方式进行通信。通过分流,一个或者多个Real Server服务器加入到transmitter中,来分散transmitter的流数量,而不是所有的请求都到达一个RealServer服务器。  

如图1所示,实况内容源处的RealServer是发送服务器(transmitter),它将实况播放给其他RealServer服务器接收,接收的RealServer服务器(receiver)一般更靠近访问者。网页上的链接指向接收的RealServer服务器而不是发送服务器。当用户点击链接时,接收服务器识别出特定的URL,然后把从发送服务器来的视频流转播给用户。 

  当transmitter开始播放实况流时,它将节目广播给所有的receiver;当用户从receiver上请求一个播出节目时,transmitter和receiver之间已经建立了一个连结,播出节目也就立即发送到用户。 

QuickTime:三种直播方式样样行  

  在Streaming Server直播过程中主要有Multicast、Unicast及Relay三种方式。 

  Multicast适用于局域网(Intranet)内或支持IP v6标准的Internet(mBone),它的方式是每个客户端都共享一个连接流。  

  Unicast方式是每一个客户端都与QuickTime Streaming Server建立一个流连接。 

  Relay是通过Relay Server,将由Broadcaster发出的一个流以Multicast方式分发给在同一网段上所有客户端。 

  宽带局域网(Intranet)应用如图2所示;Intranet和Internet同时直播应用如图3所示;宽带Internet直播框架结构如图4所示。  

  中国自己的系统:第一个支持Linux 

清华大学多媒体技术研究中心自主开发的直播服务器系统的功能结构如图5所示。 

  该服务器系统在功能上实现了采集、压缩编码与播放的分离,分别由编码服务器和播放服务器实现,播放服务器在实现上和视频点播服务器集成在一起。编码服务器和视频点播服务器利用简单控制协议进行通信。  

1. 编码服务器 

  由于客户端配置的多样性和带宽的不同,单一码率无法同时满足所有用户的需求。因此,该编码服务器实现了单节目源多编码器多码率的功能。 

  针对一路节目的输入,编码服务器同时启动多个不同码率的编码器,这些编码器并行运行输出覆盖高、中、低三档的码率,编码器的个数和码率的大小由系统资源和客户需求折中考虑。同时所有的编码器都可以动态地改变码率,即在不中断播放器播放的情况下修改编码速率。 

编码服务器对外提供三种服务: 

● 固定码率的多码率的组播功能 播放服务器通过组播的方式接入编码服务器不同码率的编码器,这种方式可以接入数量无限的播放服务器。 

● 固定码率的多码率的点播功能 播放服务器通过点播的方式接入编码服务器不同码率的编码器。 

● 动态可变码率的点播功能 接入该编码器的播放服务器对外只能提供组播功能,该编码器根据播放服务器收集到的组播用户的反馈信息,动态地调整编码器的编码速率。 

2.播放服务器 

  播放服务器是客户端和编码服务器的中继站,它接收用户请求,为用户提供服务。相对于编码服务器提供的三种服务,播放服务器以如下三种方式接入编码服务器: 

● 多码率的组播接入 播放服务器对外提供组播和点播功能。用户可以根据终端带宽的多少接入不同码率的组播。当一个用户以点播的方式接入播放服务器时,在播放过程中,播放服务器就可以根据播放器的反馈信息,对用户提供的码率在当前的几种码率间迁移,从而给用户提供最佳的观看效果。 

这种方式的优点是可支持无限个播放服务器,但编码服务器和播放服务器间的路由器必须支持组播协议,因此该功能可用于本地集群播放服务器。 

● 多码率的点播接入 这种接入方式与多码率的组播接入的惟一不同是以点播的方式接入编码服务器,虽然点播方式支持的播放服务器数量有限,但它没有组播路由器的限制,可以在因特网的任何地点接入编码服务器。 

● 可变码率的点播接入 这种接入方式对外只提供组播方式。播放服务器从组播地址接收到组播用户的反馈信息,向编码服务器提出动态改变编码速率的请求,从而满足大多数组播用户的需求。

流媒体资料从硬盘到送到网卡的典型处理情况如下:

a、媒体资料从硬盘盘体中读取出来,经过硬盘接口电路(SCSI,IDE或者FC类型),到达硬盘控制卡;

b、经过硬盘控制卡转换接口后,多媒体资料通过PCI总线,到达PCI控制器;

c、又经过PCI控制器转换接口以后,多媒体资料通过系统内部总线,存储到内存中;

d、在资料被发送到网络上之前,CPU需要对内存中的多媒体资料进行一些处理,例如复制、切分、按协议打包;

e、然后打包之后的资料在内存中通过系统内部总线、PCI控制器、PCI总线,到达网卡;

f、网卡将资料再一次包装后发送到外部网络中。

在不同的计算机系统结构下,以上多媒体资料发送的过程可能有所不同,但是一般都需要经过硬盘、CPU、内存、网卡、内部总线、外部总线这些功能部件。随着客户数量的增加以及应用需求的增加,媒体服务器需要不断提高多媒体资料的处理能力。硬盘、CPU、内存、网卡、内部总线、外部总线这些有没有可能成为瓶颈,以下分别进行分析。



1、硬盘

现在普通的PC机上用的最多的是IDE的硬盘,如果能用这种价格低廉的硬盘作为流媒体服务器的存储设备,将很大程度上降低了成本。

让我们做这样一个实验:对两台除存储设备外配置完全相同的系统进行读写速度测试,一台系统使用7200RPM的IDE硬盘和UltraDMA 66 IDE控制卡,另一台使用统一品牌并且具有相同盘体的7200RPM的SCSI硬盘和U2W控制卡,经过速度评测我们发现,这两个硬盘的速度几乎是一模一 样,都是14.5 M/s。为什么IDE和SCSI速度会一样呢?其实原因很简单,目前硬盘数据传输的瓶颈不在硬盘接口,而在于硬盘盘体本身。硬盘厂商在生产IDE或 SCSI硬盘时使用的盘体是相同的,只是所用的接口电路不同而已,而目前硬盘由于受到磁介质和机械因素的影响,速度很难有大幅度的提高。也就是说,硬盘的 传输速度在现有技术下部可能达到SCSI甚至IDE的接口速度,所以我们才看到SCSI硬盘同IDE硬盘实际性能是差不多的,而这一指针不尽如人意完全是由于盘体本身造成的,与使用IDE还是SCSI接口没有多大关系。

如何提高存储设备的性能呢?可以采用RAID技术。RAID的目的就是尽可能的让多个硬盘同时服务于同一个请求,从而在总体上提高数据传输速度。当然 RAID同时还具有强大的数据保护功能。使用RAID可以使连续数据传输速度达到50M/s或更高,对于大多数用户已经足够,这时候硬盘已经不是瓶颈了。 同时我们采用优化的读取算法使硬盘的寻道时间和寻道次数都大幅度降低,增加了硬盘的寿命。动态的负载均衡技术是单台服务器的各块网卡的负载基本相同,使系 统的整体性能得到了很大的提高。

结论:所有我们可以支持客户使用IDE硬盘,通过RAID技术突破硬盘的瓶颈。

2、CPU

现在即使最普通的PC,主频也在500MHz以上了,流媒体服务器的CPU只是进行了一些简单的复制、切分等处理,而不是进行复杂的DCT变换,编码译码等运算,所以CPU的能力已是绰绰有余了。设计好的流媒体系统的CPU利用率一般在很低。

结论:CPU不是进行流媒体服务的瓶颈。

3、网卡

以太网卡的速度主要有10 Mb/s和 100 Mb/s 两种,1000 Mb/s的以太网也得到了应用;ATM 网卡的速度主要有 25 Mb/s和155 Mb/s两种,622 Mb/s的ATM网卡也有少量应用。如果采用10 M以太网卡,则系统只能够同时传输6个MPEG-I数据流;如果采用100 M以太网卡,则系统能够同时传输60个左右的MPEG-I数据流。100 M以太网的性能价格比最高,如果需要支持更多的用户,而且只能采用100 M以太网,那么可以在一个系统中插入多块100 M以太网卡。


结论:在局域网内,网卡也不是进行流媒体服务的瓶颈了,通过动态的负载平衡技术,可以使系统中各个网卡得到很好的配合利用。


4、内部总线、内存、外部总线。

Cache、内存、PCI控制器、USB控制器、ISA控制器等多种设备与内部总线直接连接,这些设备共享内部总线传输资料,因此内部总线也有可能成为系统的瓶颈。

内部总线的速度主要有66 MHz和100 MHz两种,133MHz的总线刚刚开始应用。内部总线的资料宽度为32位,所以内部总线的数据传输速度可以达到256 MB/s以上。作为媒体服务器时,系统的内部总线不会成为瓶颈。

内存的工作频率与系统内部总线一致,一般也不会成为媒体服务器的瓶颈。

PCI总线是计算机主要的外部总线。网卡、硬盘控制卡等都通过PCI总线与系统连接。PCI总线的频率为33 MHz,资料宽度为32位,所以PCI总线的数据传输速度为133 MB/s。扩展的PCI总线资料宽度可以达到64位,数据传输速度达到266 MB/s,但是64位的PCI总线还远远没有得到广泛应用。

ISA总线是一种比较老的但是得到广泛应用的外部总线,许多旧的声卡、显示卡、网卡等的接口就是ISA接口。ISA总线的资料宽度为16位,工作频率小于 10MHz,所以速度远远小于PCI总线。如果媒体服务器的某些设备通过ISA总线连接,那么这个接口就会成为整个系统的瓶颈。

特别推荐

玩家留言 跟帖评论
查看更多评论