Голос + 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? Может быть, я пропустил какое-то настройку, или это проблема с интеграцией?

3 лайка

ОБНОВЛЕНИЕ!

Проблема сохраняется даже после перехода на LiveKit Cloud, поэтому она никак не связана с самостоятельным размещением LiveKit. Я также протестировал работу на дополнительных устройствах (Safari на iPad и Chrome на macOS). В Chrome на macOS видео с Safari на iPad воспроизводилось с задержками, рывками и пикселизацией. Аудио при этом оставалось в порядке.

1 лайк

Я надеюсь, что это можно улучшить, хотя понимаю, что проблема может быть связана с системным сбоем (эффектом «lock-in»).

«Ограничение, связанное с использованием WebKit, сужает возможности разработчиков браузеров по улучшению своих браузеров путём добавления дополнительных функций безопасности или возможностей на iOS по сравнению с другими платформами, включая Android. В результате конкуренция между браузерами по функциям безопасности на iOS может снизиться».

В устройствах Apple весь просматриваемый контент обрабатывается через WebKit. Для всего остального у нас есть Linux или Android.

1 лайк

Ого, я даже не об этом подумал. Хотя логично, к сожалению… :frowning:

1 лайк

Спасибо за подробный отчёт, я займусь этим вопросом в ближайшие недели.

1 лайк

Спасибо за отчёт

Дайте знать, если это решит проблему!

4 лайка

Я всё ещё раз протестирую, как только смогу, и тогда вернусь к вам :wink:

2 лайка