A Note on HTML5
April 16, 2018 by
When it came onto the scene in 2013, HTML5 video was still in its infancy, and notably lacked support for DRM (digital rights management) and other methods of content protection. We were still waiting on the development of Media Source Extensions (MSE) to support adaptive streaming, and Encrypted Media Extensions (EME) to support the playback of protected content. Things have come a long way since then.
The biggest driver has been a shift away from Adobe Flash-based workflows. We all know that Apple's position on Flash has negatively affected the use and future of Flash for streaming content. Flash is also disappearing fast due to issues with browser security, performance and more.
When Apple and Google declared their end of support for native Flash applications, it drove a hard line in the sand for making HTML5 the center of browser-based experiences. Since then, Adobe itself has declared that the company is sunsetting the product—which makes finding viable alternatives a major challenge for developers.
As we look at the continued growth of HTML5 support, here are some observations:
MPEG-DASH, DRM, and Google
The release of the HTML5 specification officially introduced two areas of focus: Media Source Extensions and Encrypted Media Extensions. In short, EME provided DRM protection for the playback of live and on-demand streaming content, and MSE enabled that playback—all in the browser, and again, without the need for third-party plug-ins such as Adobe Flash or Microsoft Silverlight. This included support for HTTP adaptive streaming format MPEG-DASH and the Common Encryption Scheme (CENC), the latter of which defines standards for content encryption that allows decryption using multiple DRM platforms.
As the leading innovator, the Google Chrome browser continues to enhance HTML5 video support. Chrome has support for MSE using MPEG-DASH, which includes the H.264 and VP8/VP9 codecs. Chrome also supports EME, which indirectly enables support for Google Widevine, a major DRM platform. Other web browsers, including Apple Safari, Microsoft Edge and Mozilla Firefox have all finally followed in Google's footsteps, all supporting MSE and EME on both desktop and mobile devices.
HTML5 Player Applications
The release of the HTML5 specification has increased the number of companies that provide HTML5 player applications. In addition to JW Player, these now include THEOplayer (OpenTelly), bitdash (bitmovin), dash.js, video.js, Google Shaka Player and more. These player applications not only support the playback of live and on-demand adaptive bitrate (ABR) streaming content, but many now also support advanced functionality, including captions, DVR, advertising and even virtual reality and 360º content.
In turn, Wowza has developed its own free HTML5 player, available for customers of Wowza Streaming Engine™ software and the Wowza Streaming Cloud™ service. Completely embeddable, the player provides support for ABR streaming, utilizing Apple HTTP Live Streaming (HLS) and—for customers with the Wowza Streaming Cloud premium Ultra Low Latency Service—the WOWZ ultra low latency protocol.
Adobe Flash Alternatives
One of the biggest use cases for Flash was for low-latency streaming with RTMP (Real Time Messaging Protocol) workflows. As streaming applications have sought alternatives to RTMP, we’ve witnessed the growth of WebRTC for browser-based streaming.
Originally designed as a peering technology, WebRTC also offers low latency, and is built on three of the HTML5 APIs that are built into Chrome and Firefox. This gives developers the ability to implement it in their web applications, using the HTML5 capabilities that are already built into the most popular browsers. This means no plug-ins are required—but it also relies on the stability of the browser or on browser updates.
That’s one reason we’ve continued to update Wowza Streaming Engine, allowing customers who want to deliver low-latency streaming and video chat to utilize WebRTC in their workflows. Wowza Streaming Engine can ingest, record, transmux and/or transcode WebRTC content into other streaming protocols, including Apple HLS, HDS (HTTP Dynamic Streaming), RTMP, RTSP (Real Time Streaming Protocol) and Microsoft Smooth Streaming. Content in those other protocols can then be transmuxed into WebRTC to stream to browser-based players that don’t require a plug-in.
WebRTC, WebVTT (Web Video Text Tracks) and WebSockets are all related HTML5 initiatives that are gaining traction as streaming continues to evolve, and Wowza will also build upon their successes.
Progress has been made with HTML5, but there is still much more to be done. Many consider EME to be highly controversial because of its use of proprietary elements. DRM is per-browser; although DRM providers are moving toward multi-DRM support, multiple DRM platforms are currently required to reach a broad audience with protected content.
With that said, some exciting things are expected to come in the near future. The HTML 5.3 specification was just released in March 2018, and there have been several updates since version 5.0 that pertain to EME and MSE. As a living standard, HTML5 continues to evolve—and with the introduction of new codecs, players and delivery protocols, Wowza will be constantly working to ensure that our products continue to work seamlessly with HTML5 for both on-demand and live streaming content distribution.