В сборке 5.2.607 добавлена функция микшера реального времени. Эта функция, в сочетании с MCU, предназначена для организации видеоконференций в реальном времени. В отличие от предшествующей реализации, микшер реального времени не приостанавливает выходной поток, если какой-либо из входящих потоков начинает запаздывать (как правило, в результате помех на канале публикации), и не ждет восстановления потока, качество которого ухудшилось.
Настройка
Микшер реального времени включен по умолчанию
mixer_realtime=true
Также по умолчанию включено автоматическое создание микшера при публикации потока с именем вида user1#room1
mixer_auto_start=true
Для организации конференций, необходимо также включить поддержку MCU
mixer_mcu_audio=true mixer_mcu_video=true
Рекомендуется уменьшить длительность работы микшера без входящих потоков
mixer_idle_timeout=10000
При необходимости, также может быть включено отображение имени потока и индикатора речи под картинкой
mixer_display_stream_name=true
Поддерживаются и остальные настройки микшера. Отметим, что не рекомендуется включать собственный losless видеопроцессор, поскольку функция реального времени в этом случае не будет работать.
Тонкая настройка микшера реального времени
Тонкие настройки микшера реального времени регулируются следующими параметрами
Параметр | Значение по умолчанию | Описание |
---|---|---|
mixer_audio_silence_threshold | -50.00 | Уровень тишины аудиосоставляющей входящего потока, в Дб |
mixer_debug_mode | false | Добавление отладочной информации к подписи под картинкой потока |
mixer_in_buffering_ms | 200 | Размер буфера видеосоставляющей входящего потока, в миллисекундах |
mixer_incoming_time_rate_lower_threshold | 0.95 | Граница отставания времени входящего потока от времени микшера, в относительных единицах |
mixer_incoming_time_rate_lower_threshold | 1.05 | Граница опережения временем входящего потока времени микшера, в относительных единицах |
mixer_video_stable_fps_threshold | 15 | Граница FPS входящего потока, для потоков с низким FPS буферизация видео составляющей не будет запускаться |
Тестирование
1. Для теста используем
- демо-сервер demo.flashphoner.com;
- браузер Chrome;
- веб-приложение MCU Client для организации конференции.
2. Откройте страницу веб-приложения MCU Client. Введите имя потока user1 и имя комнаты room1
2. Нажмите кнопку Join. Будет опубликован поток с Вашей веб-камеры и добавлен в микшер, затем отобразится выходной поток микшера без аудио с Вашего микрофона
3. В другой вкладке браузера, в другом браузере или на другом ПК откройте страницу приложения MCU Client. Ведите имя пользователя user2 и имя комнаты room1
4. Нажмите кнопку Join. Будет опубликован поток с Вашей веб-камеры и добавлен в микшер от имени пользователя user2, затем отобразится выходной поток микшера с потоками пользователей, но без аудио от user2
5. У пользователя user1 также играется два видеопотока в микшере и аудио от user2
6. Нажмите Leave для выхода из комнаты в обоих вкладках/браузерах
Последовательность выполнения операций
Последовательность выполнения операций при создании конференции на базе микшера реального времени приведена в описании примера MCU Client.