Twitch Is Ditching Flash For HTML5, Just Like YouTube
An anonymous reader writes: Twitch is becoming the latest to transition from Adobe Flash to HTML5. Twitch will start to release its HTML5-based video player controls slowly and in small increments. The video underneath the controls will still be powered by Flash for now. Twitch says this is "an important step to releasing the much-anticipated full HTML5 player" and to "stay tuned for more HTML5 updates."
Google's stewardship of HTML 5 video has been so shaky that nobody trusts the standards they've helped implement. There's also the case that Safari and iOS need custom streams until they support Dash/MSE/EME properly, and other such fragmentation, so it's pretty much a guarantee that Flash and/or Silverlight are the safer bet depending on your content. Now that Google has strong-armed Firefox into supporting MSE (whether it's barely functional or not) it seems likely that Apple will fall into line as well, so it's becoming more of a realistic proposition. Had Google done a better job on the whole thing then we would have had HTML5 video years ago.
For live video, there is no working standard. HLS is used by Safari on Mac, iOS, supposedly MS Edge (I haven't tested to see how well supported it is) and is very buggy in Android (to the point of being unusable). There are some data injector APIs for the latest versions of FF and Chrome where there have been attempts to implement HLS and DASH, but they are buggy at best and not suitable for production. Additionally, using HTTP based streaming standards (such as HLS) for fully live results in very long delays (up to 30 seconds) Trying to use overly small segments to reduce latency results in video breaking up unless the latency between server and client is extremely low.
For long format on demand video, there is an enormous amount of wasted bandwidth as the MOOV atom of an MP4 is transmitted before the video is playable. For a short video, the MOOV atom is small. For an 8 hour video, the MOOV atom can be huge. This presents a problem for support of long format video for people on slower or metered connections.
The only thing the video tag does somewhat consistently across platforms is play back h.264 baseline+aac MP4 on demand videos that are relatively short format .
None of these problems exist with flash. Seamless switching between bit rates is also an issue (works well on fully implemented HLS clients, but generally a problem everywhere else). In the mean time, to support live the best bet is often RTSP on most android (or a commercial third party HLS library deployed in an app), HLS on iOS, some TV devices and on the few supported browsers on desktop and flash for everything else on desktop (where there are player implementations that support HLS).
Yes, flash has a history of security problems. There are still many things that it does much better and more consistently than HTML/JS. I'd love to dump it, but there aren't any solutions that work well for live without a plugin across all platforms.