In order to provide the best quality video possible to the widest range of viewers, it is necessary to tailor the bit rate of the video to match the download speed of the client’s connection. This is possible to do with Windows Media Server, Real Producer and Quicktime.
The most difficult task of streaming audio and video over a network is maintaining a continuous presentation to the user in a highly changeable environment. Buffering is the biggest problem of streaming digital media. It is caused when the client runs out of data in memory, called the buffer, and must wait for more to arrive. The client will always run out of data if the bit rate of the incoming stream exceeds the current available bandwidth.
Unpredictability of bandwidth is taken for granted on the Internet. For example, just because a user connects to an ISP at 56 Kbps does not mean there is 56 Kbps of bandwidth available to the user at all times. The actual bandwidth at any given point is determined by network conditions and traffic on the Internet, which is constantly fluctuating, causing bandwidth to drop to 18 Kbps one moment, and then increase to 40 Kbps the next. If a user attempts to view video being streamed at 50 Kbps, the presentation suffers considerably when bandwidth is squeezed.
To ensure a continuous presentation, Windows Media technologies use intelligent streaming, which adjusts the bit rate of the content stream to counteract changes in available bandwidth. When a user first connects to a stream, intelligent streaming ensures that the client receives content at the bit rate that is most appropriate for the current bandwidth. As the user continues to play a stream, intelligent streaming dynamically and seamlessly adjusts the bit rate of the streaming content as the available bandwidth changes.
To take full advantage of intelligent streaming, content must be encoded as a multiple-bit-rate stream. In multiple-bit-rate encoding, a number of discrete, user-definable audio and video streams are encoded into a single Windows Media stream. The streams are encoded from the same content, but each is encoded at a different bit rate. When Windows Media Player connects to a Windows Media server to receive a multiple-bit-rate Windows Media file or broadcast stream, the server only sends the set of audio and video streams that is the most appropriate for current bandwidth conditions. The process of selecting the appropriate stream is completely transparent to the user.
How to create multiple bit rate files
To encode content that takes advantage of intelligent streaming, you can simply use one of the multiple-bit-rate destinations provided in Windows Media Encoder. For greater control, you can manually select the bit rates for each audio and video stream within a multiple-bit-rate stream. Client post-processing and intelligent bit rate optimization are all automatic, on-the-fly features. Best of all, you only need to create and manage a single file to handle multiple bit rates.
To understand the following topics, you should be familiar with the operation of Windows Media Encoder 9 Series. For more information about encoding, see Windows Media Encoder Help.
Setting Up the Encoder
To set up a multiple-bit-rate encoding session, do the following:
If you want to use intelligent streaming with multiple-bit-rate streams, the content must be hosted on a Windows Media server and played in Windows Media Player. You can create files that contain multiple-bit-rate streams and play them locally or from a Web server, but only the highest bit rate streams will play.
For more information about editing or creating profiles that encode with multiple bit rates, see Windows Media Encoder Help.
Viewing the Process
After you have configured an encoding session for capturing multiple-bit-rate content and have connected and adjusted the video and audio streams, start encoding. If your computer meets the requirements for encoding high-bit-rate content, you can capture and encode multiple-bit-rate content. The more streams you encode, however, the faster the CPU and more memory your computer requires.
You face a tough choice when you want to deliver your QuickTime movies over the web. Part of your audience has a dialup connection and a slow computer and can’t view large movies with high frame rates. They need small, highly compressed movies. The other part of your audience has a fast connection and a fast computer and easily watch higher bit rate videos. They want movies with the highest possible video and audio quality. How do you satisfy both?
With QuickTime, you don’t have to choose–you just use a reference movie. A reference movie contains pointers to alternate data rate movies–that is, multiple versions of the movie designed for downloading at various data rates.
For example, you could create three versions of a movie–a version optimized for 56K dialups, a version for DSL or cable modems, and a version for T1’s and higher–put them all on your webpage, and have the reference movie choose which is appropriate for each viewer.
That’s right, QuickTime 3 and later can auto-select the right movie for any connection speed (or CPU speed, or language, or QuickTime version) in the QuickTime Settings dialog without the viewer having to make a choice, and without special coding on your part. You can even create a default movie that plays if none of the criteria are met.
To create a reference movie/alternate data rate movie setup, you’ll need the Pro version of QuickTime Player and an application that allows you to make a reference movie, such as Peter Hoddie’s XMLtoRefMovie utility, or Apple’s free MakeRefMovie utility.
Creating the alternate data rate movies is a straightforward process.
You can make a reference movie for alternate data rates based on connection speed or other criteria using an application such as the free utility program MakeRefMovie, available from Apple for Mac OS 9 , Mac OS X, and Windows. The latest version of MakeRefMovie can also create reference movies that choose among alternate movies based on CPU speed, language, or QuickTime version.
Once you’ve made the alternate movies, follow these steps in MakeRefMovie: