Recentemente configurei um servidor LiveKit para o recurso de Voz do Discourse. As chamadas se conectam e o áudio soa muito bem, mas o vídeo da câmera fica consistentemente embaçado e com bastante atraso (entre 8 e 20 quadros por segundo, com muitos quadros congelados).
Tentei diferentes dispositivos, navegadores e configurações de qualidade de vídeo, incluindo a Máxima, sem resolver o problema.
Minha configuração:
Discourse 2026.10.0-latest
LiveKit v1.13.7
O Discourse e o LiveKit rodam em servidores separados da DigitalOcean, na mesma VPC.
Ambos os servidores possuem firewalls da DigitalOcean.
Nenhuma alteração personalizada no código do Discourse ou do LiveKit.
Em um teste com duas pessoas usando Chrome e Safari, a pessoa que usava o Safari viu o vídeo do participante do Chrome com travamentos.
Com a ajuda de alguns para a depuração, verificamos o servidor LiveKit durante a chamada. Ele estava com uma carga muito baixa, e ambos os navegadores estavam se conectando via UDP. Os logs incluíram as seguintes mensagens:
Duas coisas surgiram durante essa investigação que podem ser relevantes:
A Voz parece solicitar um stream de câmera em resolução mais baixa, mesmo quando uma qualidade mais alta é selecionada, o que pode explicar a imagem embaçada.
Há indícios de que a mesma câmera pode estar sendo publicada duas vezes, o que pode estar relacionado aos travamentos.
Não sei se essas descobertas explicam todo o problema, e não apliquei nenhuma alteração de código, já que este é meu site de produção.
Alguém mais experimentou isso com a Voz e um servidor LiveKit auto-hospedado? Existe alguma configuração que eu possa ter perdido, ou isso pode ser um problema com a integração?
O problema persiste mesmo depois que migrei para o LiveKit Cloud, então não tem nada a ver com a hospedagem própria do LiveKit. Também testei com dispositivos adicionais (Safari no iPad e Chrome no macOS). No Chrome no macOS, o vídeo vindo do Safari no iPad apresentava travamentos, engasgos e pixelização. O áudio continuava normal.
Espero que isso possa ser melhorado, embora saiba que possa estar relacionado a uma falha em nível de sistema (lock-in).
“A restrição do WebKit limita a capacidade dos fabricantes de navegadores de melhorar seus navegadores ao adicionar melhorias ou recursos de segurança adicionais no iOS, em comparação com outras plataformas, incluindo o Android. Portanto, pode diminuir a concorrência entre navegadores em relação a recursos de segurança no iOS.”
Na Apple, todo o conteúdo navegado passa pelo WebKit. Temos Linux ou Android para tudo o mais.