【51CTO独家特稿】如果要我说Windows Server 2008上的Media Services有多么强大的功能,那么就更像“王婆”了。事实上,从拿到BETA版到现在手上所拿到的正式版本,当安装完 Windows Server 2008时得到的都是一种结果:怎么都没有Windows Media Services?不过这也似乎印证了 Windows Server 2008 的用意:为了强化系统安全与稳定只安装所需要的组件……
流媒体应用与生活
由于俺家共同使用4~5台电脑的时代到来了(我自己就有3个笔记本),在“带宽”的诱惑下,终于换上了更高速的ADSL网络,这改变了家人的上网习惯,现在,他们直接使用网络点播软件收看大片和电视台直播,55寸的液晶电视算是白买了,唉~~ 。如图1所示,那么这种直接收看视频或音频节目的技术叫什么呢?它们又是靠什么软件来实现的呢?
图 1 MSN Video 网站
对喽!这就是流媒体(Streaming Media)技术。相对于传统的网络传输音视频等多媒体信息播放的方式是完全不同的,之前我们必须要等视频或这音频文件完全下载到本地后再播放,下载常常要花数分钟甚至数小时(http或ftp下载使用标准的http和ftp协议)。而采用流媒体技术,就可实现流式传输,将声音、影像或动画由服务器向用户计算机进行连续、不间断传送,用户不必等到整个文件全部下载完毕,而只需经过几秒或十几秒的启动延时(此时,你在播放器的界面上可能会出现非常熟悉的名字:缓冲)即可进行观看。当声音视频等在用户的机器上播放时,文件的剩余部分还会从服务器上继续下载。
关于“媒体”二字就没有什么好解释的了,我们举一个例子说明一下“流”的含义:
如果将文件传输看作是你生病之后用药的过程,过去的传输方式就像是“打针”,必须等到打完一针再打一针(哈哈,疼死你),这个等待的时间自然要看你医生给你的药量和身体素质了,如果你是一个未成年人当然药量就小一些,但也不能连着给你打针。而流式传输则像“输液”,等待一小会儿,药液流到管子里面,就可以给你扎一针了,因为有一部份药液在下方的管子里,所以即使每次都只有一小滴流下来,药液还是源源不断地流进你的身体。从这个意义上看,流媒体这个词是非常形象的。
实际上流媒体技术是网络音视频技术发展到一定阶段的产物,是一种解决多媒体播放时带宽的“软技术”。它会涉及到流媒体数据的采集、压缩、存储、传输、负载均衡以及网络通信等多项技术。不过对于用户来讲,观看流媒体与观看传统的音视频文件在操作上几乎没有任何的差别,唯有的区别在于影音品质上,由于带宽保证(输液的管子上的那个调节器)是第一位的,因此具有了“不平等的条约”,可以在服务器上为不同带宽的用户分配不同压缩比的文件,所以当我升级了家里带宽的时候,老婆会说:“现在网站上的电影比原来清楚多了”。
流媒体协议与传输
IETF中的一个名为“Integrated Services”(综合服务)的工作组开发了一个同名的Internet增强服务模型,包括“best-effort”(尽力传输)服务和“real-time”服务。其中“real-time”服务就是为在IP网络中传输多媒体数据提供质量保证的,它包括“RSVP”(资源预留协议)、“RTP”(实时传输协议)、“RTCP”(实时传输控制协议)、“RTSP”(实时流协议),这四种协议构成了“real-time”服务的基础。图2 显示了流媒体协议栈的结构。
图 2 流媒体协议栈的结构
另外,实现流式传输有两种方法:实时流式传输(Real-time Streaming)和顺序流式传输(Progressive Streaming),在我们使用这两种方法来构建流媒体服务的时候,首先要考虑到的就是它俩的区别。一般说来,如视频为实时广播(央视的春节联欢晚会),或使用流式传输媒体服务器,或应用如RTSP的实时协议,即为实时流式传输。如使用HTTP服务器(BMW汽车的宣传片),文件即通过顺序流发送。当然采用那种传输方法,依赖你的需求而定。
顺序流式传输
顺序流式传输是顺序下载,在下载文件的同时用户可观看在线媒体,用户只能观看已下载的那部分,而不能跳到还未下载的前头部分,顺序流式传输不像实时流式传输在传输期间根据用户连接的速度做调整。由于标准的HTTP服务器可发送这种形式的文件,也不需要其他特殊协议,它经常被称作HTTP流式传输。顺序流式传输比较适合高质量的短片段,如片头、片尾和广告,由于该文件在播放前观看的部分是无损下载的,这种方法保证影片片段播放的最终质量。尽管有延迟,毕竟是你想发布较高质量的视频片段吗。顺序流式文件可以放在标准HTTP 或 FTP服务器上,易于管理,基本上与防火墙无关。不过,顺序流式传输不适合长片段和有随机访问要求的视频,如:讲座、演说与演示。它也不支持现场广播,严格说来,它是一种点播技术。
实时流式传输
实时流式传输指保证媒体信号带宽与网络连接配匹,使媒体可被实时观看到。实时流与HTTP流式传输不同,他需要专用的流媒体服务器与传输协议。实时流式传输总是实时传送,特别适合现场事件,也支持随机访问,用户可快进或后退以观看前面或后面的内容。理论上,实时流一经播放就可不停止,但实际上,可能发生周期暂停。实时流式传输必须配匹连接带宽,这意味着在以56~128kbps连接时图象质量较差。而且,由于出错丢失的信息被忽略掉、网络拥挤、或出现其它流量异常问题时,视频质量会很差,有时也会断断续续的。
实时流式传输需要特定服务器,如QuickTime Streaming Server、Real Server等,而本文重点介绍的Windows Media Server,这些服务器允许你对媒体发送进行更多级别的控制,因而系统设置、管理方面比标准HTTP服务器更复杂一些。
流媒体站点的结构
流媒体的数据文件也很特别,例如ASF(Advanced Streaming Format)文件,它将媒体文件分为众多小数据包,媒体服务器在特定的时间将用户播放所需的数据包发送给用户。在网络拥挤的时候,流媒体服务器就不会发送用户收不到的数据包,在用户通过媒体播放器对播放进行控制,比如快进、快退和跳跃到文件中某一时间点时,媒体服务器就会发送出相关内容的数据包。流媒体服务器和用户端的流媒体播放器之间的交流是双向的,在用户端文件播放结束之前,双方的联系是一直保持的。
能够实现这样的功能,就需要特定的服务器进行支撑,那么Web服务器就不能胜任了。Web服务器通常被比喻成“无状态化”,从一般的意义上来讲,Web服务器和用户端的联系是单向而且是不连续的。当Web服务器接收到用户的请求信息后,它以尽可能快的速度将网页数据“推出门外”,然后就中断了与用户的联系而开始处理下一个用户的请求,不管用户端是否接收到完整的数据。在用户端,Web浏览器接收到网页数据,在屏幕上显示网页,同时也中断了和服务器端的联系,直到你点击链接,再次向服务器发出请求为止。这种数据传输和接收方式在处理HTML文本和图片等一些体积较小而且不具有时间特性的文件时,效果应该说是不错的,但如果我们想要构建得视频服务时就没戏了。
那么怎么来设计一个流媒体系统呢?这就需要将Web角色和流媒体服务器角色分开来。 Web服务器用于Web页面的访问,这可以交给开发人员,而流媒体服务器在后台中出现,用于管理和存储声音、影视文件,其结构见图4所示。采用这种结构,开发人员可以将包含媒体播放器的插件嵌入到Web浏览器页面中,而向流媒体服务器请求传送文件,Web服务器实际上就是一个“中间人”而已,最后的数据流并不经过它。
图3 流媒体架构图
基于Windows Media Technologies的流媒体系统通常由运行Windows Media Encoder的计算机、运行Windows Media Services的服务器和许多运行Windows Media Player 的客户端组成。编码器将直播和预先录制的音频和视频内容转换为Windows Media格式。在图4的具体方案中,用户单击网页上的链接即可请求内容,然后 Web服务器将请求重定向到Windows Media服务器,并启动用户计算机上的播放器,Windows Media 服务器与播放器建立了直接连接,并开始将内容直接传输给用户。
【51CTO独家特稿,合作站点转载请注明原文译者和出处。】
【编辑推荐】
- windows server 2008 R2安全性能总揽
- Windows Server 2008 R2中的DirectAccess功能详解
- Windows Server 2008 R2中托管服务帐号的方法
- 解读Windows Server 2008 R2安全性和高可靠性