So, protocols, transports and codecs are not described in the HTML5 specification. Therefore, browser authors themselves choose what to support, and by “HTML5 streaming” they mean different things.


How HTML5 streaming works Palatine
How HTML5 streaming works

However, there are combinations that are supported by a significant part of browsers. Consider the most promising.


HLS is h264 video and aac or mp3 audio packaged in MPEG-TS transport. The stream is split into segments described in m3u8 playlists and distributed via HTTP. HLS supports multibitrate streams, Live/VOD. The option is very simple, but at the same time it has many details, which is why it works differently on different devices. Read more: mpvplayer

HLS was developed at Apple, so initially it only worked in Safari on iOS and MacOS. Even Safari on Windows could not play HLS (when there was still a version for Win).

However, now HLS can play all set-top boxes and even almost all Android devices.

But not everything is smooth. Manufacturers of third-party players spit on the Apple standard in terms of delivering different audio tracks and added playback of everything that is in regular MPEG-TS: mpeg2 video, mpeg2 audio, etc. Because of this, you have to give different playlist formats for different players.


MPEG-DASH is usually h264/h265 video and aac audio packed in mp4 transport, or vp8/vp9 packed in WebM, although the standard is not tied to specific codecs, protocols and transports. As in HLS, the stream can be segmented, but this is not required. Instead of playlists - MPD-manifest in XML.

MPEG-DASH is similar to HLS in many ways. Perhaps it is even more popular, because giants such as YouTube and Netflix have been using it as the main way to distribute content for several years.

MPEG-DASH is good because it works natively in most browsers, through MSE (more on what it is below). It doesn't even have a Flash implementation - it's honest, uncompromising HTML5.
Definitely, MPEG-DASH is the real HTML5 streaming, it is the future. Source: