I can think of one use case where Flash still makes sense: Live video
A lot of people seemed to be surprised this is the case but tell me what single live streaming protocol is supported across all browsers without a plugin?
With Flash you can stream HLS (HTTP Live Streaming) to a Flash player in full browsers while just directly loading the same HLS playlist in mobile browsers via native players (iOS / Android).
This means you can deliver live streaming over the same audio/video codec (H.264/AAC) and over the same protocol (HLS). This vastly simplifies your streaming infrastructure and removes the need for transcoding on the server, unless you just want to create different qualities for adaptive bitrate streaming.
It would be nice if "desktop" browsers all supported HLS and H.264/AAC natively, that would be a real Flash killer.
You're right, live video without Flash is not nearly as advanced. However, there are several options that work right now:
- Plain old HTTP WebM stream. Only one resolution, but it works.
- MPEG-DASH - very similar to HLS, but implementable in Javascript via MSE APIs in browsers today.
- WebRTC - low latency streaming, in some cases it might make sense to use this over MPEG-DASH even for one-to-many streaming cases, like interactive lectures and the like.
Unfortunately several browsers lag behind in implementing the required APIs, so this does not solve all problems yet. But the problem isn't creating any new protocols, it's just getting adoption.
As for H.264, it's mostly a solved problem with hardware decoders and OpenH264 (currently not used for <video> playback, but could be). AAC, however, costs more to license and is much more problematic, so there will always be some browser vendors that don't ship it.
A lot of people seemed to be surprised this is the case but tell me what single live streaming protocol is supported across all browsers without a plugin?
With Flash you can stream HLS (HTTP Live Streaming) to a Flash player in full browsers while just directly loading the same HLS playlist in mobile browsers via native players (iOS / Android).
This means you can deliver live streaming over the same audio/video codec (H.264/AAC) and over the same protocol (HLS). This vastly simplifies your streaming infrastructure and removes the need for transcoding on the server, unless you just want to create different qualities for adaptive bitrate streaming.
It would be nice if "desktop" browsers all supported HLS and H.264/AAC natively, that would be a real Flash killer.