constrains не работает

Ritmius

Member
Через веб страничку mcu клиент делаем публикацию

в логах
"mediaSessionId" : "72461c30-a7a2-11eb-8058-c5fc58b2c213",
"name" : "login3#room3",
"published" : true,
"hasVideo" : false,
"hasAudio" : true,
"status" : "PUBLISHING",


а на play stream есть видео

"name" : "room3-login3room3",
"published" : false,
"hasVideo" : true,
"hasAudio" : true,
"status" : "PLAYING",


причем там же в логах
"constraints" : {
"audio" : true,
"video" : false
}


Где же все таки можно найти нормально отлаженный клиент к вашему серверу? SDK мобильные не работают, веб получается тоже?
 
Last edited:

Max

Administrator
Staff member
Добрый день.
Мы провели тесты на последней релизной сборке 5.2.945 с настройками клиента
Code:
function getConstraints() {
    var constraints = {
        audio: true,
        video: false
    };
    return constraints;
}
и сервера
Code:
mixer_mcu_audio=true
mixer_mcu_video=false
mixer_video_enabled=false
В этом случае в публикуемом потоке нет видеосоставляющей, как и в потоках микшера, что подтверждается:
1. Cтатистикой браузера на клиенте
Code:
chrome://webrtc-internals[/ICODE]
для публикации
[ATTACH type="full" width="734px"]2551[/ATTACH]
и проигрывания
[ATTACH type="full" width="750px"]2552[/ATTACH]
в обоих случаях есть только аудио поток
2. Статистикой на стороне сервера
[CODE]http://wcs:8081/?action=stat
1619574922338.png

Синхронизация аудио и видео может быть равна нулю только при отсутствии одной из составляющих, если есть и аудио, и видео, значение синхронизации никогда не будет нулевым
3. REST API запросами параметров потока
поток, публикуемый с клиента
Code:
curl -H "Content-Type: application/json" -X POST http://localhost:8081/rest-api/stream/find -d '{"published":true, "name":"user1#room1", "display":["metrics"]}' | jq
1619575207217.png

поток, публикуемый на выходе микшера для этого клиента (смикшированы остальные потоки, кроме голоса этого клиента)
Code:
curl -H "Content-Type: application/json" -X POST http://localhost:8081/rest-api/stream/find -d '{"published":true, "name":"room1-user1room1", "display":["metrics"]}' | jq
1619575377610.png

Обращаем Ваше внимание, что контролировать необходимо PUBLISHING, а не PLAYING сессии. Играющий клиент в любом случае будет играть только то, что опубликовано.
Что касается значений hasAudio, hasVideo для PLAYING сессии, на которые Вы ссылаетесь, они устанавливаются на момент начала проигрывания потока. В этот момент подписчик еще не знает, придет ему поток только с аудио, только с видео, или с обоими составляющими, поэтому значение обоих этих полей всегда будет true. Однако в метриках PLAYING сессии все видеометрики для audio only потока будут нулевыми.
Ранее Вам уже неоднократно описывали метрики потока как наиболее надежное средство контроля. Попробуйте прочитать еще раз
Мониторинг параметров потока при помощи REST API

Синхронизация в опубликованных потоках
Подробное описание параметров webrtc-internals (если английская документация не вызывает у Вас затруднений)
 

Attachments

Top