IIS7 Live Smooth Streaming using Inlet Spinnaker 7000 with Silverlight

Ricopio un blog di Eugene Fabian poichè il link al blog originale è errato. E’ un bellissimo articolo che descrive come realizzare un Live Smooth Streaming.

This is a copy of Eugene Fabian’s blog article because the original link is broken. I like this article a lot so i want to make a copy.

Eugene blog start here:

I was lucky to enough to work with this uber cutting edge technology that was used for the Youtube March Madness broadcast. Will post soon on how we were able to make this behemoth work.

After one month of stagnation it’s high time to finally put down the real guide about the Spinnaker 7000.

Some disclaimers

  • Was done in a testing environment
  • No performance tuning whatsoever
  • No further configuration done to both IIS and Spinnaker
  • Setup was done in less than 24 hours
  • By no means I’m an authority in this subject. If you purchased the Spinnaker Inlet would be able to help you as much as they helped us

IIS.Net pretty much covered a lot of the steps that would get you started on Live Smooth Streaming but unfortunately they didn’t cover using a Spinnaker from Inlet. Last I checked, Inlet doesn’t have one as well. (Package does contain a manual but not as ‘friendly’ as it can potentially be)

This will give you a lowdown on what you would be needing on IIS side and it is essential reading.

http://www.iis.net/extensions/LiveSmoothStreaming

http://learn.iis.net/page.aspx/620/live-smooth-streaming-for-iis-70—getting-started/

http://learn.iis.net/page.aspx/622/live-smooth-streaming-for-iis-70—creating-and-managing-publishing-points/

http://learn.iis.net/page.aspx/620/live-smooth-streaming-for-iis-70—getting-started#install_samples

Moving on to my guide

Three major steps in the setup.

  1. Hardware setup – Connecting your camera to the Spinnaker 7000.
  2. Spinnaker setup page – how to accept input from your camera and audio device using the Spinnaker setup page
  3. Connecting with IIS 7 – How to setup your publishing points and serving your video out

Remember that the goal of Live Smooth Streaming is to be able to serve different ’streams’ of the same live video depending on your bandwidth. This means you need to setup a number of ’streams’ coming from the same source (I believe this can also come from different sources)

Hardware Setup

The Spinnaker 7000 being designed for high end cameras doesn’t necessarily cater for your normal video cam. If you want to use low end consumer cameras a visit to an electronics shop is required.

Consumer cameras usually have normal VGA connectors

The usual two audio, one video is good enough for this prototype. Spent less than 10USD for the converters.

Spinnaker Setup Page

Now this is where all the fun starts.

Spinnaker requires that you are on the same network as the web server. I simplified everything by giving the machines a static IP. It also works with DHCP if you have that setup.

Button interface

Quite a cumbersome way to setup the appliance. You only have to worry about it once though as you would be using the web console next time.

IP Setup on my prototype

IMPT: Firmware upgrade!

The Spinnaker 7000 is a Windows XP Embedded Appliance. As with devices like this rule of thumb is to always check for firmware upgrades. Also, the interface of Spinnaker is not really award winning. Be sure to start and stop the encoder when changing any values.

As of May the newest firmware version is 4.0.0.8099

I got the firmware from Inlet folks themselves.

You got the firmware and the camera, next is to get the camera to show within Spinnaker.

Check with your camera manual on the output that it has (PAL, NTSC) but as usual, nothing is stopping you from trial and error

You can double check if your video already works by going to the summary page. It has a small preview window at the bottom of the page.

After this you would have to specify how many streams you want to push.

The sample from IIS.Net contains a video that has configurations for different streams. This would be valuable as we setup our own streams.

required reading: http://www.iis.net/media/experiencesmoothstreaming

Setup below shows bit rate croppings and resizing. These were the variables we found on the sample files (bunny video) We tried tweaking the values with common numbers (known common resolution numbers ex. 800 x 600, 1240 x 720 and such) to no avail. The best alternative is to follow the settings of the bunny video. Change the variables depending on the stream and you’ll essentially produce the same results as the bunny video.

You’ll be repeating the steps to the different streams

Be sure to save your work. No point in doing it all over again because of a single mistake.

Connecting with IIS7

This would be very much similar to the sample files. Except that the bunny video is using a command line push encoder while you will be using an appliance type.

required reading: http://learn.iis.net/page.aspx/620/live-smooth-streaming-for-iis-70—getting-started#pushencoder

You have to download and install this module. If you’ve been reading the links to IIS.net you would have done so by now.

You’ll see the Live Smooth Streaming Module after installation. On the sites you can then specify the publishing points.

Once you have the above complete, you’ll need to point Spinnaker to the your web server. Of course, you would need to start the publishing point to receive data from the encoder.

Specify the IP of the web server and the publishing point

If you notice we setup two publishing points. One from the Spinnaker and one from the bunny vid. The publishing points are quite sensitive to starting and stopping and we had to follow the sequence quite rigorously.

Once those are up you need to configure your Silverlight app to point to the right publishing point. (codes for this are on the sample file). We also used the Silverlight player from the bunny vid as this contains several interfaces that really highlight the capabilities of Live Smooth Streaming. (Bit rate, FPS, Bit Rate Graph)

End result is

Tadah! Half of my body with erased details 😉

Notice the similar player? Take it from the sample code and you’ll get the same powerful player for yourself.

That’s pretty much it for this guide. Hopefully you’ll find it useful. The are almost no guides like this probably because of the cost of the Spinnaker, but just in case one falls into your lap and you need to set it up fast, the IIS.net guides and this blog post entry would be heaven sent. =)

Thanks for reading and feel free to drop me a note.

~Eugene