转发goury[77672<br>
流媒体服务器对硬件的要求确实比较高,主要是两方面的瓶颈:硬盘的读取速度,和网络速度的限制,一般的IDE磁盘都是号称每秒钟能读取60MB,可实际上能到20MB就非常不错了。想想看对于1.5Mbps的MPEG1,就IDE的极限来说最多能支持几个呢?最好的办法是用SCSI盘,并做磁盘阵列。当然对网络接口的要求是越宽越好,试验表明,网卡的最好利用率最多是95%左右,也就是说,100Mbps的网卡最多能用到95Mbps,再说了也不能把它用完,也得少留一些给其它程序用。简单一算就知道一个百兆的网卡最多能支持多少1.5Mbps的MPEG1。由于当前的CPU速度都是比较高,所以瓶颈不在CPU,普通的CPU就可满足要求,若是服务器说是必须要求多高多高的CPU,这只能说明它的软件中的视频泵部分的调度算法有问题了!从所做的试验来看,对CPU的要求确实是非常的低 btw:PC服务器,单张百兆网卡,至少支持70个MPEG1并发流,14个MPEG2并发流,支持组播技术直播,并支持更多的MPEG4并发流,保证视频音频同步!(我们已基本实现!) <br>
<br>
<br>
888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888<br>
(转贴一文供参考)<br>
媒体服务器硬件平台<br>
( 作者:佚名 2001.09.29 16:16:44 ) <br>
-------------------------------------------------------------------------------<br>
视频服务器把存储在存储系统中的视频信息以视频流的形式通过网络接口发送给相应的客户,响应客户的交互请求,保证视频流的连续输出。视频信息具有同步性要求,一方面必须以恒定的速率播放,否则引起画面的抖动,如MPEG-1视频标准要求以1.5Mb/s左右的速度播放视频流。另一方面,在视频流中包含的多种信号必须保持同步,如画面的配音必须和口型相一致。另外,视频具有数据量大的特点,一个经MPEG-1压缩的90 min的电影,长度约为1GB,它在存储系统上的存放方式,直接影响视频服务器提供的交互服务,如快进和快倒等功能的实现。视频服务器必须解决视频流特性提出的要求。 <br>
视频服务器的工作模式是当服务器响应客户的视频流后,从存储系统读入一部分视频数据到对应于这个视频流的特定的缓存中,然后此缓存中的内容送入网络接口发送到客户。当一个新的客户请求视频服务时,服务器根据系统资源的使用情况,决定是否响应此请求。系统的资源包括存储I/O的带宽、网络带宽、内存大小和CPU的使用率。 <br>
目前有三中类型的视频服务器结构: <br>
<br>
通用主机方法 <br>
最早的通用视频服务器采用计算机主机来实现其功能,它运行在一个标准的操作系统上,如UNIX系统,硬件由一系列众多的的视频磁盘阵列组成。视频服务器的主要功能是存储、选择、传送大量的数据,却很少进行数据处理。因此,将主机作为视频服务器既不利于发挥主机的主要功能,有增加了系统的成本,因为必须提供大量的并非必须的硬件和软件。因此,有必要研究具有专门的功能、结构简单的视频服务器。 <br>
<br>
紧耦合多处理机 <br>
按照视频服务器功能要求,制作出大量完成某项指令或专门功能的硬件单元,然后将相关单元组合成相应的专用系统。这些系统有的擅长创建静止图象,有的是数据库管理器,还有的是网络设备和其它动态视频的数据库。最后将这些系统级联起来构成紧耦合多处理机实现的视频服务器。这种服务器费用低、性能高、功能强,具有解决专项问题的特征,但节目受到一定的限制,扩展性较差。 <br>
<br>
调谐视频服务器 <br>
调谐视频服务器的主板有一个有独特微码的嵌入式仿真器控制。磁盘控制器、ATM打包器和记帐计算机接口都利用这些极高速的仿真器来提供它们的功能和各功能块间的通讯。仿真器是通过特殊的寄存器总线和微码紧密耦合的。调谐视频服务器的结构是可扩展的。只要在主板中插入更多的服务通路,就可以达到扩容的目的。 <br>
<br>
媒体服务器软件平台<br>
网络视频平台包括媒体内容制作、发行与管理模块、用户管理模块、视频服务器。内容制作涉及视频采集、编码。发行模块负责将节目提交到网页,或将视频流地址邮寄给用户。内容管理主要完成视频存储、查询;节目不多时可使用文件系统,当节目量大,就必须编制数据库管理系统。用户管理可能包括用户的登记和授权。视频服务器将内容通过点播或直播的方式播放。对范围广、用户多的播放,可在不同区域的中心(如中国华东上海、华北北京、华中武汉等)建立相应的分发中心,协同完成播放。此外,对商业站点,还应包括计费系统等。网络视频播放的结构如图1所示。 <br>
<br>
任务服务(Session Service) <br>
建立和维持客户和服务器之间的通信通道;为特定的客户设备管理一系列的服务器资源;每一个客户设备只分配一个任务。 <br>
内容服务(Content Service)<br>
<br>
其操作过程如下: <br>
1、 为当前的一个或多个视频主题查询内容; <br>
2、 容服务返回一个与所需要的视频内容相关联的“assetcookie”; <br>
3、 客户把“assetcookie”交给流服务,准备视频内容“流化”; <br>
4、 流服务用节目解析器解析出“assetcookie"; <br>
5、 流服务定位MDS中所关联的节目内容; <br>
6、 流服务指引“视频泵”“流出”节目内容到客户端。 <br>
<br>
流服务(StreamService)<br>
流服务指引“视频泵”(VideoPump)以实时流的形式分发数据(MPEG―1或MPEG―2传输流)到客户端;同“视频泵”一起执行VCR控制功能(暂停、继续、快进、快退);客户端通过媒体网络(MediaNet)以流(MediaNetStream)的形式接收BLOB数据; <br>
-BLOB(BinaryLargeOBject)二进制大对象,如bitmap(位图)、imagestills(静止画面)及客户需要下载供本地访问的一些存储在VS中的数据,以可靠方式传输(通过MN),而实时视频流的传输往往被认为是不可靠的(如图4)。 <br>
<br>
媒体数据存储服务(MediaDataStoreService-MDS)<br>
进行文件管理(创建、存储、修改、删除)及目录管理功能;当“视频泵”(videopump)要“播”一个视频文件时,它先给MDS目录服务器(MDSDirectoryServer)发一个消息打开文件,然后从该目录服务器得到这个文件的磁盘布局数据;由于影像文件都很大,视频服务器采用RAID(RedundantArraysofInexpensiveDisks)存储影像文件;所有用来存储影像节目文件的磁盘称作一个卷(volume),每个卷都有一个TOC(tableofcontents),存储卷里面的文件及它们在磁盘阵列的位置,TOC的大小决定了一个卷能存储文件的个数;AStripe是卷上所有磁盘同样大小的一块存储空间;Striping是把一个文件分散成片(块)存储在不同的磁盘上,可以减少单块盘的访问次数和时间,以利于并发流的处理;存储节目时,先存tableofcontents(如文件的大小、创建的时间、在磁盘阵列中的位置等),然后横跨磁盘连续地存储,每一块盘上存一个stripe,当写完第一个RAID后,继续下一个RAID,当写到最后一个RAID的最后一块硬盘时,又从第一个RAID写起。当最后一个stripe没写满时,会留下空的小块,下次写盘时,又从下一个RAID开始写盘;因为采用RAID存储机制,当硬盘出现故障,不影响视频服务器正常运行,数据不会丢失。视频服务器还支持“热插拔”(hot-swap)磁盘。 <br>
<br>
视频泵(VideoPump) <br>
从MDS中读取视频文件,以实时方式通过网络以合适的下行频道(段),把视频数据发送到客户;同流服务一道执行VCR控制功能(暂停、继续、快进、快退)。 <br>
<br>
媒体网络(MediaNet -MN) <br>
MN采用为分布式计算环境而扩展的工业标准结构,即CORBA(CommonObjectRequestBrokerArchitecture),它在Client与视频服务器之间提供通信通道。而视频数据以实时数据通过标准网络协议由服务器直接到客户,不通过MN。 <br>
<br>
文件(节目)上传和下载(FTPService) <br>
视频服务器提供远程访问MDS的能力,即mdsftp。远程客户计算机运行FTP即可上传和下载视频服务器中的MDS文件(影像节目文件),如图5所示。 <br>
视频服务器还提供远程两台视频服务器之间上传和下载MDS文件(影像节目文件)的能力,这特别适合分布式大规模VOD系统的实现。<br>