Extending Smooth Streaming Reach

Smooth Streaming has been a pivotal technology of the Microsoft Media Platform since its introduction in IIS Media Services 2.0 in 2009. And though it’s been commonly associated with Silverlight over the years, those familiar with Smooth Streaming architecture and the Smooth Streaming Media Element probably know that the relationship between Smooth Streaming and Silverlight was never an exclusive one. For starters, the Smooth Streaming Protocol Specification and the Protected Interoperable File Format (PIFF) Specification have been public for years. After all, at its heart Smooth Streaming is not much more than a combination of HTTP requests, XML and fMP4 parsing, download heuristics and video/audio decoding. It’s a fairly open, standards-based technology that has very few dependencies on the client platform.

So it should come as no surprise that as popularity of Smooth Streaming grew we started looking into extending the reach of Smooth Streaming (and PlayReady as its premium content companion) to other client platforms and devices too.

First came Smooth Streaming Client for Windows Phone, essentially a variation of Smooth Streaming Client for Silverlight but adapted for the specific features and constraints of the Windows Phone OS.

Next came Smooth Streaming Client Porting Kit, a device and platform independent implementation of Smooth Streaming client that can be ported by licensees to any device and platform. This commercially licensable package contains C++ source, hardware abstraction layer (HAL) and platform abstraction layer (PAL) interfaces, and DRM interfaces designed to plug into the PlayReady Device Porting Kit. The SSPK is primarily targeted at manufacturers of connected TVs, set-top boxes (STB), Blu-Ray players and various other embedded devices.

Late last year Xbox LIVE launched a whole new series of TV and video apps, such as Hulu Plus, YouTube, Comcast Xfinity, VEVO, Verizon FiOS TV and many others. What you probably didn’t know is that over 75% of the new media apps launched on Xbox LIVE are powered by Smooth Streaming and PlayReady. The catalyst for these new experiences is the Xbox LIVE Application Development Kit (ADK) which significantly accelerates development of rich media applications for Xbox 360. At the heart of the ADK are Smooth Streaming Client and MMP Player Framework, specially developed for the Xbox by the IIS Media Services team and our old partner Vertigo Software.

Finally, last month we announced the availability of Smooth Streaming Client SDK (beta) for Windows 8 Consumer Preview, together with a beta of Player Framework for Windows 8 Metro-style Applications. The new SDK and framework allow developers to build Metro-style, touch-enabled apps for Windows 8 (x86/x64/ARM) with support for Smooth Streaming and PlayReady DRM, while utilizing any of the supported development languages and constructs such as HTML5, Javascript, XAML, C# and C++. Make sure to check out this post for a step-by-step guide to building your first Metro media app.

We intend to continue broadening Microsoft Media Platform’s reach in the coming months to other popular platforms such as iOS, Flash and Android too. Over the next several weeks you can expect to see more detailed information published regarding Smooth Streaming Client Porting Kit licensing, MPEG-DASH support and availability of Smooth Streaming Client SDK for iOS.

And of course, stay tuned for exciting new announcements at NAB Show 2012. ;)

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

Silverlight and Its Role In the Future of Microsoft Media

“The rumors of my death have been greatly exaggerated.” – Mark Twain*

It’s been two months since version 5 of Microsoft Silverlight was released to the web. If you haven’t installed it already, you can get the latest version here. For the first time Silverlight is also available as a 64-bit plug-in for 64-bit Internet Explorer, so if you’re like me and you’ve been dying to switch to 64-bit Internet browsing – now is a good time to do it because both Silverlight and Adobe Flash finally include 64-bit plug-ins.

The list of Silverlight 5 features is long, and both the official features document and Pete Brown’s blog post do a better job of summarizing them than I could. If you’re a developer, you might also want to check out the list of breaking changes.

On the media front, the list of new features since SL4 looks like this:

  • GPU-accelerated decoding of H.264 video (both Windows and MacOS)
  • Low-latency sound effects using XNA APIs
  • Variable speed playback and trick-play
  • Remote control and media keys support
  • Power plan awareness for media apps

Those are the technical details. Now let’s address the elephant in the room:

Over the past year many web articles and blog posts were published which speculated on Silverlight’s status and future in light of Microsoft’s growing adoption of HTML5. “Is Silverlight dead? Will there be a Silverlight 6? Will HTML5 replace Silverlight and Flash? Should developers continue to invest in Silverlight?”

