大家好,
我最近为 Discourse 的语音功能搭建了一个 LiveKit 服务器。通话可以正常连接,音频效果也很好,但摄像头视频始终模糊且严重卡顿(帧率在 8-20 FPS 之间,伴有大量画面冻结)。
我尝试了不同的设备、浏览器和视频质量设置(包括最高画质),但问题仍未解决。
我的配置如下:
- Discourse 2026.10.0-latest
- LiveKit v1.13.7
- Discourse 和 LiveKit 分别运行在同一 VPC 内的两台 DigitalOcean 服务器上。
- 两台服务器均配置了 DigitalOcean 防火墙。
- 未对 Discourse 或 LiveKit 的代码进行任何自定义修改。
在一次两人的测试中(分别使用 Chrome 和 Safari),使用 Safari 的一方看到使用 Chrome 一方的视频出现卡顿。
在大家的协助排查下,我们检查了通话期间的 LiveKit 服务器状态。服务器负载非常低,且两个浏览器均通过 UDP 连接。日志中包含以下信息:
adding up track failed: duplicate layer
unbound buffer overflowing, dropping packets
在排查过程中,出现了两个可能相关的现象:
- 即使选择了较高画质,语音功能似乎仍在请求较低分辨率的摄像头视频流,这可能是画面模糊的原因。
- 有迹象表明同一摄像头可能被发布了两次,这可能与卡顿有关。
我不确定这些发现是否能解释全部问题,而且由于这是生产环境,我尚未应用任何代码更改。
有没有其他人遇到过使用语音功能配合自托管 LiveKit 服务器时的类似问题?是否有我遗漏的设置,或者这可能是集成方面的问题?