Webcasting With Windows Media

Article Featured Image
Article Featured Image

Sidebar: Intelligent Streaming
Intelligent Streaming is the name of the Multiple Bit Rate (MBR) technology used in Windows Media codecs. Intelligent Streaming works by combining multiple versions of the video and audio at different data rates. Then the server and player coordinate in real time, providing the highest bit rate of the content that’ll fit within available bandwidth. It’ll even switch bandwidths midstream if the end users’s bandwidth changes.

There are a few caveats with Intelligent Streaming for webcasting:All the simultaneous encodes share the same CPU resources, complexity, and advanced settings via registry keys. That limitation will be removed in the forthcoming VC-1 SDKs.

The connection between encoder and server must be sufficient for all simultaneous streams.

Some non-Windows players like Flip4Mac and Silverlight don’t take full advantage of Intelligent Streaming yet. The content will be delivered, but streams won’t switch.

Sidebar: Low-Latency Streaming
Latency is the measure of how much time goes between when video enters the encoder and when it leaves the server. Latency is something that doesn’t matter at all in some markets, and matters a lot in others.

The reason we have latency is buffering, and the reason we have buffering is for quality and reliability. By having the server wait several seconds after a video stream is received before sending it out, it’s able to support more peaks and valleys in the data rate, and thus it is possible for a dropped packet to be detected and re-sent before it’s needed. In the same way, buffering in the player lets it average out data rates and recover dropped packets as well.

Big buffers were extremely important in the modem era, and are still useful in many kinds of networks today. The defaults are good for delivering high-quality content over a variety of networks. But when minimizing the latency is important and reliable networks are available, the end-to-end delay can be reduced substantially. This requires some tweaks to the encoder, server, and player.

Remember that Windows Media is a platform meant for streaming, not videoconferencing—there’s a limit below which latency can’t be further reduced. Still, it’s possible for developers to build apps that leverage Windows Media the format to provide low-latency solutions.

Encoder—On the encoder side, reducing buffer size reduces startup latency, and reducing both buffer size and the "keyframes every" parameters will reduce latency when switching into the middle of a stream. A value of two seconds for both of the above is typically the lowest you’d want to go for this.

Server—Windows Media Server features like Advanced Fast Start can dramatically reduce latency for on-demand content, but don’t really apply to live webcasting as the server has to wait for content to come into it in real time, and so can only play out at real time.

Player—Normally the player isn’t under control of the streamer. By default, Windows Media Player dynamically picks an optimum buffer size based on its measurements of network and stream performance. However, it’s possible to lower the buffer size in the player’s options. This can help reduce latency when watching streams with a good connection, but could produce pauses in the video when watching video from the general internet.

Silverlight makes the player buffer size a controllable parameter, so an optimal setting can be applied for the content, and even adjusted on the fly.

Streaming Covers
Free
for qualified subscribers
Subscribe Now Current Issue Past Issues