Let us consider this first: What does it mean when someone says a development platform is dead? Does it suddenly cease to exist, disappear from the Internet and take all its apps with it? Is a development platform considered alive only if the runtime version number is bumped +1 every 9-12 months? I don’t think it really works that way. Regardless of whether there is a Silverlight 6 after Silverlight 5, Silverlight will continue to be a living, breathing app development platform as long as developers can write Silverlight apps and users can run them.

Truthfully, I don’t know whether there will be a Silverlight 6 or not (much like I don’t know whether there will be a Windows 9 or an Office 16), but I do know this: Microsoft is commited to supporting Silverlight 5 until October 12, 2021 for all currently supported platforms (Windows and MacOS) and all supported browsers (IE, Firefox, Chrome, Safari). That’s 10 years of product support. This means that anyone writing a Silverlight app today can expect: a) the Silverlight browser plugin to remain available and distributable for the next 10 years; and b) full support for Silverlight developers and users according to standard Microsoft support guidelines. If you’re reading this blog on a Windows XP computer, you know that 10 years is a long time in software product support. ;)

Ultimately, a developer’s decision to use Silverlight should be based not on speculations and hype, but on answers to the following questions:

  1. Does Silverlight meet my project requirements?
  2. Is there another browser app development platform that can reach > 75% of Internet-connected devices while offering the same features and rich development environment?

Which brings us to…

“But what about HTML5?”

Yes, there are features of HTML5 that replace features of Silverlight, but if you truly compare them you’ll find that HTML5 is really more on par with Silverlight 1 than Silverlight 5. With regards to media, specifically, Silverlight 5 is and remains the better media app development platform for browsers. That may not be true for other scenarios, but this is a media blog so I think it’s fair that I focus on media here. Yes, you may be able to build a LOB app in HTML5 with the same functionality as with Silverlight, but streaming media is a completely different story.

Let us consider two media scenarios:

Scenario 1

Simple playback of an unencrypted H.264/AAC-encoded MP4 file from an HTTP server via progressive download.

Both HTML5 and Silverlight can meet the requirements of that scenario very easily. However, their effective reach is drastically different. Silverlight, according to RIAStats.com, is installed on 78% of globally connected devices. The percentage of connected HTML5-compatible browsers capable of H.264/AAC/MP4 playback, on the other hand, is less than 20% according to StatCounter.com (where MP4-capable = IE9 + Safari). So while both HTML5 and Silverlight have the needed features to implement the same scenario here, a Silverlight app is capable of delivering MP4 media to about 4 times as many connected devices as an HTML5 app. You could, of course, increase your HTML5 video reach by providing MP4, Ogg and WebM versions of the same video asset – but that would increase your production and storage costs. With cumulative HTML5 Video browser adoption still below 67%, the multi-format option doesn’t seem worth the increased cost. That will, hopefully, change over time but as of right now both Silverlight and Flash provide significantly better video delivery reach than HTML5 even for simple media playback scenarios.

Scenario 2

Anything involving any of the following features:

  • Live streaming
  • HTTP-based adaptive streaming
  • IP Multicast streaming
  • Traditional UDP-based streaming
  • Digital Rights Management (DRM), aka Content Protection
  • Full-screen video playback (without hacks)
  • Webcam and microphone capture
  • Codec and format extensibility

Yes, HTML5 is a great evolution in HTML and it does bring some much-needed RIA capabilities to standard HTML, but it unfortunately only addresses a small subset of modern media scenarios. You may be able to build a YouTube-style site in HTML5, but you can’t build a Netflix app or an Xfinity app in HTML5 without being able to dynamically stream DRM-protected video over HTTP. You can’t live stream the Super Bowl in HTML5 either. That’s a problem.

(Sidenote: In 2009 Apple added HTTP-based adaptive streaming functionality, called HTTP Live Streaming, to its Safari implementation of HTML5 Video tag. This enabled content producers to dynamically stream video over HTTP to millions of iPhone and iPad devices via simple HTML5 pages rather than apps. But despite its popularity, HLS remains a proprietary Apple extension of HTML5 Video, not standardized by W3C or any other standards organization, which makes it unlikely to become the universal solution to HTML5’s video problem. If anything, MPEG-DASH is the more likely candidate for standardization in browsers. But I’ll save that for another story.)

