IIS 7.0 Bit Rate Throttling Module Released

Video on the web is now one of those common scenarios that every user takes for granted, and increasingly every major site is incorporating in some form (product videos, training videos, richer advertising scenarios, user generated content, customer testimonials, etc).

One of the challenges when adding video to a site, though, is delivering it in a way that doesn't cost a fortune.  Network bandwidth costs a lot of money, and the cost of high quality video usage can quickly add up.

The blog post below provides a quick overview of some of the options you can use to reduce the cost of delivering video, and discusses a new free download - the IIS 7.0 Bit Rate Throttling Module - that was released a few days ago and which enables you to easily save money when serving video from an IIS web server using any video technology (including Silverlight, Windows Media Player and even Flash).

Option 1: Using a Video Hosting Service

One approach you can take to reduce video bandwidth costs is to use a video hosting service like YouTube or the free Microsoft Silverlight Streaming Service.  This allows you to use someone else's network to deliver the video content, and avoid having to pay the bandwidth costs yourself.

If you aren't familiar with the Silverlight Streaming service, it allows you to upload up to 10GB of videos and download 5 Terabytes/month of video content (at up to a 1.4 Mbps bit-rate) for free.  You can build any custom Silverlight client player application you want to embed the video within it.  This means it doesn't require a specific video player look and feel, nor a service logo/watermark to play the video.  This allows you to fully integrate the video into your site and use whatever UI you want to host it.

Option 2: Hosting Video on Your Own Servers

Sometimes using a video hosting service doesn't make sense (for example: you want to use custom authentication to grant/deny user's access, you want to play really long video segments, or you want to serve up custom ads in your videos).  Instead you might want to serve the video up from your own servers and have complete control over it. 

There are typically two options you can use to deliver the video from your servers: using a streaming approach or a progressive video download approach:

Streaming Server Scenario

In a streaming scenario a client (like Silverlight, Windows Media Player, Flash or Real Networks) connects to a streaming server.  The streaming server then sends down the video stream to watch, and typically enables a user to dynamically skip ahead/behind, pause or stop the video stream.  When the user closes the browser or navigates away from the page the video stream automatically stops transmitting.

Windows Media Services (WMS) is a free streaming server download available for Windows, and can stream video to both Windows Media Player and cross-platform Silverlight browser clients.  It is generally regarded as the most server scalable and cost effective way to enable video streaming on the web, and handles both on-demand file streaming scenarios (for example: streaming a .wmv file) as well as live stream scenarios (for example: a sporting event like the Olympics that is happening live in real time).

Windows Media Services can be used on any version of Windows Server - including the new Windows Server 2008 Web Server edition (which only costs $469, enables up to 4 processors and 32GB of RAM, and supports IIS, ASP.NET, SharePoint, and Windows Media Services).

Progressive Download Scenario

In a progressive download scenario a client (like Flash or Silverlight) downloads a video directly off of a web-server, and begins playing it once enough video is downloaded for it to play smoothly.

The benefit of using a progressive download approach is that it is super easy to setup on a web-server. Just copy/ftp a video up to a web-server, obtain a URL to it, and you can wire it up to a video client player.  It doesn't require any custom web-server configuration, nor require a streaming server to be installed, in order to enable.

The downside of using a progressive video download approach, though, is that web-servers are by default designed to download files as fast as possible.  So when a user clicks to watch a video on your site, your web-server will attempt to transmit it to the client as fast as possible.  This is fine if the user decides to watch the entire video.  But if the user stops watching the content half way through the video (or navigates to a different page), you will have downloaded a bunch of video content that will never be watched.

If the remaining un-watched video content is several megabytes (or even tens of megabytes) in size, you will end up over time spending a lot of money on bandwidth that is not benefiting your business/site at all....

IIS 7.0 Bit Rate Throttling Module

Last week the IIS team shipped a new free IIS 7.0 bit-rate throttling module that makes progressive video scenarios much cheaper in cost.

The bit rate throttling module enables you to easily configure bandwidth throttling rules for any type of media content downloaded from an IIS web server (including .WMV, .MOV, .FLV and .MP3 files).

Out of the box, the bit rate throttling module causes IIS to quickly transmit a burst of initial media content when a file is requested.  By default the rules are set to look at the mime-type and bit-rate encoding of the file, and send as fast as possible enough of the media file to play 20 seconds of it.  Once the video client has 20 seconds of the media to play, the IIS bit rate throttling module will then throttle down the transmit rate to equal the bit-rate encoding of the file.  It will then monitor whether the video player on the client ever closes or navigates to a different video, and automatically stop the remainder of the file being sent if the user goes away.

For example, if you are playing a 35MB video file that is encoded at a bit-rate of 500 Kbps, IIS will send a 20 second burst of the video (20 seconds @ a 500Kbps encoding == 1.25MB of content) as fast as possible to start the video client playing, and then download the remainder of the video at a download rate of only 500 Kbps (enough so that the user always has 20 seconds of video cached on the client so that they never get buffered).

If after a minute the user gets bored and either stops the video or navigates to a new page, IIS will detect that they went away and stop transmitting the remainder of the 35MB file.  Since IIS only downloaded 80 seconds of total video in this scenario (the 60 seconds that the user watched + the 20 second buffer window), only 5MB instead of 35MB of network bandwidth ended up being used.  30MB of bandwidth savings repeated hundreds or thousands of times a day can easily translate to thousands of dollars of bandwidth savings per year....

IIS 7.0 Bit Rate Throttling Module Download and Installation

You can download and learn more about the IIS 7.0 bit-rate throttling module here.

Once installed, you can click the "Bit Rate Throttling" node in the IIS admin tool:

And then configure whatever bit-rate throttling rules you want on a per file or per file-type basis:

The below whitepapers describe how to enable and use it more:

Also check out Mike's post here and Vishal's post here and here for more details.

Hope this helps make your video scenarios more cost effective,

Scott

Published Tuesday, March 18, 2008 12:43 AM by ScottGu

Comments

# re: IIS 7.0 Bit Rate Throttling Module Released

Tuesday, March 18, 2008 4:19 AM by anytao

It sounds a good news.

# re: IIS 7.0 Bit Rate Throttling Module Released

Tuesday, March 18, 2008 4:20 AM by Gareth Davies

Sounds very interesting, do you know if a similar thing is available for a proxy server? One of main bandwidth problems we have at work is people watch video online, we block sites that are intensively used but feel there must be a better option out there.

Maybe something like this to throttle video through a proxy server could be used?

# ScottGu: IIS 7.0 Bit Rate Throttling Module Released

Tuesday, March 18, 2008 4:46 AM by DotNetKicks.com

You've been kicked (a good thing) - Trackback from DotNetKicks.com

# IIS 7.0 Bit Rate Throttling Module Released | How to make a website

Pingback from  IIS 7.0 Bit Rate Throttling Module Released | How to make a website

# IIS 7.0 Bit Rate Throttling Module Released | Create a Blog

Pingback from  IIS 7.0 Bit Rate Throttling Module Released | Create a Blog

# re: IIS 7.0 Bit Rate Throttling Module Released

Tuesday, March 18, 2008 5:06 AM by Philip Jacobsen

Thanks --- much needed functionality these days.

# M??dulo de administracion de Bit Rate de IIS 7 publicado « Thinking in .NET

Pingback from  M??dulo de administracion de Bit Rate de IIS 7 publicado  « Thinking in .NET

# re: IIS 7.0 Bit Rate Throttling Module Released

Tuesday, March 18, 2008 5:54 AM by Juan María

Hi all:

you can read this post in spanish here:

thinkingindotnet.wordpress.com/.../modulo-de-administracion-de-bit-rate-de-iis-7-publicado

# Yard Host » Blog Archive » IIS 7.0 Bit Rate Throttling Module Released

Pingback from  Yard Host  » Blog Archive   » IIS 7.0 Bit Rate Throttling Module Released

# re: IIS 7.0 Bit Rate Throttling Module Released

Tuesday, March 18, 2008 6:08 AM by Lou Ferrante

Very cool feature set

# re: IIS 7.0 Bit Rate Throttling Module Released

Tuesday, March 18, 2008 6:10 AM by Bwg

Any chance of something similar for Win 2003/IIS6?

# re: IIS 7.0 Bit Rate Throttling Module Released

Tuesday, March 18, 2008 6:16 AM by DotNet Guru

Hi ScottGu,

Thanks for the great update. Can we use this module to stream live video (through a web cam) for a lecture or presentation.

Thanks...

# re: IIS 7.0 Bit Rate Throttling Module Released

Tuesday, March 18, 2008 7:01 AM by L. Keyes

Very helpful, thanks

# re: IIS 7.0 Bit Rate Throttling Module Released

Tuesday, March 18, 2008 8:21 AM by vikram

Thanks for sharing this. his should be a great feature in silverlight

# IIS 7.0 Bit Rate Throttling Module

Tuesday, March 18, 2008 8:43 AM by HankLynch.com

