Smooth Streaming for IIS 7.0 - Exploring Bit Rate Changes

The Smooth Streaming extension for Internet Information Services (IIS) 7.0 allows you to set up a Web server as a Smooth Streaming server with a default Microsoft Silverlight 2.0 client implementation. This document covers the following scenarios:

Prerequisites

The scenarios in this article require a Smooth Streaming server. Follow the steps in Smooth Streaming for IIS 7.0 - Getting Started to set up a Smooth Streaming server.

Using the Smooth Streaming User Experience Simulator

To open the Smooth Streaming User Experience Simulator, navigate your Web browser to http://localhost/Big_Buck_Bunny/UXSimulator.html.

Note   If you stored the sample content in a different content directory, substitute its URL for Big_Buck_Bunny. To view the content from a remote computer, substitute the server’s URL for localhost.

The Web page displays a user interface similar to the following:


The interface contains the following components that help simulate conditions and quantify the playback experience:

Current Bit Rate Selection panel (upper right).

The right-most element is used to select the simulated available bit rate between the client and the server. To simulate a drop in the available bit rate, click the desired red bar. To simulate an increase in the available bit rate, click the desired gray bar.

The left-most element displays the encoded bit rates that are available. The green bars indicate the current bit-rate downloads that are taking place. Download bit rate decisions are made are made every few seconds by the Smooth Streaming heuristic algorithms that are hosted in Silverlight. A change in the downloaded bit rate may lag several seconds behind changes in the simulated available bit rate.

Frame Rate History panel (lower right)

This panel displays the recent history and the current state of the playback frame rate, as a percentage of the encoded frame rate. Use this information to determine if the available decoding power is considered a limiting factor in the bit rate decision. As the needs of the video decoder and renderer begin to exceed available CPU resources (either due to hardware limitations or CPU use by other processes), Silverlight skips frames to keep the stream playing in real time, resulting in a detectable drop of the playback frame rate relative to its possible maximum (the encoded frame rate of the media). If the playback frame rate falls too low, video playback may cease to appear smooth, and decoding artifacts may start to appear. To ensure a great playback experience, the Smooth Streaming algorithms limit the bit rate of the media if excessive skipping of frames occurs. This ensures that the CPU load required for decoding stays within the limits of the CPU power available.

Bit Rate History panel (lower left)

This panel displays a history of the bit rates used during playback. The right side of the graph always represents the current bit rate at which content is playing.

Simulating a Drop in Available Bandwidth

To simulate a drop in the available bandwidth, click on the red bars in the Current Bit Rate Selection panel. The following figure shows a simulated drop from 5000 kilobits-per-second (Kbps) to 714 Kbps (three bars for the sample content).

At the next available bit rate decision point (a few seconds later), the Smooth Streaming heuristics algorithms adjust the download bit rate accordingly. This can be seen by looking at the green bars in the Current Bit Rate Selection panel:

The Smooth Streaming client will play the content that is already downloaded at the higher bit rate to maintain high quality for as long as possible, then play the content that is downloaded as the new reduced bit rate begins, as can be seen by examining the Bit Rate History panel:

Simulating a Recovery of Available Bandwidth

The ability to seamlessly upgrade the experience as conditions recover is crucial to ensuring that all users get the best quality they can at any moment. Starting from a low simulated bit rate state, let us examine how the Smooth Streaming client heuristics respond when conditions improve. Select a higher simulated bit rate by clicking on the grey bars above the red bars in the Current Bit Rate Selection panel.

At the next available decision point, the Smooth Streaming client heuristics change the download bit rate to match the available simulated bit rate between the client and the server, as can be seen by the green bars in the Current Bit Rate Selection panel:

Shortly thereafter, content downloaded at the new improved bit rate begins to play, as can be seen in the Bit Rate History panel. Notice how the change in bit rate occurs gradually to prevent a jarring visual quality change:

User Experience for Seeking

The Smooth Streaming heuristics algorithms ensure that the experience is extremely responsive to seek operations by downloading media at the desired seek position at a reduced bandwidth to reduce the lag between a seek event and playback at the new position, and then quickly recover to the available bit rate to maintain a quality experience. This can be seen in the Bit Rate History panel after a seek event:

Related Content

Comments

The User Experience Simulator is awesome. I got the bits from the xap but are you making the source available in a more non-hackish way?

I've been having a lot of fun extending existing player assets with this and it's great to see the support start rolling out like is has been in betas.

Thanks,
Damon Wilder Carr
http://www.domaindotnet.com

Feb 27 2009 by damonwildercarr

Hi,

Could you please add the source code for this player as it would be a great starting point for me to create a more advanced demo player.

Thanks in advance.
http://www.f1-corner.com

Apr 20 2009 by fgasse

Hi,

Great to see your interst in this player. I would love to more on what you guys are doing with it. You can reach me at vsood at microsoft.

We are working on making availble a platform which you can extend and add custom UI. I will keep you posted but don't have dates to share yet.

Vishal

Apr 22 2009 by vsood

my interest is in the source of the player, too. can somebody add this? thanks. http://www.glaeserruecken-anleitung.de

Nov 25 2009 by develar

Submit a Comment

You must Log In to comment.