Additional commentaries on HTML5 video woes:

In conclusion…

Let me be 100% clear: I am not anti-HTML5. I believe that HTML5 is a step in the right direction and a welcome enhancement of the HTML specification. I also believe that some video/audio support is better than none. But unfortunately the current HTML5 specification fails to deliver advanced video and audio features that are needed for building modern streaming media apps. Therefore, when it comes to building advanced media apps in browsers, Silverlight and Flash are still the best options available today and will remain so for the foreseeable future. HTML5 Video will be a valid choice for some projects, but not others.

So is there a place for Silverlight in the future of the Microsoft Media Platform? Absolutely. Even with Windows 8 shifting the emphasis to standalone media apps, the browser will continue to be the primary way of delivering Microsoft Media Platform video to MacOS and legacy Windows operating systems in the future. Silverlight remains the only app development platform capable of consuming Smooth Streaming video on > 75% of Internet-connected devices and reaching all versions of Windows going all the way back to XP. Silverlight also remains the primary app development platform for Windows Phone OS (which is expected to gain larger market share in 2012 due to Nokia adoption).

* Actually, what he really said was “The report of my death was an exaggeration”, but I always preferred the style of the misquoted version.
Posted in HTML5, Silverlight, Smooth Streaming | Tagged , , , , , , | 6 Comments

H2 2011 Product Update Roundup

It’s been a while since I updated the blog, so I will take this opportunity to bring everyone up to speed on the more recent Microsoft Media Platform product updates:

November 9, 2011

Player Framework version 1.0 for HTML5 is released to Codeplex. Download it here.

This new player framework implements basic video playback functionality using the HTML5 Video tag, and features JavaScript API and control UI consistent with the Silverlight version of the Player Framework. For a complete list of features visit http://playerframework.codeplex.com/wikipage?title=Features.

November 8, 2011

IIS Media Services version 4.1 is released to Microsoft Download Center. Install it via the Web Platform Installer, or download it separately for x86 and x64 platforms.

This release adds support for REST services APIs for management of publishing points as well as performance improvements for both on demand and live scenarios. The recently released Expression Encoder 4 SP2 makes use of the new APIs so that one can easily manage publishing points directly from within Expression Encoder. For more information on the new features visit http://blogs.iis.net/akucer/archive/2011/11/09/iis-media-services-4-1-released.aspx.

November 2, 2011

Player Framework version 2.6 for Silverlight and Windows Phone is released to Codeplex. Download it here.

This release includes significant performance improvements, updated support for WP 7.5 “Mango”, the latest version of the Smooth Streaming Media Element (SSME), and several new features and bug fixes.

November 2, 2011

Expression Encoder 4 Service Pack 2 (SP2) is released to Microsoft Download Center. Download it here.

New features include support for Intel QSV GPU-accelerated encoding, 1 and 2-pass VBR H.264 encoding, more AAC audio options, SRS audio encoding, built-in management of IIS publishing points, live video cropping, live multi-bitrate Windows Media encoding, etc. SP2 also removes the screen capture limit in the free version of the Encoder. You can find a detailed list of features in this blog post.

The Expression Encoder team has also updated their GPU encoding recommendations. Note that H.264 codec support is still only available in the commercial Pro edition of Expression Encoder.

October 26, 2011

Content Manager version 1.1 is released to Microsoft Download Center. Download it here.

This release fixes compatibility issues with Windows Vista and Windows 7, and provides additional code samples.

The open-source Microsoft Media Platform Content Manager pulls together an end-to-end video workflow that allows you to create live streaming events, transcode on-demand content, manage and publish video, edit video, and insert mid-roll advertisements. Watch the MIX11 session on Content Manager for an overview.

October 17, 2011

Enhanced Movies 1.0 Beta is the latest addition to the Microsoft Media Platform family of frameworks. Download it here.

Microsoft Media Platform Enhanced Movies provides a framework for delivery of rich interactive movie experiences that go far beyond any streaming experience today. The “enhanced movies” feature set enables studios and distribution houses to package HD movies with special features, multiple languages, interactive games, social media, advertising and more — as complete, downloadable, rights-protected applications.

