IIS Media Services 3.0 and Player SDK released!

Last week was a big one for Smooth Streaming! IIS Media Services 3.0, the IIS7 media extensions pack containing Smooth Streaming, has completed its 6-month beta development cycle and has been released to Web. You can download it here:

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

Chris Knowlton has written an excellent summary of everything that’s gone into this release. Here’s just a brief list of components:

Read more about IISMS 3.0 here.

A whole blog post of its own could be written about the Smooth Streaming Player Development Kit, and that’s precisely what Vishal Sood has done here. The Player SDK and its introduction of Smooth Streaming Media Element (SSME) are incredibly important for incorporating Smooth Streaming support into Silverlight projects. Closely modeled after the native Media Element interface, the SSME allows developers to seamlessly integrate both on-demand and live Smooth Streaming into their apps without worrying about complex heuristics while at the same time giving them rich control over Smooth Streaming events and properties. Here’s just a sampling of SSME’s features:

  • Basic Playback controls
    • APIs like Play, Pause, Stop, etc.
    • Events for Playback and Diagnostics
    • Properties to track position, etc.
  • Advanced Playback support
    • DVR support for Live Smooth Streaming
    • Trick Play: Slow Motion
  • Monetization
    • Ad Playback integration – scheduling capabilities, tracking Ad progress
    • Live Ad Insertion w/ Live Smooth Streaming
    • Rich Analytics w/ IIS Advanced Logging
  • Content Protection – Play Ready integration
  • XAML support for designers
  • Selecting Tracks for playback (e.g., restrict the bit-rates available, support multiple camera angles in a single stream, etc.)
  • Support for progressive download Ads/content
  • Almost all of the Silverlight Media Element APIs are available for Smooth Streaming w/ SSME

If you want to see an example of IIS Media Services 3.0 and SSME in action, just check out the Sunday Night Football player (U.S. only) every Sunday at 5 pm PST. The player is built on SSME, and the origin servers are running IISMS 3.0.

Posted in Internet Information Services, Silverlight, Smooth Streaming | Tagged , , , , | 5 Comments

NBC Sunday Night Football – Powered by Silverlight and Smooth Streaming

Has it really been 5 months since my last post? Well, one of the reasons why I’ve been so inactive here is because I’ve been busy working on this project:

Today we are launching the NBC Sunday Night Football website: http://snfextra.nbcsports.com featuring a truly cutting-edge video player powered by Microsoft Silverlight and IIS7 Smooth Streaming.

The first game, Titans vs Steelers, is to be broadcast today (September 10th) at 5 pm PST. The next game, Bears vs Packers, is scheduled for this Sunday (September 13th) at 5 pm PST. Due to NBC broadcast rights for SNF, the website is restricted to U.S.-based users only (sorry, expats!).

The project is the culmination of over 5 months of hard work involving NBC, Microsoft (technical project management and core technologies), iStreamPlanet (video encoding services and realtime data integration), Vertigo (player design and development), Akamai (content delivery), Inlet (video encoding technology), Conviva (realtime content delivery analytics), Omniture (web analytics) and DoubleClick (advertising).

The SNF player will feature:

  • Live Smooth Streaming video, for all of the content, all of the time
  • Seamless on-demand switching between the 720p HD main broadcast feed and four 480p SD alternate camera angles
  • Full motion thumbnail previews of all alternate camera angles
  • Seeking, pausing, fast forwarding and rewinding of live video
  • Slow motion and instant replay
  • Realtime play-by-play data available on the timeline and pop-up menu, providing instant access to all key game plays
  • Realtime game stats data
  • Dynamic mid-stream ad insertion (matching where the ads would appear in a TV broadcast)
  • Silverlight 3 support for GPU-accelerated video scaling for improved video playback performance

There are a ton of other features I’m probably forgetting right now, but I will make sure to follow up soon with another blog post covering all those as well as the technical video details of the project (bitrates, resolutions, codecs, etc).

Posted in Internet Information Services, Silverlight, Smooth Streaming | Tagged | 7 Comments

Microsoft at NAB 2009: IIS Smooth Streaming Released to Web

Last day here at NAB in Las Vegas, so it’s a perfect time to take a look at what we’ve done at NAB this year. Ben Waggoner has put together an excellent summary on his blog:

http://on10.net/blogs/benwagg/NAB-Day-1-Smooth-Streaming-released-1080p-in-Silverlight-new-VC-1-and-more/

So the big news is: IIS Media Services 2.0 (featuring on-demand Smooth Streaming) has been officially released to Web, a mere 6 months after first announced at Digital Hollywood as a technology preview! We expect IIS Media Services 3.0 (featuring Live Smooth Streaming, currently in beta) to be released later this year.

Now we watch Smooth Streaming completely change the rules of media delivery on the Web.

Posted in Internet Information Services, Silverlight, Smooth Streaming | Tagged , , , , | Comments Off on Microsoft at NAB 2009: IIS Smooth Streaming Released to Web

Smooth Streaming White Paper

I know that many of you have been reading my blog for information about IIS Smooth Streaming. I’ve posted a series of posts on that topic, but sometimes blog posts can be difficult to aggregate. So if you’re looking for a single, one-stop-shop for information about Smooth Streaming, you can now download a white paper on Smooth Streaming that unifies all that information I’ve been posting in a single doc:

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=03d22583-3ed6-44da-8464-b1b4b5ca7520

The white paper is available in Word, PDF and XPS formats.

Posted in Internet Information Services, Silverlight, Smooth Streaming | Tagged , , , | 6 Comments

MediaStreamSource Takes On a New Life

When the Silverlight team originally designed the MediaStreamSource API, its main purpose was to allow asynchronous reading of compressed video/audio samples from formats other than ASF. We took full advantage of this API to implement Smooth Streaming support in Silverlight 2. In Silverlight 3, the team decided to extend the API to also allow reading of uncompressed samples – YV12, RGBA and PCM. The primary goal behind this was to allow developers to build their own codecs. If you could parse a format and decode it in .NET – you could now play it back in Silverlight.

But one of the other potential uses for MediaStreamSource that emerged during SL3 development was video and audio synthesis. After all, why limit A/V creation to just decode from existing content? You can create a sound waveform or a raster bitmap using .NET math functions and then present it to the Silverlight runtime to render like any other audio or video.

Well, I was extremely happy to find out today that developers are catching on to this fantastic new feature. Namely, Pete Brown, a Washington DC-based .NET developer and evangelist has been using MediaStreamSource to synthesize video, audio and – my favorite – emulate a Commodore 64 computer!

Check out:

Creating Sound using MediaStreamSource in Silverlight 3 Beta

Silverlight 3 – Creating Video from Raw Bits using a MediaStreamSource

My MIX09 Silverlight 3 ShowOff Video – Commodore 64 Emulator

All awesome stuff. Way to go, Pete!

But what about custom codec development? If you’re a codec developer, I invite you to take a look at MediaStreamSource and consider writing a C# decoder for Silverlight. There are plenty of open-source codecs and formats out there that would make for fantastic Silverlight demos. Just to list a few:

Containers

  • Matroska
  • Ogg
  • Ogg Media

Video

  • Dirac
  • Theora
  • HuffYUV
  • Lagarith

Audio

  • Vorbis
  • FLAC
  • Monkey’s Audio
  • Shorten

These are just some of the codecs and formats out there with easily accessible source code that could be ported to C# or another .NET language. But of course, why stop there? There are also formats such as MPEG-2 TS, FLV, AVI, and codecs such as H.263, MPEG-4 ASP, MJPEG, MPEG Audio Layer II, and others that would be incredibly useful to have supported in Silverlight too.

Will you be the first to develop those?

Posted in Silverlight | Tagged , , | 13 Comments

In Case You Missed MIX…

If you were unable to attend MIX 2009, you’ll be pleased to know that the videos of sessions are already appearing online: https://content.visitmix.com/2009/sessions/.

Here are the links to the videos of sessions I had previously mentioned:

What’s New in Microsoft Silverlight 3
Speaker
:  Joe Stegman (Microsoft)

Microsoft Silverlight Media End-to-End
Speaker
:  Alex Zambelli (Microsoft)

Creating Media Content for Microsoft Silverlight Using Microsoft Expression Encoder
Speaker
:  James Clarke (Microsoft)

Delivering Media with Microsoft Internet Information Services 7 (IIS) Media Services and Microsoft Silverlight
Speakers
:  John Bocharov (Microsoft), John Bishop (Inlet)

Posted in Expression Encoder, Internet Information Services, Silverlight, Smooth Streaming | Tagged , , | 12 Comments

