Проблемы с воспроизведением HLS - PullRequest
0 голосов
/ 19 апреля 2020

Использование Enterprise Edition 1.9.1 официального AMI на AWS.

Сценарий:

Приложение Ant Media Server настроено на использование ABR с разрешениями 360, 480, 720.

Код на стороне игрока опрашивает URL-адрес потока HLS, ожидающего начала потока.

Ожидаемое поведение:

  1. Если поток не является активным, ответьте с ошибкой 404
  2. Когда поток запускается в режиме реального времени, ответьте m3u8, содержащим все определенные разрешения

Фактическое поведение:

  1. Когда поток не является живым, статус HTTP для m3u8 возвращается значение 200, но содержимое ответа - страница 404 не найдена.
  2. Когда начинается прямой эфир, полученный m3u8 содержит только одно разрешение (я думаю, оно случайное - может быть любым из предварительно определено):
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=0,RESOLUTION=1280x720,CODECS="avc1.42e00a,mp4a.40.2"
5e820545bd53c64aca9c57c1_720p.m3u8
Если я запрашиваю m3u8 через несколько секунд после неполного, я получаю полный m3u8 со всеми определенными разрешениями:
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=680704,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2"
5e820545bd53c64aca9c57c1_360p.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1072360,RESOLUTION=854x480,CODECS="avc1.42e00a,mp4a.40.2"
5e820545bd53c64aca9c57c1_480p.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1409432,RESOLUTION=1280x720,CODECS="avc1.42e00a,mp4a.40.2"
5e820545bd53c64aca9c57c1.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2263000,RESOLUTION=1280x720,CODECS="avc1.42e00a,mp4a.40.2"
5e820545bd53c64aca9c57c1_720p.m3u8

Обходной путь:

В настоящее время я являюсь разрешить это путем анализа содержимого ответа:

  • Если в нем содержится ошибка 404, продолжить опрос
  • Если m3u8 короче 6 строк (значение empiri c), продолжить опрос
  • Когда приходит правильный m3u8, запустите плеер

Я что-то не так делаю или это ошибка?

...