The beta release provides a plug-in for the Player Framework which enables offline playback of video by implementing a media downloader and Smooth Streaming cache.

October 6, 2011

Video Editor (f.k.a. Silverlight Rough Cut Editor) version 2.0 is released to MSDN. Download it here.

The new version requires Silverlight 5.

New to MMP Video Editor? Take it for a test drive using our demo deployment hosted on Windows Azure:  http://videoeditor.cloudapp.net/

August 31, 2011

Silverlight 5 Release Candidate (RC) is released to Microsoft Download Center. Download it here.

New media features include GPU-accelerated H.264 video decoding, low-latency sound effects, variable speed playback (trick play) support, and remote control and media keys support. For a complete list of new Silverlight 5 RC features check out http://10rem.net/blog/2011/09/04/the-big-list-of-whats-new-or-improved-in-silverlight-5.

Silverlight 5 runtime is now also available as a native 64-bit plugin for 64-bit browsers on Windows and Mac operating systems.

Curious about SL5 RTW release dates? Stay tuned because it is coming very soon…

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

SMF 2.5 with 3D video support coming soon

Bob Cowherd from Vertigo Software has put together a nice blog post about one of the cool new features going into SMF 2.5:  stereoscopic 3D video support. We will ship SMF with a sample red-cyan anaglyph plugin, while NVIDIA will provide a plugin for their 3D Vision active shutter solution.


We will be announcing all the details at MIX and NAB next month, so stay tuned for more exciting news, including some framework name changes too. ;)

Posted in 3D, Silverlight | Tagged , , | Comments Off

Transcoding 101 Roundtable, MIX 2011 and NAB 2011

A bit of shameless promotion:

On Thursday, March 24th, I’ll be participating in a roundtable web event titled “Transcoding Methodology 101″ hosted by Streaming Media. Joining me will be Kevin Louden (Telestream), Charlie Good (Wowza) and Jon Robbins (Rhozet). The live event is scheduled to start at 11 am Pacific Time.

You can register for the web event here:


Microsoft’s annual web developer/designer conference MIX is taking place the same week as the annual NAB show this year – also in Las Vegas. MIX 2011 is taking place April 12-14 at the Mandalay Bay hotel, while NAB 2011 is happening April 11-14 at the Las Vegas Convention Center. Microsoft’s media platform will be represented at both events, and I will be present at both too.

Here is the current list of MIX sessions:

I will be presenting a session titled “Introducing Microsoft Media Platform” in which I will give an overview of Microsoft’s media technologies and frameworks and recent releases. Other noteworthy media related sessions will be:

“Introducing MMP Content Manager” by Steven R. Woodward (Microsoft)
“MMP Video Editor” by Jason Suess (Microsoft)
“MMP Player Framework: Past, Present, Future” by Tim Greenfield (Vertigo Software)
“Introducing MMP Audience Insight” by Eric Schmidt (Microsoft)
“Behind the Scenes of Channel 9 Live at MIX” by Nic Fillingham (Microsoft)
“5 Things You Need To Know To Start Using <video> and <audio> Today” by Nigel Parker (Microsoft)

It’s not too late to register for MIX 2011! Visit http://live.visitmix.com/Registration and register today!

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

IIS Media How-To Resources

If you are new to IIS Media Services and Smooth Streaming, IIS.net/media is the website for you. However, finding relevant technology and deployment information on IIS.net can be somewhat cumbersome since it’s a wiki-styled site and a lot of the pertinent information scattered around employee blogs. It’s an issue we’re aware of and actively working on improving.

So in the meantime, I highly recommend using the IIS.net Media Content Map to assist you in finding useful IISMS deployment how-to docs:


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

Announcing Expression Encoder 4 SP1

Just received this news…

Service Pack 1 for Expression Encoder 4 will be released on January 31, 2011. The encoder update will be available for download at:


This is a significant update to EE4, boasting an impressive list of new features:

Feature Expression Encoder 4 Expression Encoder 4 Pro
GPU acceleration  


Live template support

(no Live Smooth Streaming)


Live screen capture

(10 minute segments only)


Caption updates  


Improved deinterlacing options



DRM content key  


HE-AAC codec  


Live push/pull



Windows Phone 7 presets



