Windows Media Server or Web Server?
by Dave Nelson
You can deliver digital media audio and video files and live streams either from a Windows Media server (a server that is running Windows Media Services) or from a Web server (a server that is running Internet Information Services (IIS)). Clients use different methods to receive digital media content from Windows Media servers and Web servers: they stream digital media from a Windows Media server and download digital media from a Web server.
With the broader availability of high-bandwidth networks and new media delivery features for IIS 7 and above, the differences that previously favored the use of a Windows Media server over a Web server for delivering digital media content have blurred. In non-multicast streaming scenarios, depending upon your business need, a Windows Media server or a Web server can both be viable options for digital media content delivery today.
This article introduces the delivery methods and bandwidth-management capabilities of Windows Media servers and Web servers, two important aspects of media delivery to consider when you are trying to decide which server type to deploy for your delivery scenario.
Introducing Windows Media servers and Web servers
This section introduces the two primary Windows Server roles that are used to deliver digital media to clients:
Windows Media servers
A Windows Media server is designed specifically for streaming on-demand and live digital media to clients. It provides high-quality streaming over a wide range of bandwidths to Windows Media Player and to Web browsers that use the Windows Media Player 9 Series ActiveX control or the Microsoft Silverlight browser plug-in. It is especially useful for streaming large amounts of data over busy, congested networks and low-bandwidth connections. Streaming uses bandwidth more efficiently than downloading because it sends data over the network only at the speed that is necessary for the client to render it correctly. This helps prevent the network from becoming overloaded and helps maintain system reliability.
Users that connect to a stream can start to play it almost immediately. If streaming on-demand content was indexed during encoding, they can use Seek functions (Fast-Forward and Rewind) on their player to jump to any part of the stream without waiting for a download to finish. Streaming prevents users from downloading files directly to their hard disk because the streaming data packets are delivered directly to the client application and discarded by the client application after they are rendered.
A Windows Media server supports delivery of a limited number of popular digital media file formats, including Windows Media Audio (WMA), Windows Media Video (WMV), and MP3. It also supports the use of JPEG files as media elements in server-side playlists or as banner graphics to be displayed in Windows Media Player.
A Web server is designed to host Web sites and serve the Web site's pages and files to clients upon request. When a client requests a file from a standard Web server, all available network bandwidth is used to download the data to the client as quickly as possible. Web server deployments that serve small files to a limited number of users simultaneously require little bandwidth. But as delivery of audio and video files (which are frequently large) has increased, and as sites must serve greater numbers of simultaneous client requests, more bandwidth is required to fulfill the client requests in a timely manner.
A Web server supports delivery of an unlimited number of popular digital media file formats using standard file-download. If the IIS Media Services Smooth Streaming extensions are installed on a Web server running IIS, delivery of on-demand and live streams in the MP4 container format is also supported.
Streaming vs. Downloading
This section compares the content delivery methods for Windows Media servers and Web servers:
User Datagram Protocol (UDP) has long been the preferred transport protocol for traditional streaming media. It is a fast, lightweight protocol without any retransmission or data-rate management functionality, making it an ideal protocol for transmitting real-time audio and video data, which can tolerate some lost packets. UDP also has higher priority than Transmission Control Protocol (TCP)-based HTTP for Internet traffic, giving streaming audio and video data higher priority over file and Web page transfers and increasing the likelihood of uninterrupted viewing on congested networks. A Windows Media server also uses UDP Resend, an intelligent UDP-retransmission scheme that ensures that it only retransmits lost packets that can be sent to a player in time to be played, instead of the blind retransmission scheme employed by TCP. This smart-resend feature conserves additional bandwidth on congested networks.
A Windows Media server may stream digital media by using the Real Time Streaming Protocol (RTSP) with UDP-based transport (RTSPT) to take advantage of UDP-based streaming efficiencies. On networks that don't support UDP, the server is normally configured to use a process called protocol rollover to try TCP-based streaming, first by using RTSP, and if that doesn't work, it uses its own version of HTTP for firewalls that allow Web traffic through port 80. This enables corporate users to view Internet content without compromising firewall security and ensures that all users on all networks can access all streaming media content. For more information about the streaming protocols that are used by Windows Media Services, see Comparing HTTP Streaming Protocol with RTSP.
As network bandwidths increase, the use of TCP is becoming more common. Because TCP guarantees delivery of every packet, it is preferred for video-on-demand delivery, especially if end users are paying for the content through a pay-per-view or subscription billing model.
The bandwidth-management capabilities that are present in a Windows Media server are lacking in a standard Web server. When a client requests digital media from a Web server, the Web server downloads the content to the client as fast as the network will allow without monitoring the quality of the delivery and adjusting the bit rate for the client in the way that a Windows Media server does. A client can start to play the content as soon as enough data is downloaded to its Internet cache (this is referred to as progressive downloading); however, in bandwidth-constrained systems, simultaneous requests from multiple clients can quickly saturate the available network bandwidth and clients must buffer more data to the cache before starting or resuming playback.
Downloading also uses the available bandwidth less efficiently than streaming. Web server content delivery uses HTTP, the standard Web protocol that is used by all Web servers and Web browsers for communication between the server and the client. HTTP operates on top of the TCP transport protocol, which handles all data transfers. TCP is optimized for non-real-time applications such as file transfer and remote log-in; therefore, it maximizes data transfer rates while ensuring overall stability and high throughput for the whole network. TCP achieves reliable data transfer by re-transmitting all lost packets, but it can't ensure that all resent packets will arrive at the client in time to be played, and so sometimes wastes bandwidth.
With IIS, you have a choice. You can use standard progressive downloads, with the limitations mentioned above, or you can use a new IIS feature called Bit Rate Throttling, described below, which provides some of the benefits of traditional streaming to almost any type of media file.
Windows Media Services
With its built-in bandwidth-management capabilities, a Windows Media server is an ideal way to deliver digital media content to large numbers of concurrent users using traditional streaming.
A Windows Media server sends data at the same bit rate as the content, leaving more bandwidth available for servicing concurrent client requests for content and resulting in better quality audio and video for connected clients. There is typically a delay between the time the stream is received by a player and the point at which it starts to play because the player must first buffer some data in case there are delays or gaps in the stream. This buffer allows the media to continue playing uninterrupted, even during periods of high network congestion. Because data streaming and rendering occurs almost simultaneously, streaming also enables you to deliver live content. Windows Media Services contains many additional features that are used to optimize network throughput. This section describes two of the most important: Intelligent streaming and Fast Streaming.
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 (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. The actual bandwidth at any given point is determined by network conditions and traffic, which are constantly fluctuating. To ensure a continuous presentation during traditional streaming delivery, Windows Media technologies use intelligent streaming, which adjusts the bit rate of the content stream to counteract changes in available bandwidth. When a client 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 stream plays, intelligent streaming is designed to dynamically and seamlessly adjust the bit rate of the streaming content as the available bandwidth changes.
Intelligent streaming progresses through a series of strategies to modify the bit rate of the stream so that it plays continuously on the client regardless of the current bandwidth. As bandwidth fluctuates between server and client, the server detects the changes and adopts the best strategy. The strategies are as follows:
- The server and client automatically determine the current available bandwidth, and then the server selects and delivers the stream with the most appropriate bit rate. This requires that the content be encoded as a multiple-bit-rate (MBR) stream.
- During transmission, if the bandwidth decreases, the server automatically detects the change and switches to a stream with a lower bit rate. If bandwidth improves, the server switches to a stream with a higher bit rate, but never higher than the original bit rate. The process of selecting the appropriate stream is transparent to the user.
- If the bandwidth can no longer support streaming video, the client and server intelligently degrade image quality to avoid buffering. This method of decreasing the bit rate to accommodate the current bandwidth is called stream thinning. The server decreases the video frame rate first. If the bit rate is still too high, the server stops sending video frames.
- After the server stops sending video frames, it uses intelligent streaming to try to maintain a continuous audio stream. If audio quality starts to degrade, the client reconstructs parts of the stream to preserve quality.
When bandwidth is at its best, the server uses the first strategy. As conditions worsen, the server tries each strategy in the previous list of options in succession until the bit rate is optimized for the current bandwidth.
A newer and improved form of intelligent streaming for delivery of media from Web servers is also available using IIS. See the Smooth Streaming section of this article for more information.
Fast Streaming refers to a group of features in Windows Media Services that improve the quality of streaming media content for the user. These features allow for a combination of streaming, downloading, and caching to provide the best user experience:
- Fast Cache. Enables Windows Media Services to use any additional bandwidth to send additional data to the player buffer, allowing the player to better withstand network bandwidth fluctuations.
- Fast Start. Enables the beginning part of the content to be quickly downloaded to a player at the maximum available bandwidth, reducing the time required to fill the player's buffer requirement and the amount of time a user has to wait (also known as latency) before starting to receive the stream.
- Fast Recovery. Enables the server to provide an uninterrupted viewing experience to users receiving content over high latency network connections, such as wireless and satellite networks, by using forward error correction to greatly reduce packet corruption and interruption.
- Fast Reconnect. Enables the server to automatically restore client connections—including encoders, distribution servers, and players—that are lost during a broadcast because of network conditions.
- Advanced Fast Start. Adds to Fast Start capabilities by allowing the player to start to play content as soon as its buffer receives a minimum amount of data, further reducing the amount of latency before the user starts to receive the stream.
IIS Media Services
IIS Media Services extensions are designed to add media delivery capabilities to a Web server that is running Internet Information Services (IIS) 7. The IIS Media Services extensions take advantage of the broader market availability of high-bandwidth networks, which make a Web server an increasingly practical option for digital media content delivery. This section describes the following streaming and bandwidth management extensions that are available in IIS Media Services:
IIS Media Services includes additional extensions that add Windows Media Services-like capabilitres, such as server-side playlists and rich client logging, to Web servers running IIS. For more information about these extensions, and additional extensions that may be developed to enhance delivery of digital media content from Web servers, see the IIS Media Services Web site.
Smooth Streaming is the Microsoft implementation of adaptive streaming technology, which is a form of Web-based media content delivery that uses standard HTTP. Instead of delivering media as full-file downloads, or as persistent (and thus stateful) streams, the content is delivered to clients as a series of MPEG-4 (MP4) fragments that can be cached at edge servers. Smooth Streaming-compatible clients use special heuristics to dynamically monitor current network and local PC conditions and seamlessly switch the video quality of the Smooth Streaming presentation that they receive. As clients play the fragments, network conditions may change (for example, bandwidth may decrease) or video processing may be impacted by other applications that are running. Clients can immediately request that the next fragment come from a stream that is encoded at a different bit rate to accommodate the changing conditions. This enables clients to play the media without stuttering, buffering, or freezing. As a result, users experience the highest-quality playback available, with no interruptions in the stream.
Smooth Streaming provides media companies with a better way to make full-HD (1080p) streaming on the Web a reality. It offers code-free deployment and simplified content management for content creators and content delivery networks. For users, the improved viewing experience brings the reliability and quality of television to their favorite video Web sites.
As a content producer, you can encode live and on-demand Smooth Streaming video using Microsoft® Expression® Encoder 4. As a content provider, you can use IIS Media Services to serve the encoded Smooth Streams. And as a content consumer, you can play the Smooth Streams using a Smooth Streaming-compatible client, such as Microsoft® Silverlight™.
For more information
- Smooth Streaming Technical Overview. Provides a comprehensive history, context, introduction, and technical description of Smooth Streaming.
- Smooth Streaming Deployment Guide. Describes the Microsoft implementation for delivering a full Smooth Streaming experience.
- Experience Smooth Streaming. Go to this Web page to use a Silverlight browser plug-in to simulate different bandwidths and see Smooth Streaming in action.
Bit Rate Throttling
If you are concerned about the overall bandwidth limitations of your Web server system, instead of switching your network computers to a new streaming distribution system, you may be able to use the Bit Rate Throttling extension, which offers similar bandwidth-management and client-connection capabilities to those in Windows Media Services. Unlike Windows Media Services, you can use Bit Rate Throttling to intelligently deliver any media file type, not just Windows Media files. (Even better, Bit Rate Throttling can be used to deliver any file type in a controlled manner, not just media files.)
You can configure Bit Rate Throttling to send an initial burst of data to a client's cache (similar to the Fast Start capability of Windows Media Services that reduces latency) so that the client application can start to play the file by using progressive download, and then configure the rate at which the remaining data is downloaded to the client. Typically, this throttle rate is slightly greater than the encoded bit rate of the file, so that the client renders the throttled data as it is downloaded (similar to a streaming experience). When multiple clients request data from the Web server, they consume the data at the throttled rate, instead of all at once. This frees additional bandwidth for servicing additional client requests.
On standard Web server networks that have lots of available bandwidth, a complete file can be downloaded to a user's Internet cache in just a few seconds, provided it isn't exceptionally large, and content providers can incur costs related to unused bandwidth if users stop playing the downloaded file after a short time. By throttling the content download rate so that clients receive just enough content to render it, content providers don't incur costs related to the bandwidth that is wasted in the unviewed parts of downloaded files.
The Bit Rate Throttling extension offers advanced settings that allow you more control of the cumulative network throughput from your Web server. For example, you can specify global default and maximum throttle rates for all digital media files (regardless of their encoded bit rates) and specify a total bit rate throughput limit for a site so that the available bandwidth is dynamically allocated to connected clients. The Bit Rate Throttling extension also offers a useful secondary feature that throttles data file types at specified bit rates.
For more information, see Bit Rate Throttling.
A Windows Media server is designed to handle the special requirements of streaming and administering Windows Media-based content. However, a Web server can be a practical option for delivering digital media content, especially by installing IIS Media Services extensions for IIS that bring Windows Media server capabilities to the Web server.
Windows Media Services 2008 and IIS have additional features that are not described in this article that might affect your choice for delivering digital media. For example, Windows Media Services is the only server role that can be used for multicast delivery of content on enterprise networks. Before you make a final decision about which server role to deploy to facilitate your business model, review the features for each server role in the following table.
= This feature or function is supported.
= This feature or function is supported on a Web Server running IIS if the referenced extension is installed. The implementation on the Web server may differ from the Windows Media server.
= This feature or function is not supported.
|Windows Server 2008 Feature||Windows Media Services 2008||Internet Information Services|
|Optimized for streaming Windows Media-based content||1|
|Delivers content through most firewalls|
|Streams without downloading|
|Broadcasts live content||2|
|Delivers content using multicast streaming||3|
|Supports trick mode playback of on-demand files||4|
|Delivers content protected with Digital Rights Management|
|Delivers content using Fast Streaming||1, 2, 4|
|Delivers content using Intelligent Streaming||2, 4|
|Supports cache/proxy delivery scenarios||5|
|Supports rich client logging||6|
|Delivers content to cross-platform Silverlight clients|
|Delivers content to iOS devices (iPhone, iPad)|
|Delivers content referenced by server-controlled playlists||7|
|Provides advanced performance boundary limits properties||1|
|Supported on Server Core installations|
|Available for Windows Web Server 2008|