IIS 7.0 Bit Rate Throttling Module

# re: IIS 7.0 Bit Rate Throttling Module Released

Tuesday, March 18, 2008 9:58 AM by Sambo

Get post, thanks.

# re: IIS 7.0 Bit Rate Throttling Module Released

Tuesday, March 18, 2008 10:10 AM by Jim

Does this module support byte-range seeks?  I noticed Youtube starting doing this about a year ago.

For example, if the user only wants to watch the last 2 minutes of 10 minute clip, will they have to download the entire video?

Thanks,

Jim

# IIS 7.0 Bit Rate Throttling Module Released

Tuesday, March 18, 2008 10:10 AM by Letteer Lines

IIS 7.0 Bit Rate Throttling Module Released

# re: IIS 7.0 Bit Rate Throttling Module Released

Tuesday, March 18, 2008 12:27 PM by Vishal

Hi Jim

This is a great and very relevant question.

Bit Rate Throttling on IIS 7.0 supports byte ranged seeks. If you have a client that can make byte range seeks, you should be good. Silverlight 2.0 Beta also has this support.

Ed Maia's session at MIX08 (sessions.visitmix.com) has more details.

Thanks,

Vishal

# re: IIS 7.0 Bit Rate Throttling Module Released

Tuesday, March 18, 2008 1:32 PM by Ivan

AWESOME!!!!  Keep up the great work!!! Boy this has been an awesome year for developers so far!  

# Scott Guthrie: IIS 7.0 Bit Rate Throttling Module Released

Tuesday, March 18, 2008 1:52 PM by codebeater

Scott Guthrie: IIS 7.0 Bit Rate Throttling Module Released

# Bit Rate Throttling for IIS7 & Connection Limit Groups

Tuesday, March 18, 2008 6:04 PM by Jack Freelander's Blog

The recent release of the Bit Rate Throttling Module for IIS provides some useful and compelling features

# re: IIS 7.0 Bit Rate Throttling Module Released

Tuesday, March 18, 2008 7:34 PM by Dave Davis

Scott,

It is great to see new and exciting additions to Microsoft’s latest technologies.  I have a question, when will we see the XML Schema Designer for Visual Studio 2008.

# re: IIS 7.0 Bit Rate Throttling Module Released

Wednesday, March 19, 2008 1:38 AM by Abhijeet Rajwade

Thanks Scott!!!

# Thin at World Flat

Wednesday, March 19, 2008 8:20 AM by Thin at World Flat

Pingback from  Thin    at World Flat

# 推荐系列:2008年第10期 总12期

Wednesday, March 19, 2008 10:55 AM by TerryLee

概述本期共有10篇推荐文章,由于忙着写Silverlight2系列,所以导读写的不多,都是三言两语带过,希望大家见谅。1.CreatingaCustomSkinforSilverlig...

# A few updates for Silverlight Streaming by Windows Live

Wednesday, March 19, 2008 6:53 PM by Angus Logan's Blog

