Gone in a Flash: Migrating Videos to a Flash-Less World
By the time you read this article, Google will have released Chrome 55, which requires user interaction to run Flash content in its desktop browser. Chrome 54 already stops the loading of Flash content until the user intervenes. These changes contributed to ongoing industry speculation about the end of Flash. Google is not the only browser vendor to continue its chokehold on Flash: In August, Mozilla also placed more restrictions on Flash content in Firefox.
The crusade to finish off our dependence on Flash content doesn’t stop with browser vendors. Streaming Media’s Dan Rayburn wrote a blog post detailing the content delivery networks (CDNs) that were setting end-of-life dates for RTMP-based media delivery. RTMP, or Real-Time Messaging Protocol, is a Flash-specific transport for real-time video, audio, and data. Player vendors such as JW Player were also preparing their customers for the deprecation of Flash in desktop browsers. Celebrities have even jumped on the bandwagon, as Bill Maher criticized Flash during one of his New Rules segments on his HBO talk show. The irony is that Maher’s own site fully embraces Flash. HBONow.com also relies on MLBAM’s Flash-based video player for DRM’d content.
Rest assured: If you haven’t jumped on the “Flash is dead” bandwagon, that doesn’t mean you’re crazy. Even though I’m the author of several Flash books, my bottom line is the technical requirements of my clients. There are features for which Flash is still the best option, simply because there’s no other affordable consistent solution (yet) among the native supported browser stacks. Flash-based video playback has strengths for RTMP, adaptive bitrate VOD, and low-latency live video. Despite its usefulness, I have to admit that most of my customers do not want to use Flash in any new solution because it’s seen as an outdated technology nearing the end of its life.
If you are one of the holdouts who still believe in the power of Flash, I commend you. But if you’re still using a Flash-only video player on your website, it’s time to stop. I’m surprised at how many small- to medium-sized business (SMB) sites have an FLVPlayback SWF running everything from product demos to customer testimonials. If you’re an SMB owner or stake-holder and you’re not sure if your web team has built a Flash-only video player, try loading your site on your mobile phone. If the video doesn’t display or shows a “Download the Flash Player” link, you’ve probably got a Flash-only player—and you are probably losing customers because of it.
Who Still Uses Flash RTMP?
Facebook still uses Flash RTMP. Did you know that Facebook Live uses RTMP in its mobile apps to push a live stream out to its CDN? Anyone who is livestreaming is very likely using RTMP to push the video feed to a media server that will then process the stream, or transmux, into other non-RTMP formats such as Apple HLS, Adobe HDS, or MPEG-DASH. For example, most H.264 hardware encoders have RTMP publish options for live streaming, as do software broadcasting applications such as Telestream Wirecast. Akamai, Limelight, and other CDNs still maintain RTMP endpoints for ingesting live streams. In most of these live-streaming scenarios, though, the Flash plug-in is not necessarily used in a desktop browser. RTMP can be used as a transport in a mobile or desktop application without requiring the Flash plug-in.
The clients I work with who rely on the Flash plug-in for desktop browsers are mainly in the live streaming business. They need the low-latency aspect of RTMP delivery, as HTTP-based live streams have larger overhead for playlist and video segmentation, which can delay live playback by 30 seconds. This type of latency is not acceptable for real-time communication, such as live auction feeds or video chat. Richard Blakely, CEO of Influxis, has this to say about his client base: “Roughly half of all traffic served from the Influxis network remains RTMP, with the other half mostly HLS and some RTSP, DASH, RTP, and HDS. In most cases people are using the RTMP protocol for low latency one-to-many and many-to-many streaming applications.” So Flash is still there, flexing its muscle where the action is and keeping the data moving when there isn’t room for processing delays. Despite all its shortcomings, we must acknowledge that Flash can be better than the competition in some use cases.
Will Law, chief architect of Akamai’s media division, provides this outlook for RTMP: “Akamai operates the largest network of Flash Media Servers in the world. We have many customers who still use RTMP delivery, especially for its low latency characteristics with live streams. As the footprint of available Flash clients declines, we expect RTMP delivery to fall off proportionally and eventually be replaced by HTTP/S delivery using HLS or DASH.”
Why Is RTMP Still Necessary?
Are the businesses that continue to use Flash just stalwarts to legacy systems, refusing to move forward? There are businesses that have made a significant investment for Flash RTMP systems hoping to eke out as much ROI as possible before digging up funds again for a fragmented technology stack that will likely differ in one aspect or another from platform to platform.
The primary obstacle is the fact that there’s no real-time protocol available across all browser stacks. There is WebRTC, which we’ll explore more in the next section, and it’s the only shining light for real-time efforts in the browser as the industry continues to push toward a future of Flash-free browsers.
Meanwhile, businesses continue to rely on RTMP for their video needs. As Chris Knowlton, vice president and streaming industry evangelist of Wowza Media Systems, says, “Wowza customers have historically been big users of RTMP. In just the last 12 months, Wowza has had over 1,000 new customer deployments using RTMP delivery. While a majority of new deployments use HLS and other adaptive bitrate streaming formats for delivery, we still see a lot of customers relying on RTMP, and this tends to be primarily driven by streaming use cases that require low latency video and bi-directional data streaming.”
Meet the (Browser) Replacements
What happens if your video customers don’t have the Flash plug-in, or it’s not allowed to run in their desktop browsers? Depending on your video content, it’s going to be a matter of two factors: codecs and formats.
First, let’s talk about codecs. Nearly every HTML5 desktop and mobile browser in use today has native AVC/H.264 video and AAC audio decoders. This alone is cause for celebration because your content is most likely already encoded in this format. As we head into a UHD and 4K future, though, it’s not clear what codec(s) will be the H.264 of today. We had Flash to thank as the unifying glue around H.264, supporting playback when a browser couldn’t. Right now, VP9 is a solid contender to HEVC/H.265, as the latter’s adoption seems to be mired in legal issues around multiple patent pools. Thankfully, UHD and 4K is still very bleeding edge; when it comes to the use cases for RTMP and live streaming, most broadcasters are limited by bandwidth available on-site, and as such 720p is “high end” quality.
The bigger question with codecs is whether your bottom line can be affected by using VP8 to augment your deployment. The benefit of VP8 (and VP9) is that most current non-Apple browsers have decoding capabilities built-in. VP8 and VP9 are royalty-free and can often compress content better than typical H.264/H.265 encoding presets. On older browsers that don’t have native H.264 decoding, you may reach more viewers who don’t have Flash installed. But, older browsers are also less likely to have the Flash-disabling features that more and more current browsers do.
The trickier half of browser replacements is the format (or container) of the video content. The following formats comprise much of online content today:
- MP4: The MPEG-4 file format is the typical container for H.264 (and H.265) streams. If you have short-form content (less than 5 minutes), you can encode your video content and deliver over HTTP from a standard web server. As such, you can stream content relatively cheaply from cloud services such as Amazon Web Services S3 and/or CloudFront.
- WebM: This file format is used for VP8/VP9 and Vorbis codecs, and it is becoming more widely supported by current browsers including Edge, Firefox, Chrome, Opera, and Android browsers. WebM files can be used just like MP4 files on standard HTTP servers.
- HLS: Apple created the HTTP Live Streaming (HLS) container for H.264/AAC to easily scale large deployments of adaptive bitrate VOD or live streams. All Apple browsers, including Safari desktop and mobile and native iOS applications, support HLS playback. (It helps that Apple requires video-streaming iOS apps to use HLS for longer video content.) MP4 files can be transmuxed to MPEG-2 TS file segments and stored on standard HTTP servers (see the MP4 bullet). The primary playback benefit of HLS is that many vendors have built HLS compatibility into their browser technology, from Google Android to Microsoft Edge.
- WebRTC: This new standard tackles the “real-time” aspect of video delivery previously fulfilled by Flash’s RTMP. Both live HLS and DASH streams are prone to high latency periods because video fragments need to queue on the server before delivery to the client for playback. You can reduce how many fragments need to queue on the server end, but the latency will, at a minimum, be equal to the size of your group of pictures (GoP), or keyframe interval. Enter WebRTC. This new transmission method over TCP or UDP maintains an open socket connection between clients. More importantly, WebRTC can access native camera and microphone devices from a desktop or mobile browser. Without any plug-ins, you can livestream directly from the confines of a WebRTC-enabled browser. As hinted earlier in this article, though, WebRTC is lacking critical vendors: Apple and Microsoft. While Google and Mozilla have supported WebRTC for several years, Apple has yet to add WebRTC to Safari desktop or mobile. Microsoft has a variation called Object RTC (or ORTC) available in Edge, and many aspects of WebRTC are available in ORTC.
VOD: Concerns With Your Encoding Process for Content
If you’re determined to move to a Flash-free delivery system, my best piece of advice is to make sure your encoding workflow is altered to support the brave new world of HTTP segmentation. In the simplest terms, that means using a fixed keyframe interval, or GoP, for your video content. Even if you don’t plan to use adaptive streaming deployments, any changes to your existing pipeline should accommodate fixed GoPs for a less monumental effort later.
Disney's Mark Arana and Wowza's Chris Knowlton discuss the challenges content owners face in migrating their video from Flash to HTML5, and the importance of knowing where their video will land before planning their migration strategy.
By this time next year, Flash support from the major content delivery networks will have virtually ended. Here's where Flash stands today.
Here's a look at all the major content delivery networks' plans for ending support for RTMP and Flash streaming
A behind-the-scenes look at how Yahoo developed its HTML5 video player
While it's clear that Flash's time is coming to an end, it's less clear what will replace it. A survey shows DASH support, but its real-world use is around one percent.
Companies and Suppliers Mentioned