Использование Enterprise Edition 1.9.1 официального AMI на AWS.
Сценарий:
Приложение Ant Media Server настроено на использование ABR с разрешениями 360, 480, 720.
Код на стороне игрока опрашивает URL-адрес потока HLS, ожидающего начала потока.
Ожидаемое поведение:
- Если поток не является активным, ответьте с ошибкой 404
- Когда поток запускается в режиме реального времени, ответьте m3u8, содержащим все определенные разрешения
Фактическое поведение:
- Когда поток не является живым, статус HTTP для m3u8 возвращается значение 200, но содержимое ответа - страница 404 не найдена.
- Когда начинается прямой эфир, полученный 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, запустите плеер
Я что-то не так делаю или это ошибка?