ELI5: Why isn't HTML5 taking over Adobe Flash on streaming sites?

There are two primary reasons adoption has been slow: streaming technology and DRM.

Streaming typically uses adaptive bitrate. A content provider usually encodes a video multiple times at different bitrates (low, medium, high, hd, etc). Adaptive bitrate streaming technologies allows the player to select between different bitrates while playback occurs to provide the best experience in the current conditions.

DRM is how content is protected. As much as Reddit despises DRM, it's a necessary evil for content providers. They want to protect their content as much as possible.

Anyways, Adobe Flash allows both of these to be relatively the same across multiple browsers. Usually something like Adobe HDS is used for adaptive streaming, and Adobe Access/Primetime is used for DRM.

With HTML5, each browser may support their own streaming and DRM technology. MPEG-DASH (streaming technology) is started to become a common standard, but Apple really likes to push their HLS. Microsoft likes to use Smooth Streaming. Sometimes these competing streaming technologies requires the video files to be processed (chunked) differently which requires extra time preparing these files.

As for DRM, just have a look at this page to see all the different options for which DRM is supported on which device/browser: http://drmtoday.com/platforms. DRM more or less encrypts the video segments. Some DRMs can share how these files are encrypted (CENC [common encryption]), but some use their own way of encrypting it. This means that the content provider may have to encrypt the files multiple times to support all the required DRMs.

So in the end, you end up with something like using MPEG-DASH and Widevine Modular for Chrome, and HLS with FairPlay for iOS, and Smooth Streaming with PlayReady for Microsoft Edge. Compared to simply Adobe HDS and Adobe Access/Primetime when using Adobe Flash.

TL/DR: HTML5 is the return of the browser wars.

/r/explainlikeimfive Thread