The discussion addresses issues with Discourse’s Voice feature, specifically low-resolution and stuttering camera video during calls. MachineScholar reported that while audio quality was acceptable, video remained blurry and laggy (8-20 FPS) despite using a self-hosted LiveKit server on DigitalOcean. Log analysis revealed duplicate layer errors and unbound buffer overflowing, suggesting the camera stream might be published twice or requested at lower resolution than intended.
In an update, MachineScholar confirmed the issue persisted after migrating to LiveKit Cloud, ruling out self-hosting configuration as the root cause. The problem was observed when Chrome users viewed video from Safari users, particularly on iOS devices. satonotdead suggested this could be related to Apple’s WebKit restrictions on iOS, which may limit browser capabilities compared to other platforms. Falco acknowledged the report and provided a pull request to address the integration issues. MachineScholar is currently testing the fix.
I recently set up a LiveKit server for Discourse’s Voice feature. Calls connect and audio sounds great, but camera video is consistently blurry and very laggy (frames per second between 8-20 with lots of frozen frames).
I’ve tried different devices, browsers, and video-quality settings, including Maximum, without resolving it.
My setup:
Discourse 2026.10.0-latest
LiveKit v1.13.7
Discourse and LiveKit run on separate DigitalOcean servers in the same VPC.
Both servers have DigitalOcean firewalls.
No custom changes to Discourse or LiveKit’s code.
In one two-person test using Chrome and Safari, the person using Safari saw the Chrome participant’s video stuttering.
With some help troubleshooting, we checked the LiveKit server during the call. It was under very little load, and both browsers were connecting over UDP. The logs included these messages:
Two things came up during that investigation that might be relevant:
Voice appears to request a lower-resolution camera stream even when higher quality is selected, which might explain the blurry picture.
There are signs that the same camera might be getting published twice, which might be related to the stuttering.
I don’t know whether those findings explain the whole problem, and I haven’t applied any code changes since this is my production site.
Has anyone else experienced this with Voice and a self-hosted LiveKit server? Is there a setting I might have missed, or could this be an issue with the integration?
This is persisting after I moved to LiveKit Cloud, so it isn’t related to self-hosting LiveKit at all. I also tested with additional devices (Safari on iPad and Chrome on MacOS). Chrome on MacOS saw the laggy/stuttering/pixelated video coming from Safari on iPad. Audio was still fine.
I hope it can be improved, although I know it could be related to a system-wide failure (lock-in).
“the WebKit restriction limits the ability of browser vendors to improve their browsers by adding additional security improvements or features on iOS, compared to other platforms, including Android. It may therefore decrease competition between browsers on security features on iOS.”
In Apple, all browsed content goes through WebKit. We have Linux or Android for everything else.