В настоящее время я работаю над веб-приложением, основной целью которого является потоковое / временное переключение телеканалов. Приложение написано на Javascript React Framework и для веб-плеера мы используем CookPete ReactPlayer со встроенным hls. js. Нам удалось успешно воспроизвести прямые телевизионные каналы, но, к сожалению, у нас возникли некоторые проблемы с каналами с временным сдвигом
Прямые потоки распределяются по серверу XtreamUI в виде списков m3u8 и имеют такой формат example.org/live/username/password/channel_1.m3u8 Таким образом, когда пользователь смотрит Live TV, этот вид URL-адреса переходит к исходному тексту проигрывателя, а игрок CookPete + hls. js выполняет свои магические действия c с анализом / обработкой Список m3u8, который приводит к безупречному воспроизведению видео.
Здесь возникает проблема, поскольку временное смещение XtreamUI использует этот вид URL example.org / streaming / timeshift. php? username = XXX & password = XXX & stream = 2 & start = 2020-04-26: 19-23 & duration = 7 Как вы можете видеть в сценарии PHP, который STREAMS передает необработанные байты в проигрыватель. Вот заголовки ответа от /streaming/timeshift.php
Как вы можете заметить, тип контента - video / mp2t, который по некоторым причинам не может быть воспроизведен в среда браузера. (Google Chrome, Mozilla Firefox, IE 11). Это предупреждение появляется.
С другой стороны, браузер Safari на видео Ma c воспроизводится совершенно нормально, но запрос от Safari немного отличается. Это скриншот с вкладки сети консоли Safari. Как вы можете видеть, есть несколько запросов с разными байтовыми диапазонами.
Мы ищем решение, которое обеспечит воспроизведение видео со сдвигом во времени (контент video / mp2t) в Google Chrome, Mozilla Firefox и IE 11. Все предложения / советы приветствуются.