The most significant one, as I mentioned in my previous post, is GPU-accelerated H.264 encoding. It is powered by NVIDIA CUDA technology via the MainConcept H.264 CUDA SDK. The Expression Encoder team has put together an excellent white paper describing the new feature and best practices. A separate report will be published later this week with performance data and comparisons of recommended PC configurations.

Update (1/27/2011): An interesting note about the H.264 GPU acceleration feature:  When using the EE4 GUI application, GPU-accelerated H.264 encoding will be enabled by default (assuming your hardware is CUDA 1.1 compatible) unless you decide to disable it via the Tools|Options configuration dialog. However, when using the EE4 SDK, GPU acceleration will be disabled by default, meaning that any apps that you built on the EE4 SDK will need to be recompiled with the GPU acceleration option explicitly enabled if you want to take advantage of the new feature. Otherwise they will just default to the old CPU-based H.264 encoding method.

Posted in Expression Encoder, H.264, Smooth Streaming | Tagged , , | 6 Comments

IIS Media 4.0, SMF 2.3, RCE 1.0 SP1 and More

It’s been too long since my last post, so I thought I’d get warmed up and back into blogging form by posting something about recent releases on the Microsoft media platform.

After PDC 2010 in November which focused on new web technologies (e.g. IE9, HTML5, WP7), we hosted a special event in December called Silverlight Firestarter which focused exclusively on Silverlight. Scott Guthrie announced some of the new features going into Silverlight 5. Among the many features, the ones most interesting to media developers were:

  • Support for GPU-accelerated H.264 decoding, intended to make H.264 video perform better on low powered computers and increase battery life on laptops and netbooks.
  • Variable speed playback, also known as “trick play”, which will allow you to fast forward and rewind videos as well as play them back at up to 2x speed while maintaining the audio pitch. This is a feature particularly useful for e-learning, as well as suffering through boring corporate training videos. :) Note that some aspects of trick play, such as rew/ffwd, have already been implemented in the Silverlight Media Framework for Smooth Streaming videos.
  • OS power scheme awareness. This will allow you to watch long videos in Silverlight without worrying about your computer going to sleep during the season finale of “Dexter”.
  • Remote control support for media scenarios. I presume this will include support for Media Center remote controls.
  • Advanced DRM management. I don’t know much about this, but I’m guessing it has to do with supporting seamless key rotations.

Other noteworthy SL5 features include 64-bit support and improved GPU-accelerated graphics APIs.

Around the same time we shipped Windows Phone 7 which uses Silverlight as one of its two app development platforms (the other one being XNA). WP7 support ended up being one of the main features of the Smooth Streaming Client 1.5 (aka SSME) too. Vishal Sood wrote a great post about encoding video for Windows Phone 7. The biggest difference between encoding for WP7 versus the desktop is WP7 video driver’s current lack of support for mid-stream resolution changes. What this effectively means is that all streams in a Smooth Streaming asset delivered to WP7 must be encoded at the same resolution. We hope to fix this in future WP7 updates, but for now we have to live with it.

2010 also saw the release of IIS Media Services 4.0. The most exciting new feature of this release is support for dynamic repackaging and delivery of Smooth Streaming assets (VOD and live) to Apple iOS devices such as the iPhone and iPad. Apple iOS devices support HTTP Live Streaming, an HTTP adaptive streaming technology developed by Apple and based on the MPEG-2 Transport Stream file format. Because both Microsoft and Apple support H.264/AAC codecs, it is possible to repackage (remux) Smooth Streaming H.264/AAC assets into Apple HTTP Live assets by simply changing the container formats, without a need for re-encoding the video and audio streams. The IIS Media Services 4.0 release also supports live DVR features, AES encryption, archiving and B-frame encoding (H.264 Main/High Profile) for iPhone4 and iPad.

Apple has documented some of their own encoding best practices for iOS devices, though frankly, they seem a little on the conservative side. I’ve seen many online reports of iPhone4/iPad being able to handle H.264 High Profile at 1280×720, so it seems strange that Apple would limit their recommendations to just Main Profile at 640×360 (especially considering iPad’s display resolution is 1024×768). If you have experience with streaming to iOS devices and would like to share your encoding settings and feedback, please leave a comment. Even better – if you work for Apple and your focus is HTTP Live Streaming, send me an e-mail.

