ScottGu: IIS 7.0比特率节流模块发布了

【原文地址】IIS 7.0 Bit Rate Throttling Module Released | IIS 7.0比特率节流模块发布了
【原文发表日期】Tuesday, March 18, 2008 12:43 AM

网上的视频现在是每个用户都认为是理所当然的常见场景之一,逐渐地,每个大网站都在以某种形式采用视频(产品录像,培训录像,更丰富的广告场景,用户生成的内容,客户的见证等等)。

但在网站上加视频的一个挑战是,如何以一种不太昂贵的方式提供这样的功能。网络带宽要花费很大一笔钱,使用高质量的视频的费用很快就会累加起来。

贴子下面的内容将对可为你用来减小发布视频费用的一些选项提供一个简短概述,讨论一个可以免费下载的新软件,IIS 7.0 比特率节流模块(Bit Rate Throttling Module)。这模块是几天前才刚发布的,允许你在从IIS web服务器使用任何视频技术(包括Silverlight, Windows Media Player,甚至Flash)提供视频时可以轻松地省钱。

第一个选项:使用视频主机服务

减小视频带宽费用的一个方式是,使用象YouTube或免费的微软Silverlight Streaming服务这样的视频主机服务。这允许你使用别人的网络来发布视频内容,避免自己支付带宽费用。

如果你不熟悉Silverlight Streaming服务的话,它允许你免费上传达10G的视频和每个月5个Terabytes(即5千GB)的视频内容(比特率最大达1.4 Mbps)。你可以建造你想要的任何定制的Silverlight客户端播放器应用,可以在其中内嵌入视频。这意味着,不需要任何特定的视频播放器观感,播放视频也没有服务的图标或水印。这允许你把视频完全地整合到你的网站之上,使用你想要的任何用户界面来主持它。

第二个选项:在你自己的服务器上提供视频服务

有时,使用一个视频主机服务没有意义,例如,你要使用自定义的认证来允许/拒绝用户访问,或你要播放非常长的视频片段,或者你想要在视频里播放定制的广告。这样你也许想要从自己的服务器上提供视频,对之有完全的控制。

一般来说,有2个选项,你可以用来从自己的服务器上发布视频: 使用streaming方式或渐进式(progressive)视频下载方式:

Streaming服务器场景

在Streaming场景中,一个客户端(象Silverlight, Windows Media Player, Flash 或Real Networks)连接到一个streaming 服务器。streaming 服务器然后把视频流式传过来让你观看,一般地会允许用户动态地向前或向后跳著看,暂停,或中止视频流。当用户关闭浏览器或从网页转到别处去时,视频流会自动中止传输。

Windows Media Services (WMS) 是可用于Windows的可以免费下载的streaming服务器,可以将视频流式传输到Windows Media Player和跨平台的Silverlight浏览器客户端。它一般被认为是在网上发布流式视频,服务器扩缩性最好,成本效率最好的方式,它可以同时处理按需文件streaming场景(例如,流式传输一个.wmv 文件),以及实况streaming的场景(例如,象奥林匹克运动会这样实时进行的体育比赛)。

Windows Media Services 可以在任何版本的Windows服务器上使用,包括新的Windows Server 2008 Web Server 版本(只要$469,支持上至4个CPU和32G的RAM,支持IIS, ASP.NET, SharePoint, 和Windows Media Services)。

渐进式(Progressive)下载场景

在渐进式下载场景下,一个客户端(象Flash 或 Silverlight)直接从web服务器上下载视频,一旦有足够平稳播放的视频就开始播放。

使用渐进式下载方式的好处是,在web服务器上配置极其容易。只要把视频拷贝或ftp到web服务器上,取得一个指向它的URL,你就可以将其连接到视频客户端播放器上。要启用它,不需要任何定制的web服务器配置,也不要求安装有streaming服务器。

但使用渐进式视频下载方式的缺点是,web服务器,在默认情形下是设计来尽可能快地下载文件的。所以,当一个用户在你网站上点击观看一个视频时,你的web服务器会尝试尽可能快地将其传输到客户端。如果用户决定观看整个视频的话,这没什么问题。但如果用户看到一半就中止的话(或者转到不同的网页上去),你下载了一堆不会被观看的视频内容。

如果剩下的没被观看的视频内容大小是几个M的话(甚至几十个M),你到头来在带宽上花了*许多许多* 钱,却完全没有给你的业务/网站带来好处。。。

IIS 7.0 比特率节流模块(Bit Rate Throttling Module)

上个星期,IIS开发团队发布了一个新的免费IIS 7.0 比特率节流模块 (bit-rate throttling module),可以使得渐进式视频场景极大地减小花费。

这个比特率节流模块允许你为从IIS web服务器上下载的任何类型的媒体内容(包括WMV, .MOV, .FLV 和 .MP3文件)配置带宽节流规则。

原装的比特率节流模块在文件被请求后,就会让IIS很快地发送一拨起始的媒体内容。在默认情形下,规则是设置来查看文件的MIME类型和比特率编码,然后尽快地发送可以播放20秒钟的媒体文件。在视频客户端有可播放20秒钟的媒体后,IIS比特率节流模块然后就会将传输率减小到文件的编码比特率。然后它会监测客户端的视频播放器是否关闭或者转到了不同的视频上,如果用户离开了,就会自动中止发送文件剩下的部分。

例如,你在播放一个35M的视频文件,是以500 Kbps的比特率编码的,IIS会尽可能快地发送20秒的视频(20 秒 x 500Kbps == 1.25MB的内容),让视频客户端开始播放,然后就只以500 Kbps 的下载率来下载剩下的视频(这样用户总是有20秒钟的视频缓存在客户端,而不是缓冲视频)。

如果在一分钟之后,用户厌烦了,要么中止视频,或者转到一个新网页上时,IIS会检测到他们离开了,就会中止传输35M文件剩下的部分。因为IIS 在这个场景中,总共只下载了80秒的视频(用户观看了的60秒 + 缓存的20秒),最后只用了5M,而不是35M的网络带宽。30M的带宽节省,每天重复几百,几千次的话,就可以很容易转换成每年成千上万美金的带宽节省。。。

IIS 7.0 比特率节流模块的下载和安装

你可以在这里下载IIS 7.0 比特率节流模块以及了解相关详情。

在安装之后,你可以在IIS管理工具上点击“比特率节流”节点:

然后在每个文件或每个文件类型的基础上配置你想要的任何比特率节流规则:

下面的白皮书更详细地描述如何启用和使用它:

也参阅Mike 这里的贴子,和Vishal这里这里的贴子以了解更多的细节。

希望本文能帮你提高视频场景的成本效率,

Scott.