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.

About Alex Zambelli

Alex is a Principal Product Manager at iStreamPlanet Co. in Redmond, Washington. Prior to his current job he was a Technical Evangelist for Microsoft Media Platform at Microsoft Corporation. He specializes in video streaming, adaptive HTTP streaming, VC-1 and H.264 video, and video processing best practices.
This entry was posted in HTML5, Silverlight, Smooth Streaming and tagged , , , , , , . Bookmark the permalink.

6 Responses to Silverlight and Its Role In the Future of Microsoft Media

  1. Robert Phillips says:

    I’ve been trying to find a solution to a problem with captions. We are using the Expression Encoder 4 SDK to create our encoding app to support live streaming and to create archives of encoded data. We have a LOT of textual data that needs to go along with the AV data (detailed engineering values to show with video of tests). We’re writing each segment of data as a JSON string that is 64-bit encoded. We can ship those off as captions during live streaming. But when we play back previously encoded data, all of the caption data is embedded in the Client Manifest. It’s enough to produce as much as five minutes delay loading the page to load the client manifest. Is there a way to encode that doesn’t put the textual data into the client manifest, but embeds it in the video or some such so that it is loaded incrementally rather than upfront? Hopefully a solution that works for live encoding as well…

  2. Andrew says:

    Hi Alex,

    I apologize for the off-topic, this question really belongs to your older post but comments are closed there (http://alexzambelli.com/blog/2009/02/04/the-birth-of-smooth-streaming/)

    I need to be able to efficiently transfer (both upload and download) gigabytes of binary, non-media data between Silverlight client and (IIS) server. What would be my best option? The question seems trivial, but you’d be surprised how confusing this issue is if you try to find answers on the web.

    The best answer I found so far is WCF streaming provider (http://blogs.msdn.com/b/astoriateam/archive/2010/08/04/data-services-streaming-provider-series-implementing-a-streaming-provider-part-1.aspx), but what bothers me is the need to create dummy data services and entities, I feel like there should be a more straightforward way of doing that.

    Regards,
    Andrew

    • Hi Andrew,

      Besides HTTP, I don’t know what other methods there might be available. Silverlight 4 did introduce support for UDP sockets, so there might be some UDP-based solutions out there. Most of the ultrafast data transfer services out there, like Aspera or Signiant, run over UDP (with TCP as the control protocol).

  3. Thanks for this post. Most of what you explain does not come in as a big surprise to me, especially as someone developing media applications using Microsoft technologies. However, I think the way Microsoft has explained about Windows 8 and “Metro”, seemed to disregard the world of media, especially in the light of IIS Media Services and Smooth Streaming. Silverlight is the only “native” client that can play back Smooth Streaming. Granted server side transmuxing supports Apple HLS.

    Video is consumed on a variety of devices. Mobile video is gaining popularity and per Cisco, mobile video traffic exceeded 50% of total mobile traffic in 2011. It is well accepted now that adaptive streaming provides the best experience when targeting multiple devices – phone to tablet to desktop. The announcement of Metro – a plugin free environment in isolation of media distribution and consumption – providing limited guidance on how how browsers and server side will adapt to streaming media in the Microsoft ecosystem seems to be a cause of a lot of confusion.

    I’d love to hear more about MPEG-DASH and the support planned in IE for it. Again, id there are plans for IE in the Metro mode to support Smooth Streaming, much like what Apple did with Safari for Apple HLS, I would like to know.

  4. Pingback: “HTML5 is really more on par with Silverlight 1 than Silverlight 5” I agree. | www.davidarodriguez.com