Проигрывание HLS и снепшоты

Doctormom

New Member
Добрый день.

Тестируем реализацию транслирования RTSP потока в HLS.
Столкнулись со следующими вопросами:
1. При подключении первого подписчика на проигрывание потока в HLS идет задержка порядка 10 секунд. Из документации понимаем, что это старт нарезки потока на сегменты. Попробовали установить в настройках hls_auto_start=true, что бы нарезка начиналась сразу после публикации потока. Но результат не изменился. Первый подписчик все равно ожидает нарезку. Публикация потока на сервер производится с помощью REST API /rest-api/rtsp/startup. Получение потока с сервера через ссылку формата https://wcs:8445/streamName/streamName.m3u8. В чем может быть проблема ?
2. Снепшот с потока возможно снять, только спустя 3-5 секунд после ее публикации на сервер. И даже возможно не с первой попытки.
3. Снепшот возвращается в разрешении камеры. Есть ли возможно указывать желаемое разрешение снепшота ?
4. Снепшот по апи возвращается в виде base64. Есть ли возможность возвращать как файл и поток байтов ?
 

Max

Administrator
Staff member
Добрый день
1. При подключении первого подписчика на проигрывание потока в HLS идет задержка порядка 10 секунд.
2. Снепшот с потока возможно снять, только спустя 3-5 секунд после ее публикации на сервер. И даже возможно не с первой попытки.
Эти две проблемы связаны с периодичностью поступления ключевых фреймов от RTSP камеры. Если есть такая возможность, рекомендуем выставить на стороне камеры отправку ключевого фрейма каждые 2 секунды (если, например, у камеры есть опция keyframe interval наподобие OBS). Если такой возможности нет, могут помочь следующие настройки WCS
Code:
periodic_fir_request=true
periodic_fir_request_interval=2000
В этом случае сервер будет запрашивать ключевой фрейм у камеры каждые 2 секунды, и, если камеры поддерживает такие запросы, она будет высылать ключевой фрейм
3. Снепшот возвращается в разрешении камеры. Есть ли возможно указывать желаемое разрешение снепшота ?
Такой возможности нет. Можно транскодировать поток к желаемому разрешению и снимать снапшоты с транскодированного потока, но это увеличит нагрузку на CPU сервера, если речь идет о 2K и 4K разрешениях, серьезно увеличит
4. Снепшот по апи возвращается в виде base64. Есть ли возможность возвращать как файл и поток байтов ?
Такой возможности нет. Однако есть возможность автоматического создания снапшотов для опубликованных потоков, в этом случае снапшоты складываются на сервере в виде файлов
 
Top