Голос + self-hosted LiveKit: видео с камеры в низком разрешении и однонаправленные заикания

Всем привет,

Недавно я настроил сервер LiveKit для функции «Голос» в Discourse. Вызовы устанавливаются, звук отличный, но видео с камеры постоянно размытое и очень «тормозит» (кадров в секунду от 8 до 20 с множеством застрявших кадров).

Я пробовал разные устройства, браузеры и настройки качества видео, включая максимальное, но проблема не решилась.

Моя конфигурация:

  • Discourse 2026.10.0-latest
  • LiveKit v1.13.7
  • Discourse и LiveKit работают на отдельных серверах DigitalOcean в одной VPC.
  • На обоих серверах настроены межсетевые экраны DigitalOcean.
  • Никаких пользовательских изменений в коде Discourse или LiveKit не вносилось.

В одном тесте с двумя участниками (Chrome и Safari) пользователь в Safari видел, как видео участника в Chrome «дёргается».

С помощью коллег мы проверили сервер LiveKit во время звонка. Нагрузка на него была минимальной, и оба браузера подключались по UDP. В логах были следующие сообщения:

adding up track failed: duplicate layer

unbound buffer overflowing, dropping packets

Во время этого расследования возникли два момента, которые могут быть важны:

  • Похоже, что функция «Голос» запрашивает поток с камеры в более низком разрешении, даже если выбрано более высокое качество, что может объяснять размытость изображения.
  • Есть признаки того, что одна и та же камера публикуется дважды, что может быть связано с «дёрганием» видео.

Я не знаю, объясняют ли эти находки всю проблему, и я не вносил никаких изменений в код, так как это мой продакшн-сайт.

Кто-нибудь ещё сталкивался с этим при использовании функции «Голос» и самохостингу сервера LiveKit? Может быть, я пропустил какое-то настройку, или это проблема с интеграцией?

2 лайка