Remember MIX08? When we doubled Silverlight Streaming (the storage 4 to 10 GB, the max KBPS 700 to 1.4MBPS,

# MSDN Blog Postings » A few updates for Silverlight Streaming by Windows Live

Pingback from  MSDN Blog Postings  » A few updates for Silverlight Streaming by Windows Live

# 【收藏】推荐系列:2008年第10期 总12期

Wednesday, March 19, 2008 9:48 PM by Jacky_Xu

概述

本期共有10篇推荐文章,由于忙着写Silverlight2系列,所以导读写的不多,都是三言两语带过,希望大家见谅。

1.CreatingaCustomSkinforSilverl...

# Silverlight Streaming on ScottGu's blog

Wednesday, March 19, 2008 9:54 PM by Silverlight Streaming

Check this out, SLS gets some love on ScottGu's blog. I guess the service is growing up! Read more on...

# Ace DDL » Silverlight Streaming on ScottGu’s blog

Wednesday, March 19, 2008 11:42 PM by Ace DDL » Silverlight Streaming on ScottGu’s blog

Pingback from  Ace DDL » Silverlight Streaming on ScottGu’s blog

# IIS 7.0 ビットレートスロットリングモジュールのリリース

Thursday, March 20, 2008 2:58 AM by Chica's Blog

IIS 7.0 ビットレートスロットリングモジュールのリリース

# Squeezing the most out of IIS7 Media Bit Rate Throttling

Thursday, March 20, 2008 8:24 PM by Scott Hanselman's Computer Zen

# Squeezing the most out of IIS7 Media Bit Rate Throttling

Thursday, March 20, 2008 8:28 PM by ASPInsiders

ScottGu blogged about the IIS 7.0 Bit Rate Throttling Module being released. Since IIS 7.0 is totally

# Squeezing the most out of IIS7 Media Bit Rate Throttling

Thursday, March 20, 2008 8:36 PM by Scott Hanselman's Computer Zen

# re: IIS 7.0 Bit Rate Throttling Module Released

Thursday, March 20, 2008 10:15 PM by mike

Great article

# Bit Rate Throttling is 1 week - some interesting thoughts and applications

Friday, March 21, 2008 5:38 PM by Vishal Sood

Last week, we announced the release of Bit Rate Throttling (BRT) module and there has been a lot of positive

# IIS 7.0 Bit Rate Throttling Module Released « .NET Framework tips

Pingback from  IIS 7.0 Bit Rate Throttling Module Released « .NET Framework tips

# re: IIS 7.0 Bit Rate Throttling Module Released

Monday, March 24, 2008 3:15 AM by Shajeel

Thanks for the info, I have one query on the video streaming..

i wanted to know how can i avoid downloading of the video content on the client's cache.

# re: IIS 7.0 Bit Rate Throttling Module Released

Monday, March 24, 2008 6:53 AM by Sharjeel

How to achieve streaming without allowing file to be downloaded to client's cache?

# New Log Reporting, Database Management, and other cool admin modules for IIS 7

Wednesday, March 26, 2008 4:47 AM by ScottGu's Blog

One of the core priorities we focused on when building IIS 7 was to enable a rich .NET extensibility

# New Log Reporting, Database Management, and other cool admin modules for IIS 7

Wednesday, March 26, 2008 5:26 AM by Mirrored Blogs

One of the core priorities we focused on when building IIS 7 was to enable a rich .NET extensibility

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

Thursday, March 27, 2008 1:16 AM by Felix Wang | Evangelizing the Next Web

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

# New Log Reporting, Database Management, and other cool admin modules for IIS 7 « .NET Framework tips

Pingback from  New Log Reporting, Database Management, and other cool admin modules for IIS 7 « .NET Framework tips

# Ace DDL » Silverlight Streaming on ScottGu’s blog

Saturday, April 05, 2008 8:09 PM by Ace DDL » Silverlight Streaming on ScottGu’s blog

Pingback from  Ace DDL » Silverlight Streaming on ScottGu’s blog

# Ace DDL » Silverlight Streaming on ScottGu’s blog

Saturday, April 05, 2008 11:11 PM by Ace DDL » Silverlight Streaming on ScottGu’s blog

Pingback from  Ace DDL » Silverlight Streaming on ScottGu’s blog

# Novos Relatórios de Logs, Gestão de Bases de Dados e outros módulos interessantes de administração para o IIS7

Thursday, April 10, 2008 11:06 PM by ScottGu's Blog em Português

Uma das prioridades principais em que nos concentramos na construção do IIS7 foi a de fornecer um modelo

# Statistiche di Log, Database e altre novit

Friday, April 11, 2008 11:11 AM by Scott Guthrie Italian WebLog

Statistiche di Log, Database e altre novit

# Ace DDL » Silverlight Streaming on ScottGu’s blog

Tuesday, April 29, 2008 7:43 PM by Ace DDL » Silverlight Streaming on ScottGu’s blog

Pingback from  Ace DDL » Silverlight Streaming on ScottGu’s blog

# Ace DDL » Silverlight Streaming on ScottGu’s blog

Tuesday, April 29, 2008 7:56 PM by Ace DDL » Silverlight Streaming on ScottGu’s blog

Pingback from  Ace DDL » Silverlight Streaming on ScottGu’s blog

# Mini-Poster de IIS 7.0 (Componentes) y Referencia de Modulos

Thursday, May 08, 2008 2:02 AM by SergioTarrillo's RichWeblog

Un mini-poster con los componentes de IIS 7.0: Link: Mini-poster IIS 7.0 Setup Components . También,

# Raporty logów, zarządzanie bazą danych i inne ciekawe moduły dla IIS7

Monday, May 12, 2008 6:03 PM by Scott Guthrie's Blog in Polish

Jednym z priorytetów na którym skupiliśmy się przy budowie IIS7 było udostępnienie bogatego modelu rozszerzalności

# Scott Guthrie: IIS 7.0 Bit Rate Throttling Module Released

Wednesday, November 19, 2008 5:50 AM by DotNetShoutout

Your Story is Submitted - Trackback from DotNetShoutout