Monday, July 13, 2009

Silverlight Smooth Streaming

The new version 3 of Microsoft Silverlight is already available, earlier than expected. Silverlight 3 introduces major media enhancements like out of browser support allowing Web applications to work on the desktop; significant graphics improvements including perspective 3D graphics support, GPU acceleration and H.264 video support and many features to improve development productivity.

One of the most interesting new features is the Smooth Streaming technology (see a demo here) which dynamically detects and seamlessly switches, in real time, the video quality of a media file delivered to Silverlight based on local bandwidth and CPU conditions. This provides support for Live and on-demand true HD (720p+) streaming.

The technical overview tells the following:
IIS Smooth Streaming uses the MPEG-4 Part 14 (ISO/IEC 14496-12) file format as its disk (storage) and wire (transport) format. Specifically, the Smooth Streaming specification defines each chunk/GOP as an MPEG-4 Movie Fragment and stores it within a contiguous MP4 file for easy random access. One MP4 file is expected for each bit rate. When a client requests a specific source time segment from the IIS Web server, the server dynamically finds the appropriate Movie Fragment box within the contiguous MP4 file and sends it over the wire as a standalone file, thus ensuring full cacheability downstream. In other words, with Smooth Streaming, file chunks are created virtually upon client request, but the actual video is stored on disk as a single full-length file per encoded bit rate. This offers tremendous file-management benefits.

No comments: