Оптимизация LL HLS

AVRozk

New Member
Добрый день.
Включили у себя LL HLS, есть несколько вопросов:
1. При запуске стрима появляется лоадер, потом стрим. Если отключиться от стрима, вернуться и продолжить стрим лоадер опять появится.
Можно отключить лоадер и сделать, чтобы при начале стрима приходило событие на наш сервер, что стрим начался?
2. У нас трансляция идет на ios и задержка составляет 8 секунд. Вроде стандарт ll hls предполагает задержку 2-8 секунд. Можно ее как-то уменьшить?
3. Стрим отдается в rtmp в 1280, а на клиент приходит 480. Какие настройки смотреть чтобы улучшить?
 

Max

Administrator
Staff member
Добрый день.
1. При запуске стрима появляется лоадер, потом стрим. Если отключиться от стрима, вернуться и продолжить стрим лоадер опять появится.
Можно отключить лоадер и сделать, чтобы при начале стрима приходило событие на наш сервер, что стрим начался?
Прелоадер устарел и не обязателен, его нужно отключить
Code:
hls_preloader_enabled=false
Но прелоадер появляется только для первого HLS подписчика. Выглядит так, что у вас останавливается публикация исходного потока.
Получить уведомление на бэкенде о том, что публикация стартовала, можно при помощи REST хука /publishStream. Пример реализации минимального REST хука приведен здесь.
2. У нас трансляция идет на ios и задержка составляет 8 секунд. Вроде стандарт ll hls предполагает задержку 2-8 секунд. Можно ее как-то уменьшить?
Это известная проблема, работаем над ней в тикете WCS-3753
3. Стрим отдается в rtmp в 1280, а на клиент приходит 480. Какие настройки смотреть чтобы улучшить?
По умолчанию, для HLS включается транскодинг к размерешению 848x480
Code:
hls_player_width=848
hls_player_height=480
Это связано с тем, что для HLS необходим стабильный FPS, который не изменяется при публикации, и равномерное поступление ключевых кадров. Все это обеспечивается за счет транскодинга. Однако, если исходный поток публикуется как RTMP, достаточно выставить настройки публикации, как рекомендовано здесь (например, keyframe interval 2 секунды, Integer FPS value 30 секунд для OBS). Тогда транскодинг можно отключить. Итого, настройки для HLS в данном случае получаются такими:
Code:
hls_ll_enabled=true
hls_new_http_stack=true
hls_preloader_enabled=false
hls_player_width=0
hls_player_height=0
 
Top