IIS Media Services 4.0 also includes support for low-latency streaming which can bring down the typical Live Smooth Streaming end-to-end latency to under 2 seconds. This requires the latest Smooth Streaming Client version and a low-latency compatible realtime video encoder, such as the ones made by Allegro DVTDigital Rapids, Elemental, Envivio and Inlet. (Did I forget your company? Let me know.)

Though not officially a part of the IIS Media Services package, the IIS Media team also recently released IIS Transform Manager 1.0 alpha, another IIS extension which allows you to automate your transcoding/transmuxing workflow. The most recent public release is just an alpha, but shows a lot of promise. It features integration with Microsoft Expression Encoder (for transcoding to WMV, MP4 and Smooth) and offline transmuxing (repackaging) of Smooth VOD assets into Apple HTTP adaptive assets. The final release, coming soon, will also feature support for distributed transcoding, DRM packaging tasks and – my favorite – MP4-to-Smooth tasks. The last one is particularly exciting because it will allow you to encode to Smooth Streaming using any H.264 encoder regardless of its lack of Smooth Streaming file support. For example, you’ll be able to encode videos with the awesome open-source x264 encoder and automatically convert its MP4 output files into Smooth Streaming assets as a background task.

Completing the slew of recent media releases are:

Last, but certainly not the least, stay tuned for the upcoming Microsoft Expression Encoder 4 service pack which will enable GPU-accelerated H.264 encoding using NVIDIA CUDA technology. Expression Encoder Pro’s H.264 compression engine is powered by MainConcept, and the new acceleration feature will be powered by MainConcept’s CUDA H.264 Encoder SDK. SP1 is scheduled for release in Q1 2011.

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

NASCAR Racing in 3D on Your PC!

On July 3rd at 7:30 pm ET, you will be able to experience for the first time a live streaming event in 3D using just Silverlight and NVIDIA 3D Vision! We have teamed up with Turner Sports, NVIDIA and iStreamPlanet to bring you the NASCAR Spring Cup Series Coke Zero 400 race from Daytona, Florida live to your computer – in 3D! The TNT RaceBuddy 3D website is available now at http://www.nascar.com/racebuddy3d.

After we showed at NAB back in April that Silverlight and Smooth Streaming could be used to deliver 3D video to anaglyph glasses and external 3D-ready TVs, I also started talking to NVIDIA about the prospect of integrating Silverlight with their 3D Vision technology which utilizes active shutter glasses. As it turned out, NVIDIA was already 2 steps ahead of me and had already made significant progress getting 3D Vision to work with Silverlight, so when the opportunity came along to do a 3D streaming project with Turner Sports we all immediately saw it as a chance to do something innovative and cool. With our trusted partner iStreamPlanet on-board to do the player development and video delivery, the stage was set for building a cutting-edge 3D video experience.

NVIDIA first integrated support for 3D Vision into the latest Silverlight Media Framework which iStreamPlanet then used as the foundation for a rich 3D video player complete with an interactive leaderboard, pre-roll ads and companion ads. But iStreamPlanet didn’t just stop there – they also built stereoscopic play controls that work in 3D mode and seamlessly blend with the 3D video, which is a non-trivial task when dealing with stereoscopic presentations.

While we won’t be able to claim the title of first 3D event streamed over the Internet, there are a few “firsts” which still make this an important milestone event in video streaming:

  • This will be the first time you’ll be able to watch true 3D video inside a browser with just a common browser plugin (Silverlight) and no need for a standalone 3D player. (By “true 3D” I mean “discrete stereo images delivered to each eye at 60 Hz”. In other words, no anaglyph or interlaced passive.)
  • If you’re familiar with 3D Vision, you’ll know that so far it’s only been possible to use it in full screen mode. Well, this will be the first time you’ll be able to watch 3D video using NVIDIA 3D Vision in windowed mode too!
  • This will be the first publicly broadcast live 3D event using HTTP-based adaptive streaming technology, namely Smooth Streaming

