Monday, December 1, 2008

Smooth HD inside...

IIS Smooth Streaming falls into a class of delivery known generically as Adaptive Streaming. With this method, the video asset is encoded at multiple bitrates in a GOP aligned fashion which allows client-side Silverlight managed code running inside of a custom MediaStreamSource class to make decisions at runtime based on network and local conditions (e.g. dropped frames) and switch to lower or higher steams as needed.

Over the wire, streams are delivered in chunks using progressive HTTP, each chunk containing a couple of seconds worth of video samples. In classical adaptive streaming, these chunks are typically laid down on disk as many discrete files. One of the nice features of IIS Smooth Streaming is that, on disk, the chunks are all stored in a single file per stream rather than many hundreds or thousands of fragments. The IIS Smooth Streaming Module installed on the server then translates chunk requests from the wire into file offsets and serves the chunks; effectively virtualizing the concept of a chunk.

(from James Clark)