Добрый день.
Мы провели тесты на последней релизной сборке
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
Синхронизация аудио и видео может быть равна нулю только при отсутствии одной из составляющих, если есть и аудио, и видео, значение синхронизации никогда не будет нулевым
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
поток, публикуемый на выходе микшера для этого клиента (смикшированы остальные потоки, кроме голоса этого клиента)
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
Обращаем Ваше внимание, что контролировать необходимо PUBLISHING, а не PLAYING сессии. Играющий клиент в любом случае будет играть только то, что опубликовано.
Что касается значений
hasAudio
,
hasVideo
для PLAYING сессии, на которые Вы ссылаетесь, они устанавливаются на момент начала проигрывания потока. В этот момент подписчик еще не знает, придет ему поток только с аудио, только с видео, или с обоими составляющими, поэтому значение обоих этих полей всегда будет
true
. Однако в метриках PLAYING сессии все видеометрики для audio only потока будут нулевыми.
Ранее Вам уже неоднократно описывали метрики потока как наиболее надежное средство контроля. Попробуйте прочитать еще раз
Мониторинг параметров потока при помощи REST API
Синхронизация в опубликованных потоках
Подробное описание параметров webrtc-internals (если английская документация не вызывает у Вас затруднений)