Category Archives: NimbusHD

Live Silverlight Smooth Streaming with NimbusHD and Expression Encoder 4 – An Intro

[UPDATE: This functionality has been removed. See this post for more info.]

Smooth Streaming is changing fast. The team at Microsoft has and continues to make improvements in Smooth Streaming technologies, one of which recently has been Live Smooth Streaming with Expression Encoder.

I’m happy to report that NimbusHD now supports Push Live Smooth Streaming, which has been the #1 request from most of our clients for some time now. This supports hardware encoders, however, I’m going to focus on how this is now possible with Expression Encoder 4 Pro. In this exercise, we’re going to accomplish the following workflow:

  1. Set up a Live Publishing Point for my event through the NimbusHD Admin Center.
  2. Stream the event from Expression Encoder 4 Pro, with client DVR support.
  3. Adjust our Content Distribution Networks on the fly.
  4. End the live stream, leave DVR active.
  5. Shut down the Publishing Point, and transfer our Live Event content to On-Demand Content.

If you don’t already have an account, go get a trial at (free for 14 days).

Set Up The Publishing Point

For the first step, go to the Live tab of NimbusHD Admin, and click Create Publishing Point…


Title it, and set the Estimated Length (this isn’t something to stress over, it just helps set the correct DVR timeline).

Hit OK, and Nimbus will create and configure a Live Smooth Streaming publishing point for you, generate your push server address, and configure a set of client player parameters.


You’ll notice that the Status is Idle, Ready to Start and the default CDN is Akamai. Now, let’s start broadcasting something…

Stream The Event

Fire up Expression Encoder 4 Pro. (This is important – without the Pro version, Live IIS Smooth Streaming is limited.)

If you see the initial “Load a new project” wizard screen, click “Live Broadcasting Project”.


Set up your sources (outside the scope of this post), and we’ll tweak the settings for our live stream. To start, I’ll just select a preset of IIS Smooth Streaming, VC-1 codec @ 480p. There is no restriction on what bitrates, or how many bitrates you can push to Nimbus at any one time. However, pushing more than a couple bitrates (especially high-resolution ones) takes a pretty decent machine.


If you wish to adjust which bitrates you are encoding, you can do so under the Video section of the Encode tab.


Now, under the Output tab, check the Streaming box, and copy and paste the Encoder Stream URL provided by Nimbus.


Before Expression Encoder can connect to the Publishing Point, it must be started. Click Start Live Streaming in the NimbusHD Admin panel.


You’ll now notice that the status changes to Ready, waiting for encoder to connect…


So let’s connect – press Connect in Expression Encoder.


You’re now ready to roll… hit Start to begin streaming!


It’s worth noting a couple of things here that are happening in the background. NimbusHD is maintaining DVR support for your event, so your viewers can skip backward and surf through the previous event content (just like your cable/satellite DVR at home). Your event is also being recorded – we’ll get to this later.

Generate a player for Viewers

Your clients will need to be able to see this, so they’ll either need a link, or you can embed a player on your own site.


You can use the Player Quick URL if you want to use a simple NimbusHD player embedded on a blank page, or hit Generate Player / Embed HTML if you want to generate a player for your own site.


Adjust Content Distribution Networks on the fly

One of the major cool points of NimbusHD is the Content Delivery Network support, for scalability and optimal bandwidth/quality for your viewers. We support 3 out of the box (Akamai is the default) and your CDN of choice can be changed per-publishing point, and in real time for new viewers.

If you want to change from, say, Akamai to EdgeCast, hit the Change CDN… button.


… select your new CDN, and press OK…


That’s it… we’re done.

End Live Stream

You’ll notice that when you disconnect Expression Encoder, the Publishing Point changes status to Live Streaming Stopped, DVR Active.


DVR Active means that your viewers can still surf through the event in DVR mode, even though there is no new live content being delivered.

(One important note: If you experience a network interruption, you will need to shutdown and restart the Publishing Point. This is due in part to DVR functionality, as well as limitations of Encoder’s timecoding and IIS Smooth Streaming’s design. We’re working on making this better, but for the time being, it’s important to have a solid network connection.)

Transfer Live Event to On-Demand Content

The first thing that you’ll probably want to do after broadcasting your live event is to make it available to those who missed it. When your event is done, press Shutdown / End Event.

Your live event will automatically be transferred into a “Live Stream Archive” media bin. It’s instantly available for on-demand viewing!



At this point, it’s just like other on-demand media assets. You’ll probably want to trim it via the clip editor, and then make it available on your web site, or send a link out to those who missed the event.


The Live Smooth Streaming capabilities of NimbusHD are very powerful, even at this stage. There are a lot more exciting things to come (live viewer geolocation mapping has been suggested already), so stay tuned.