Chrome's API Shutdown Spells Trouble for Smooth Streaming
From the earliest days of the web, browsers were able to make up for limitations in their capabilities by allowing for plugins. These plugins could provide features the browser was never designed for, including streaming audio and video content. For many years, companies streaming premium video delivered their content to browsers via plugins, most notably Flash and Silverlight.
Since Silverlight's initial release in September 2007 it rapidly challenged Flash’s domination as a streaming technology, becoming one of the most prominent ways to deliver rich media over the internet. The Silverlight plugin came preinstalled on Internet Explorer browsers, but was also available for separate installation on other browsers. If you watched Netflix or Amazon Instant Video on your computer, chances are you did so via the Silverlight player.
In 2008, Google released its Chrome browser, which experienced rapid adoption. In 2011, Chrome surpassed all other browsers for dominance on the global market, and as of early 2014 has overtaken Internet Explorer as the leading browser in U.S. markets where Internet Explorer was much more deeply entrenched.
In order for plugins to work an API (application programming interface) is needed. For many years, the primary API used by browsers was the Netscape Plugin API (NPAPI). In 2009, Google Chrome introduced an alternative API, known as the Pepper Plugin API (PPAPI), which promised to make plugins more secure and portable across platforms.
Adobe has updated Flash to work with PPAPI, and in February 2012 announced that all new versions of the Flash Player would be released only for PPAPI. Microsoft, however, chose not to update Silverlight to the new APIs, choosing instead to focus on native HTML/JavaScript solutions to provide functionality previously delivered by Silverlight.
On September 23, 2013, Google announced in the Chromium blog that it would discontinue support for NPAPI in an upcoming release. “Today’s browsers are speedier, safer, and more capable than their ancestors. Meanwhile, NPAPI’s 90s-era architecture has become a leading cause of hangs, crashes, security incidents, and code complexity. Because of this, Chrome will be phasing out NPAPI support over the coming year," the entry said.
Since this blog entry Google has adjusted the dates of exactly when a version of chrome without NPAPI would be released. The most recent news seems to indicate that NPAPI will cease to be available in a release in December 2014 or January 2015. Of course, this isn't set in stone, and could be adjusted earlier or later.
Given this, many wonder what options current Silverlight/Smooth Streaming customers have to keep their content playing in Chrome. There are, in fact, a few different choices:
- Microsoft released a Smooth Streaming plugin for Adobe’s Open Source Media Framework, meaning a Flash player can be created which will play Smooth Streaming content.
- Another option is to move away from plugins entirely, and leverage Chrome’s native support for media source extensions (MSE). A recent article in Streaming Media’s MPEG-DASH Superguide explains what MSEs are, and how they can be used (registration required to view the MPEG-DASH Superguide; article on page 83). This can become even easier if content owners leverage an existing open source project, such as dash.js. A little-known fact is that the individual segments in both Smooth Streaming and DASH are identical, so playback of Smooth Streams in a DASH player should be as simple as generating a valid DASH manifest.
Unfortunately, there are additional challenges in migrating from Silverlight to Flash or DASH if the application requires digital rights management (DRM). Most DRM in a Silverlight application uses PlayReady. Neither Flash nor Chrome’s MSE/EME implementation supports PlayReady.
Include DRM in a Flash application necessitates the use of Adobe Primetime DRM (formerly Flash Access). Currently, the only DRM available through the EMEs in Chrome is Widevine. The good news here is that common encryption (CENC) allows for standard encryption that can be decrypted from a variety of DRM systems. So it's possible to have keys from PlayReady, WideVine, or Primetime DRM available to decrypt the content, based on the platform on which it is playing. However, running multiple license servers and enabling CENC is not a trivial undertaking.
While neither Google nor Microsoft has laid out a clear migration path for Silverlight users, the future is not as dire as it seems. It won't be necessary to abandon users who choose the Chrome browser, but it will take work to keep your content flowing to them.
Related Articles
What the online video industry needs is simple standards for reaching all viewers. But when have standards ever simplified online video?
17 Sep 2014