Этот вопрос немного устарел, но наше исследование может помочь кому-то еще, кто может пройти через это.
Мы потратили некоторое время на диагностику проблем с воспроизведением контента на iOS / QuickTime с использованием URL-адресов с параметрами матрицы. В частности, мы пытались воспроизвести контент HLS, используя URL-адреса вида 'http://myserver.mydomain.com/path;a=b.m3u8'
Видео будет нормально воспроизводиться в первый раз, а затем выйдет из строя во второй (и любой другой) раз. Если параметры матрицы отсутствовали, видео воспроизводилось нормально каждый раз.
В конце концов мы пришли к выводу, что проблема заключается в том, что iOS / QuickTime записывает неверные записи в кеш. Итак, когда сервер возвращал контент в первый раз, это было как отсутствие кэша на iOS / QuickTime, поэтому он работал нормально. В следующий раз сервер вернул 304 (не измененный - то есть попадание в кеш), iOS / QuickTime попытался извлечь его из кеша, но это не удалось, так что видео не воспроизводилось.
Наше решение состояло в том, чтобы предотвратить кэширование клиента, установив для заголовка Cache-Control значение no-cache. Другим решением было бы не использовать матричные параметры.
Обратите внимание, что с точки зрения HLS эта ошибка, по-видимому, возникает только при первом загруженном файле m3u8 - URL-адреса m3u8, перечисленные в первом m3u8, которые содержат параметры матрицы, как представляется, работают нормально.