iOS limitations for media HLS streaming

Recently we often receive inquiries about different HTTP-based adaptive bitrate streaming (HLS) on iOS devices. Well, this is not a player or a plugin error, but what iOS device support for HLS streaming is.

Most of moderns browsers with HTML5 support make use of Media Source Extension (MSE) API to implementat code for streaming media entirely in JavaScript.

Browser support for MSE
  • Firefox 42 with support for all sites since 3 November 2015.
  • Google Chrome since early 2013, also on Android.
  • nternet Explorer from version 11 on Windows 8.1.
  • Microsoft Edge since its launch in November 2015.
  • Opera since 9 June 2015.
  • Pale Moon from version 27.0, since 22 November 2016.
  • Safari 8 on OS X.

As you can see, there are no iOS browsers on the list.

iOS browsers can stream HLS natively only, not through the javascript using MSE API. This means that it is not possible to control and switch HLS stream quality manually. The player's quality button and menu will not appear on iOS browser. This also means that CC button will not appear for inline player and in-band captions carried in HLS segments.

DASH streaming is not supported by iOS browsers at all!

Nuevodevel Blog
Nuevodevel Tweeter