A lot of people are making a lot of noise about expunging Flash from the web, mostly for security reasons as more and more vulnerabilities are discovered in it. One of the first people to make a big deal about it was Steve Jobs when he introduced iOS, claiming it was slow and battery-draining and “proprietary,” as in not open-source.
I’m not the biggest fan of closed web technologies even though I’ve developed with Director, Shockwave, Flash and Flex. It’s really time that Flash died. The problem is, there still aren’t good ways to do video on the web without it.
Video formats on the web are still an unsolved problem, and they’re mostly an unsolved problem because of Apple and Microsoft’s fault. HTML5 introduced the <video> element for playing back (pre-recorded) video, but it didn’t define a codec to be the standard, essentially leaving it up to the popular browser makers to support whatever they feel like. Microsoft and Apple could have used this opportunity to embrace an open and relatively patent unencumbered video format along with Mozilla’s Firefox and Google’s Chrome. Then everyone could happily use HTML5 video.
Instead of choosing a video format that everyone could be free to use for video on the web, Apple and Microsoft have steadfastly refused to offer native support. They only support the format h.264, which is heavily protected by patents and must be licensed. While it is one of the best quality standards its legal status and closed nature preclude it from being supported by other browsers.
Why would Apple and Microsoft force everyone to use this one format that requires licensees to cough up cash? It could possibly maybe have something to do with the fact that they are both members of the H.264 licensor pool of the MPEG Licensing Association so they benefit financially from ruining any hope of open formats for video on the web. Pretty shitty, but patent holders gotta be dicks, right?
No they don’t as a matter of fact. Compare this to Google’s efforts on the HTML5 video front. Google purchased the rights to a competing codec called VP8 (which they renamed to webm) and gave away the rights to use the codec to everyone for free in perpetuity. They basically spent a bunch of time and money and effort to promote a free and unencumbered option that was at least better than the only major open option at the time (Ogg Theora). Turned out that VP8 probably infringed on a number of H.264 patents but at least they tried to play nice and not hold the entire world of web users hostage at the point of a Flash gun and demanding they fork over money to create video content for the web.
So far I’ve only been referring to playing back video files on the web. The situation is even more depressing with streaming live video. Apple decided to only support HTTP Live Streaming, a new format they devised which is made up of chunked MPEG transport stream segments in little 10-second files and a modified mp3 playlist file. It’s nice because they can be handled by normal web servers and CDNs but it’s really pretty shitty in terms of encoding headache and latency imposed by the segmentation.
Of course the best thing about companies that don’t give a flying fuck about promoting open standards is that you end up with lots to choose from! Similar to Apple’s HLS is an actual attempt at a real standard called MPEG DASH, which is great except that it’s not actually supported by anything except some fancy TVs and Chromecast.
Never one to miss a chance to make up their own incompatible standard, Microsoft also has a very similar option called Microsoft Smooth Streaming and Silverlight, which is a lot like Flash except it isn’t supported by anything except IE and is made by Microsoft instead of Adobe. So in Microsoft’s view it’s great, I guess.
In summary, Flash really ought to die. It would just be great if we had a free standard to replace it instead of Apple and Microsoft trying to force everyone to use H.264 which they happen to be in the business of licensing.