Flash's Last Hurrah
2020 is the last year in which Adobe will continue to offer the Flash Player for download for desktop browsers. (See Adobe’s blog for details if you haven’t heard the news.) For the vast majority of content owners or those responsible for managing online assets, Flash-based content has been replaced by equivalents in HTML5 or native mobile apps. For some, though, the lack of migration from Flash to alternative mobile-friendly content is not a case of procrastination, ambivalence, or even budget. The struggle has been more one of feature parity.
Despite Flash’s security issues and battery-hogging CPU utilization on early mobile releases, the Adobe (and formerly Macromedia) technology fulfilled the promise of “write once, deploy everywhere” prior to the smartphone age. Flash also offered a consistent experience in desktop browsers for real-time, low-latency audio/video streaming playback and publishing essential for many “first-of-kind” online auctions and video conferencing web applications built between 2006 and 2011.
While many Flash video streaming applications have been replaced by HTML5 equivalents such as HTTP Live Streaming (HLS) and DASH (most only in the last 5 years when HTML5 browsers finally offered MSE [media source extensions] and EME [encrypted media extensions]), the only “ultra-low latency” (<1 second) option on the table was—and still is—WebRTC. Now, the problem with WebRTC is one that never plagued Flash: consistency across browsers with video and audio codecs. With Flash, regardless of browser vendor, you had the option to consistently deploy real-time apps that utilized core codecs available in the Flash Player, including Sorenson Spark and later H.264. With WebRTC, competing vendors prioritize VP8/9 over H.264 or vice versa (or only have one or the other available). As such, costly and immature server solutions need to transcode real-time streams between WebRTC clients. In short, converting your online auction house over to WebRTC isn’t as simple as it should be.
Now, the situation with WebRTC has improved immensely over the last year since H.264 and Opus are available across all of the latest browsers from the major vendors (see go2sm.com/mozillawebrtc for details), and you may be surprised to know that WebRTC can be reliably used on mobile web as well. This means if your users have recent releases of these browsers, then yes, you can achieve low-latency real-time video and audio in a web app. However, there’s always a snag—Firefox for Android 68 and later does not offer support for H.264 anymore, as the Google Play store restricts Firefox from installing the OpenH264 codec.
So, where does that leave us for the last holdouts of Flash apps in this category? If you’re using Flash for low-latency real-time streaming, you’ve got about a year or less to try moving over to a WebRTC solution. And what does that mean exactly? Any code you’re using on your Flash-based media server (Adobe Media Server, Wowza Streaming Engine, and so on) needs to migrate to WebRTC instead of Real-Time Messaging Protocol (RTMP). You’ll also need to create a WebRTC client to replace the Flash component. That’s likely going to be a more difficult part of the conversion process, as WebRTC client software development kits (SDKs) are very specific to the server component. RTMP handshakes with Flash clients could be easily ported from one RTMP server to another, but WebRTC solutions have very tightly coupled client-server SDKs. Do the necessary due diligence to make sure whichever WebRTC solution you choose meets all of your business and technology requirements.
CosMo Software Consulting Founder & CEO Dr. Alex Gouaillard discusses the non-realtimeness of WebRTC encoders and how Netflix and others compensate on the decoding end in this clip from his Video Engineering Summit presentation at Streaming Media East 2019.
Limelight's Charlie Kraus discusses three emerging strategies for delivering low-latency live streaming in the post-Flash era.
Robert Reinhardt of VideoRx and Streaming Media Contributing Editor Tim Siglin discuss the real implications, causes, and consequences of the demise of Flash.