- Chrome (and other browsers) support MPEG-DASH via javascript through the Media Source Extensions (MSE) (which Safari actually supports[1])
- Firefox does not "bundle" H.264 (because of licensing) but has recently supported it where the OS provides it[2].
- HLS and MPEG-DASH are fairly similar in theory, but in practice HLS requires complete (with header/metadata) chunks whereas MPEG-DASH can "arbitrarily" chunk a video file and just feed into a MSE video stream. Both work with manifest files detailing different resolutions/qualities and chunk sizes + offsets.
[1] https://en.wikipedia.org/wiki/Media_Source_Extensions#Browse...
[2] https://developer.mozilla.org/en-US/Apps/Build/Audio_and_vid...
https://gigaom.com/2014/10/14/h-264-support-arrives-in-firef...
https://github.com/cisco/openh264
and the code is better than I expected from a commercial project, it even uses may_alias properly. I wonder why the decoder doesn't support CPU multithreading, though? Slice threads are pretty simple to add.
"while OpenH264 is not truly open, at least it is the most open widely used video codec"
Normal videos like youtube uses the operating system decoder.