Turner Broadcasting will produce the 3D video in Daytona and beam it to iStreamPlanet in Las Vegas via satellite as 1080i side-by-side formatted “frame compatible” video. Using the side-by-side format will allow iStreamPlanet to leverage their existing live video workflow to deliver 3D video to Silverlight clients without requiring any changes to the workflow or the encoders. The frame-compatible 1080i video will feed into the Inlet Spinnaker HD encoders which will transcode it into the Smooth Streaming format at 6 bitrates/resolutions, with VC-1 and WMA Pro as the video and audio codecs, respectively. The transcoded steresocopic video will preserve the side-by-side formatting of the source.

Unlike with traditional Smooth Streaming broadcasts, the minimum bitrate/resolution for this 3D event will be slightly raised to provide sufficient quality even at half-resolution per eye. Therefore, the minimum resolution/bitrate will be 480×224 @ 600 kbps, while the top bitrate/resolution will remain the typical 1280×720 @ 3.45 Mbps. This means that at its highest quality you’ll be able to see a 640×720 image in each eye. While I’m well aware that’s not full 720p quality per eye, do keep in mind that we’re only just getting started with 3D Internet streaming – so this is only the beggining and it can only get better from here! Rome wasn’t built in a day. ;)

For a minimum 3D experience you will need at least 700 kbps of bandwidth (600 kbps video + 48 kbps audio + overhead) but if that’s all the bandwidth you’ve got I recommend that you watch the video in windowed mode. If you plan on enjoying the full screen 3D experience, I do recommend at least 3.5 Mbps of bandwidth or otherwise you might find yourself somewhat disappointed.

The TNT RaceBuddy 3D site is now available if you’d like to test drive the 3D player and ensure your computer meets the minimum system requirements for Saturday’s race. If you have an NVIDIA 3D Vision-enabled PC running Windows 7 or Vista, you will need the latest GeForce (or Quadro) and 3D Vision drivers installed in order to enjoy the RaceBuddy 3D experience. Needless to say, you will also need the latest version of Silverlight 4.

If you don’t have NVIDIA 3D Vision but have a nice 3D-ready TV hooked up to your PC or Mac, you’ll be happy to know that you’ll still be able to enjoy RaceBuddy 3D. Just set your desktop size to 1280×720, then fire up the RaceBuddy 3D player and tell it you have a 3DTV. When playback starts, send the player to full screen and it will show you the raw side-by-side video in 720p. All you have to do then is configure your 3DTV for a side-by-side source (left field first) and you’ll be good to go!

Note: Though NVIDIA and iStreamPlanet have successfully completed this first build of a 3D Vision-enabled Silverlight player, we are still working on figuring out how to best make that code available to all Silverlight developers, so stay tuned to my blog for more details on that in the future.

Posted in 3D, Silverlight, Smooth Streaming | Tagged , , , , | 4 Comments

Now available: Expression Encoder 4, IIS Media Services 4.0 Beta, SSME 1.0, SMF 2.0 RC1, Olympics case studies

While most of the world is on a collective vacation watching the World Cup, media teams at Microsoft have been busy at work. And watching the World Cup. :)

Released this month:

Before I dive into more details about those products, I’d also like to highlight a few case studies we recently published, all of them focused on the Silverlight-based 2010 Winter Olympics experiences built for NBC, CTV, NRK and France TV:

Some of the statistics are quite impressive, such as the number of peak concurrent users (181 thousand Americans, 134 thousand Canadians), total amount of video consumed (7.2 million hours in Canada), or the average minutes viewed over the 2 weeks of Olympics (nearly 2 hours per unique user in Canada). If you’re interested in the business side of video streaming, the value proposition of Silverlight and Smooth Streaming, and monetization data – I recommend you check out these case studies.

Expression Encoder 4

First change you might notice is that the pay version of the product is now called Expression Encoder 4 Pro, to differentiate it from the free version available for download. The good news is that the basic free version now includes Smooth Streaming (VOD) encoding, but you’ll still need to shell out $49.95 to get:

  • H.264/AAC encoding (now courtesy of MainConcept H.264 SDK)
  • Additional decoders for input types (MPEG2, MPEG/TS Splitter, Dolby Digital AC3, MP4 and H.264/AAC)
  • Live IIS Smooth Streaming support
  • Unlimited screen capture
  • Digital Rights Management (PlayReady) integration

