Live Smooth Streaming via IIS

Live Smooth Streaming is an adaptive bitrate streaming extention for Microsoft Internet Information Server (IIS), that makes it possible to stream video via the HTTP protocol to players like Silverlight. This post shows how to use this streaming format with MPlatform SDK.


First, you will need a properly configured setup of your server: Microsoft's web site provides instructions on how to prep your IIS to Live Smooth Streaming.


The next step is setting up your encoding solution to stream your content up to the IIS. This post explains how to do this with MPlatform SDK.


For IIS Live Smooth Streaming there is a specific format in MPlatform's Writer sample.



According to Live Smooth Streaming specification this format supports VC-1 and H.264 video encoders:



So to start IIS Live Smooth Streaming with MPlatform you should set IIS Live Smooth Streaming format, select required codecs and type the target URL:



The target URL has a specific format:


http:// [name of server] / [website name] / [publishing point name] .isml / Streams(Video)


where:


  • [name of server] is an IP address of your server or its name;
  • [website name] is name of website on the server. If you use default site in "wwwroot" folder of your IIS configuration then you can skip this part of URL;
  • [publishing point name] is name of your Live Smooth Streaming publishing point in your IIS configuration;


Like on example above: http://ALEX_BASH/LiveTest.isml/Streams(Video)


Start the streaming:



To check the stream playback open a Windows Media Player and open the target URL:



The result is:



To start IIS Live Smooth Streaming with source code of your application that is based on MPlatform SDK is similar to RTMP streaming (http://docs.medialooks.com/Es1i0i/):


// Set up your source object, for example a device
// ...
// Start your source object
myLiveSource.ObjectStart(null);
// Initialize a new instance of MWriter object
MWriterClass myWriter = new MWriterClass();
// Set destination URL and capturing configuration
myWriter.WriterNameSet(@"http://ALEX_BASH/LiveTest.isml/Streams(Video)", @" format='ismv' protocol='http://' movflags='isml+frag_keyframe' video::codec='vc1' video::b='1M' audio::codec='aac'");
// Start a streaming
myWriter.ObjectStart(myLiveSource);