Silverlight 3, IIS Media Services 3.0, Olympics 2010 – Wow, It Truly Is March Madness!

Though blogging in Las Vegas might sound like a party foul, this has been an amazing week for Silverlight media – so much that I feel a sudden urge to report on it right now, right here.

Silverlight 3 Beta

A mere 5 months after releasing Silverlight 2 RTW, we have now made Silverlight 3 Beta available to the public. Check out http://silverlight.net/getstarted/silverlight3/default.aspx for the full list of new features and download links. As usual, Scott Guthrie offers some great insight on Silverlight 3 in his MIX Keynote and Channel 9 video.

The most interesting new media features in Silverlight 3 are:

  • Native H.264 video, AAC audio, and MP4 file playback support
    • Take your MP4-contained H.264/AAC encoded files, put them on a Web server and play them directly in Siverlight using progressive download!
  • Extensible media format support
    • Support for raw A/V bitstream playback allows codec and media developers to write custom decoders and format parsers using C#, VB or any other .NET language. Will you be the first to write an Ogg Vorbis or FLAC decoder for Silverlight?
  • GPU accelerated video scaling
    • Stretching the video to full screen can now be offloaded entirely to the video card, freeing up the CPU and enabling smooth video playback.
  • Advanced media logging
    • Log playback usage to Windows Media Services and IIS7 Media Services, like with the good old Windows Media Player.
  • Custom effects / Pixel shaders
    • Apply post-processing effects to your video by writing custom effects using the same HLSL pixel shader code that works in Direct3D and WPF today.
  • Perspective 3D transforms
    • Spin and rotate your video around all 3 axis – X, Y and Z. Video collage? How about a video cube?

I’ll be blogging in the near future in more depth about the details of our H.264/AAC/MP4 support in particular.

 

IIS Media Services 3.0 / Live Smooth Streaming

Just a short month after announcing the availability of Smooth Streaming for On-Demand Video beta, the IIS Media team announced the availability of IIS Media Services 3.0 beta – featuring Live Smooth Streaming. That’s right, with IIS7 you will soon be able to deliver Smooth Streaming video for both on-demand and live!

Inlet Technologies has simultaneously announced they will be the first to add Smooth Streaming support to their line of live and VoD encoding products. Besides Inlet, we are currently working with a number of encoding ISVs on enabling them to add Smooth Streaming support to their products.

Akamai Technologies announced the wide commercial availability of their AdaptiveEdge Streaming service based on IIS Smooth Streaming. Besides Akamai, we are currently working with all the major CDNs on enabling Smooth Streaming support in their networks. As with the encoding ISVs, our goal is to build a rich Smooth Streaming ecosystem to be available to customers by the time Silverlight 3 ships.

Besides the newly redesigned home page, the IIS Media team has also put up a great working example of how Smooth Streaming works.

 

NBC Winter Olympics 2010 – Vancouver

During the MIX 2009 Keynote, Perkins Miller, Senior VP of Digital Media for NBC Universal, announced that NBC Universal has chosen to deliver the NBC Winter Olympics 2010 using Microsoft Silverlight. Watch the MIX Keynote to see his announcement.

Here are the details I can share at this point:

  • All video content, both live and on-demand, will be delivered using Smooth Streaming
  • The live video player will feature DVR-like capabilities (pause, rewind, seek and slo-mo of live video)
  • Video quality will go up to true 720p HD

March Madness

CBS Sports has launched a Silverlight-based March Madness video player that lets you watch all NCAA Basketball Tournament games live. Visit http://mmod.ncaa.com/video to launch the March Madness video player. If you are using Internet Explorer on Windows, the default player will actually be an old-school WMP player, so you’ll need to click on the HQ Player button to launch the new Silverlight player.

The live video for the tournament is being streamed using Windows Media Services. Obviously, we couldn’t use Smooth Streaming because the server technology is still in beta and the encoders aren’t yet commercially available. But CBS did the next best thing! All live streams are available in 4 video quality levels:

Total Bitrate
(kbps)

Video Bitrate
(kbps)

Audio Bitrate
(kbps)

Video Width

Video Height

Pixel Aspect Ratio

1500

1450

48

784

432

1:1

1000

950

48

512

384

4:3

650

615

32

368

272

4:3

350

315

32

240

176

4:3

Video codec used is VC-1 Advanced Profile. Audio codec used is WMA Professional at 44.1 kHz 16-bit stereo.

All March Madness games are being encoded by MLB.com’s encoding facilities using Inlet Spinnaker 7000 encoders. The Spinnakers were configured based on my own recommendations in order to provide maximum quality at all bitrates.

The March Madness Silverlight player uses preroll ad download statistics to estimate available client bandwidth and tries to make an appropriate first choice of bitrate level. Of course none of this would be necessary with Smooth Streaming, but we really tried to make the best of the Windows Media Streaming experience anyway. The player also has built-in heuristics to detect quality-of-service issues, such as frequent rebuffering or low frame rate rendering, at which point it can suggest to the user to choose a lower bitrate. Users can manually switch between available bitrates using the “” and “+” buttons in the button of the player UI.

Posted in H.264, Internet Information Services, Olympics, Silverlight, Smooth Streaming | Tagged , , , , , | 7 Comments

Come Join Us at MIX 2009!

MIX, Microsoft’s annual conference for Web 2.0 designers and developers – is upon  us. This year it will take place March 18-20 at The Venetian Hotel in Las Vegas.

If you’re interested in the world of online video streaming (and I guess you are since you’re already reading this blog) and plan on visiting MIX 2009, I suggest you check out the following few sessions while there:

What’s New in Microsoft Silverlight 3
Speaker
:  Joe Stegman (Microsoft)
Date/Time:  Wed, March 18, 11:30 AM – 12:15 PM
Location:  Lando 4204

Microsoft Silverlight Media End-to-End
Speaker
:  Alex Zambelli (Microsoft)
Date/Time:  Wed, March 18, 2:15 PM – 3:30 PM
Location:  Delfino 4105

Creating Media Content for Microsoft Silverlight Using Microsoft Expression Encoder
Speaker
:  James Clarke (Microsoft)
Date/Time:  Wed, March 18, 4:00 PM – 5:15 PM
Location:  Delfino 4105

Delivering Media with Microsoft Internet Information Services 7 (IIS) Media Services and Microsoft Silverlight
Speakers
:  John Bocharov (Microsoft), John Bishop (Inlet)
Date/Time:  Thu, March 19, 1:00 PM – 2:15 PM
Location:  Delfino 4105

For a complete list of sessions, see https://content.visitmix.com/2009/sessions/.

To register for MIX 2009, visit http://2009.visitmix.com/Registration/.

Hope to see you there!

Posted in Expression Encoder, H.264, Internet Information Services, Silverlight | Tagged , , , | 1 Comment

Smooth Streaming FAQ

The contents of this post have been moved to a new permanent location:

http://alexzambelli.com/blog/smooth-streaming-faq/

Posted in Expression Encoder, H.264, Internet Information Services, Silverlight, Smooth Streaming | Tagged , | 1 Comment

Smooth Streaming Beta Released!

I am pleased to announce the availability of Smooth Streaming beta! The hot new media extension for IIS7 can now be downloaded from http://www.iis.net/extensions/SmoothStreaming, in both x86 and x64 flavors. The Smooth Streaming beta is also available for install through the uniform Microsoft Web Platform Installer.

Smooth Streaming lead Program Manager John Bocharov has a detailed description of the IIS7 Smooth Streaming extension in his blog post. Other recommended reading: IIS.Net’s Getting Started, Exploring Bit Rate Changes, and Managing Your Presentations articles. 

This IIS7 extension is the final missing piece in the Smooth Streaming puzzle that we’ve been talking about since last October. Remember, it’s already possible to create on-demand Smooth Streaming content with Expression Encoder 2 SP1, and we are actively working on expanding this new format support to other 3rd party encoding products in the coming months. EE2 SP1 also features fully functional Silverlight player templates (with source code!) that enable Silverlight developers to easily add Smooth Streaming playback support to their Silverlight 2 apps. The IIS7 Smooth Streaming extension finally lets you also host Smooth Streaming content on your Windows Server 2008 servers!

Important note: IIS7 Smooth Streaming beta is only intended for testing purposes and doesn’t implicitly grant a “Go-Live” deployment license.

Finally: If you’re planning on attending MIX 2009 in Las Vegas this March, be sure to attend all Silverlight and IIS related sessions for other exciting announcements!

Posted in Expression Encoder, Internet Information Services, Silverlight, Smooth Streaming | Tagged , , , | 1 Comment