Adaptive bitrate streaming is an established standard for delivering video online. There are many reasons for the increase in use and popularity of this type of protocol, some of which include the seamless firewall traversal, broader device compatibility, and cost efficiency. For the end-user, it offers faster start-up/seek times, no buffering or stuttering, and an optimized playback experience. One of the first to introduce this type of adaptive bitrate streaming was Microsoft, and they refer to it simply as Microsoft Smooth Streaming or MSS.
Smooth Streaming is a hybrid media delivery method. It acts like streaming, but is based on HTTP progressive download. The HTTP downloads are performed in a series of small chunks, allowing the media to be easily and cheaply cached along the edge of the network, closer to clients. Providing multiple encoded bit rates of the same media source also allows clients to seamlessly and dynamically switch between bit rates depending on network conditions and CPU power. The end result is a smoother and more consistent playback.
As seen above, the file starts with file-level metadata (‘moov’) that generically describes the file, but the bulk of the payload is actually contained in the fragment boxes that also carry more accurate fragment- level metadata (‘moof’) and media data (‘mdat’). A typical Smooth Streaming file has a fragment for each 2 seconds of video/audio. Closing the file is an ‘mfra’ index box that allows easy and accurate seeking within the file.
Smooth Streaming was first introduced by Microsoft in October of 2008 as part of their Silverlight architecture and was used to deliver on-demand video of the 2008 Summer Olympics for NBCOlympics.com. To promote the new technology, Microsoft also announced an initiative with Akamai and launched a showcase Web site, SmoothHD.com. By dynamically monitoring local bandwidth and video rendering performance, Microsoft Smooth Streaming was able to optimize the content playback by switching video quality in real-time.
There are a few methods for playing smooth streaming. You can utilize Microsoft’s Silverlight, their developer plug-in/framework for creating rich content online and for mobile. You can also use anything that supports VC-1/WMA/H.264/AAC decoding and HTTP transport.
Smooth Streaming now goes far beyond the initial scope of Silverlight online streaming. Currently, you can use Microsoft Smooth Streaming to reach a variety of different kinds of clients/devices including browsers with Silverlight, XBox, Windows Phone, Apple iOS devices (iPhone/iPad), Windows 8 (in developer preview as of now) and TVs/STBs(Set-top Boxes). One example is Comcast’s popular Xfinity TV app for iPad/iPhone which has been running on top of the Smooth Streaming iOS SDK and delivers TV content to iOS devices. Smooth Streaming is commonly used for TV and premium video delivery.
With the development of new TV platforms in the living room, comes Microsoft and their release of their new XBox TV platform, XBox One, which will be coming out in November of this year (2013). With its release comes a long list of content providers that will be bringing their TV and premium content onto XBox. The XBox One will enable gaming, HDMI pass-thru to watch TV through the console, as well as Blu-Ray. The console will be personalized and voice activated with an added Kinect sensor, bringing a new experience into the living room. The majority of Xbox Live content providers will be utilizing Smooth Streaming as their video streaming technology. Also all content partners who are delivering protected premium Smooth Streaming video are using PlayReady DRM for their content protection. In addition, over 75% of all new media apps on XBox Live are powered by Smooth Streaming and Play Ready.
The popularity and buzz upon its release will bring even more attention to smooth streaming and the importance of its use among video content providers for this developing and growing method of video and TV consumption.
Because the Microsoft Smooth Streaming output creates multiple files from a single source file you have the option to tar the output tar = yes, in which case your file extension should be set to .tar. For example ftp://username:firstname.lastname@example.org/MSS/myMSSvideo.tar In this case all multiple outputs will be combined in a single tar ball for you to unpack on your own at a later date.
IMPORTANT NOTE: The extension of your video should be set to .ism. For example ftp://username:email@example.com/MSS/myMSSvideo.ism
In this case all of the MSS compatible files will be sent to the root directory /MSS so it is advised you create a separate directory for the MSS output.
The Microsoft Smooth Streaming specification preset will create the following outputs and send to your specified destination directory, assuming your source file name is myMSSvideo:
Output from Microsoft Smooth Streaming is highly optimized to be hosted and delivered from a Microsoft IIS web server where it supports advanced features like fast forward, rewind, metadata/binary track etc. Smooth Streaming can also be hosted on any Apache web server with the correct configuration. There are a variety of third-party and open source binaries to speed up your Apache configuration for Smooth Streaming. Of course, Microsoft also provides great documentation on Smooth Streaming.
Example of a MSS API request:
For more information on Smooth Streaming, you can visit the Experience Smooth Streaming page from Microsoft, where you can simulate different bandwidths and see how Smooth Streaming responds.You can also learn more from Smooth Streaming Technical Overview. RGB networks also provides a helpful page for pointing out the differences in MSS vs HLS.