In case you missed it hidden there in the middle of the list, let me repeat: Expression Encoder 4 Pro supports LIVE Smooth Streaming! That was by far the feature most frequently requested by users, and the Encoder team listened and delivered. Live encoding in EE4 works and scales remarkably well, but I wouldn’t recommend trying to run it on any computer with less than 8 CPU cores. Video encoding is a CPU intensive process and when you have to encode multiple bitrates in realtime there’s no such thing as too much CPU. With 2 cores you can probably manage to churn out 1 bitrate up to SD resolution; with 4 cores about 2 bitrates up to SD; with 8 cores about 3-4 bitrates up to SD or 720p; with 16 cores about 7-8 bitrates up to 720p, etc.

The question I expect I’ll get asked most frequently about EE4 is: “OK, now that EE4 can encode Live Smooth Streaming for $49.95 on any PC hardware, why would I pay thousands of dollars for professional products like Digital Rapids Stream, Inlet Spinnaker or Envivio 4Caster?” My answer would go something like this: EE4, while fully capable of encoding Live Smooth Streaming, is an entry-level encoding product. It’s to professional encoding products what Windows Movie Maker is to Adobe Premiere Pro. Is it good enough for encoding a high school basketball game once a week? Absolutely. But would I use Expression Encoder to deliver 2 weeks of Olympics live video to hundreds of thousands of viewers around the world? Probably not. To use yet another analogy: Anybody can buy a stock PC, install Windows Server 2008 on it and call it a server. But does that make industry standard HP ProLiant servers obsolete? Hardly. Companies like Inlet, DR and Envivio have invested years and millions in building reliable professional encoding products which are designed and tested to run 24/7 in broadcast-type environments. So when you pay top dollar for their products, you’re not so much paying for raw codecs as you’re paying for guaranteed uptime and professional support. They cost a lot of money because they do what they do very well.

IIS Media Services 4.0 Beta

Though only a beta, this new release of IIS MS 4.0 delivers one particularly awesome feature: it can deliver Smooth Streaming H.264/AAC content to Apple “iDevices” such as the iPhone and iPad. How does it do that? Both formats support H.264 video and AAC audio; Smooth Streaming is based on MP4 (ISO Base Media) file format, while Apple Live HTTP Streaming is based on MPEG-2 TS file format. Smooth Streaming tends to use short GOP chunks (2 seconds), while Apple HTTP streaming uses long GOP (10 second) chunks. Therefore, converting between the 2 formats merely requires transmuxing A/V streams from one format to another, and this is exactly what IISMS 4.0 does: it dynamically transmuxes Smooth Streaming format into Apple’s Live HTTP Streaming format. No re-encoding.

Associated with this release are also 2 other IIS media releases:

  • Smooth Streaming Format SDK 1.0 Beta 2 – provides documentation, tools, and samples you can use to multiplex video and audio bitstreams into on-demand and live Smooth Streaming output. In addition, the SDK supports the encryption of content using Microsoft PlayReady DRM. Note that this SDK doesn’t include video/audio codecs – it expects already compressed A/V samples.
  • Transform Manager 1.0 Alpha – provides simple integrated video encoding and batch conversion of video files to the IIS Smooth Streaming format and the MPEG-2 TS streaming format supported by Apple devices.

For more information check out the following blog posts:

Smooth Streaming Client 1.0 and Silverlight Media Framework 2.0 RC1

SMF (popularly called “Smurf”) 2.0 introduces a whole new, more modular architecture with an extensive plug-in API for 3rd-party developers and partners. It also enables developers to selectively exclude libraries that aren’t needed in their projects in order to avoid unnecessary file size increases. The v2 framework will include plug-ins for Timed Text (DFXP), URL frame linking, a metadata framework, support for the Microsoft Silverlight Analytics Framework, support for multiple audio tracks, improved bitrate monitoring, support for Silverlight 4 global styling, a JavaScript API, a logging plug-in, and a host of other new features. It also takes advantage of the new Managed Extensibility Framework (MEF) in Silverlight 4.

The Smooth Streaming component of SMF is known as the Smooth Streaming Media Element (pronounced “Smee”, like that pirate from Peter Pan). SSME previously shipped as beta under the name “Smooth Streaming Player Development Kit” but has since been renamed to just Smooth Streaming Client. The 1.0 release (compatible with SMF 2.0) comes with rich online documentation and code samples.

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