Поток не добавился в микшер.

Ilya K.

Member
Здравствуйте. Версия - 5.2.1054
Полного файла отчета, к сожалению, нет, только логи сервера (прикладываю)

Стрим шел около 49 минут.
После 23:52 один из пользователей пропадает из микшированного потока, по прошествии примерно половины минуты его оригинальный поток публикуется (остальные участники его видят, слышат, общаются с ним. Реализовано так, что спикеры взаимодействуют именно с оригинальными потоками.)
По прошествии 32:29 в микшере снова появляется третий участник. При необходимости могу прислать видео.
 

Max

Administrator
Staff member
Добрый день.
Судя по предоставленному логу, примерно в указанное время микшер был остановлен по REST API /mixer/terminate:
Code:
16:24:35,252 INFO         RestApiRouter - HTTPS-pool-5-thread-1954 Use controller class com.flashphoner.rest.server.rest_v2.RestMixerStreamController with path /rest-api/mixer/terminate
Через 6 секунд после этого он был снова запущен запросом /mixer/startup
Code:
16:24:41,408 INFO         RestApiRouter - HTTPS-pool-5-thread-1958 Use controller class com.flashphoner.rest.server.rest_v2.RestMixerStreamController with path /rest-api/mixer/startup
16:24:41,408 INFO             PullAgent - HTTPS-pool-5-thread-1958 Created agent:WebRTCAgentFilter{localMediaSessionId='null', remoteMediaSessionId='null', localStreamName='5165SEHHE1qURqzqdc8', remoteStreamName='null', uri='mixer://mixer5165', status='null', record='false', hasAudio='true', hasVideo='true', profiles='null'}
И так несколько раз подряд, иногда с промежутками между запуском и остановкой в 100 и менее миллисекунд.
То есть проблемы не с одним конкретным потоком, а с логикой управления микшером в целом.
Также мы отметили, что бэкенд не проверяет, существует ли микшер, когда пытается добавить в него потоки по /mixer/add. Например, здесь бэкенд пытался добавить двух участников:
Code:
16:33:13,490 INFO         RestApiRouter - HTTPS-pool-5-thread-1964 Use controller class com.flashphoner.rest.server.rest_v2.RestMixerStreamController with path /rest-api/mixer/add
16:33:13,490 ERROR ixerStreamController - HTTPS-pool-5-thread-1964 pull exception Mixer not found
16:33:13,565 INFO         RestApiRouter - HTTPS-pool-5-thread-1964 Use controller class com.flashphoner.rest.server.rest_v2.RestMixerStreamController with path /rest-api/mixer/add
16:33:13,565 ERROR ixerStreamController - HTTPS-pool-5-thread-1964 pull exception Mixer not found
При большом количестве участников это приведет к частому повторению холостых запросов.
Кроме того, как мы уже отмечали в этом посте, бэкенд часто дает запрос /mixer/startup через 100 и менее миллисекунд после /mixer/terminate, и не все ресурсы успевают освободиться за такое короткое время, что приводит к ошибкам создания микшера. Причем, получив ошибку, бэкенд ее игнорирует и пытается добавить в микшер поток, даже если микшер не создан.
В связи с этим, рекомендуем пересмотреть логику бэкенда, как писали в этом посте в п. 2.
 
Top