Skip to content

HD-качество в WebRTC

Получить HD / Full HD качество у всех участников видеоконференции при использовании WebRTC.

Проблема

Участники с HD-камерами подключались к конференции и ожидали видеть такое же качество видео у других участников.

На практике WebRTC автоматически снижал разрешение видеопотока. Это было заметно:

  • визуально;
  • по статистике соединения.

Ограничение

Напрямую запретить WebRTC снижать разрешение нельзя: механизм адаптирует видеопоток под условия канала и приоритеты кодирования.

Решение

В WebRTC API для исходящего видеотрека доступно свойство contentHint, которое позволяет подсказать браузеру, чему отдавать приоритет:

  • motion — плавности и fps;
  • detail — детализации и разрешению;
  • text / track — в зависимости от реализации браузера для специализированных сценариев.

На отправляющей стороне для видеотрека было выставлено значение detail. Это сместило приоритет в сторону сохранения разрешения, и в большинстве случаев WebRTC перестал агрессивно снижать качество картинки.

Результат

После настройки contentHint удалось добиться ожидаемого результата:

  • качество видео стало заметно выше;
  • HD-камеры стали отдавать более детализированное изображение;
  • поведение соответствовало ожиданиям участников конференции.

См. также

Сайт обновлен и проверен: