음성 + 자체 호스팅 LiveKit: 저해상도 카메라 영상 및 단방향 끊김

여러분 안녕하세요,

최근 Discourse의 음성 기능을 위해 LiveKit 서버를 설정했습니다. 통화 연결과 오디오 품질은 좋지만, 카메라 영상이 일관되게 흐릿하고 매우 버퍼링이 심합니다(초당 프레임 수는 8~20fps이며 동결 프레임이 많습니다).

최대(Maximum) 품질을 포함한 다양한 기기, 브라우저, 영상 품질 설정을 시도해 보았지만 문제가 해결되지 않았습니다.

제 환경 구성은 다음과 같습니다:

  • Discourse 2026.10.0-latest
  • LiveKit v1.13.7
  • Discourse와 LiveKit는 같은 VPC 내의 서로 다른 DigitalOcean 서버에서 실행됩니다.
  • 두 서버 모두 DigitalOcean 방화벽이 적용되어 있습니다.
  • Discourse나 LiveKit 코드를 직접 수정하지 않았습니다.

Chrome과 Safari를 사용하여 2인 테스트를 진행했을 때, Safari를 사용하던 사용자는 Chrome 사용자의 영상이 끊기는 현상을 경험했습니다.

문제 해결을 위해 통화가 진행되는 동안 LiveKit 서버를 확인해 보았습니다. 서버 부하가 매우 낮았고, 두 브라우저 모두 UDP로 연결되어 있었습니다. 로그에는 다음과 같은 메시지가 포함되어 있었습니다:

adding up track failed: duplicate layer

unbound buffer overflowing, dropping packets

이 조사 과정에서 잠재적으로 관련이 있을 수 있는 두 가지 사항이 발견되었습니다:

  • 더 높은 품질이 선택된 경우에도 음성 기능이 낮은 해상도의 카메라 스트림을 요청하는 것으로 보이며, 이는 흐릿한 화질을 설명할 수 있습니다.
  • 같은 카메라가 두 번 게시되는 징후가 있으며, 이는 끊김 현상과 관련이 있을 수 있습니다.

이것이 제 프로덕션 사이트이므로 아직 코드 변경 사항을 적용하지 않았으며, 이러한 발견 사항이 전체 문제를 설명하는지 확신할 수 없습니다.

혹시 다른 분들도 자체 호스팅 LiveKit 서버와 함께 Voice 기능을 사용하면서 비슷한 문제를 경험하신 적이 있으신가요? 놓친 설정이 있을 수 있는지, 혹은 이 문제가 통합 자체의 결함 때문일 수 있는지 알려주시면 감사하겠습니다.

3개의 좋아요

업데이트!

LiveKit Cloud로 전환한 후에도 문제가 지속되고 있으므로, 이는 LiveKit의 자체 호스팅과 전혀 관련이 없습니다. 또한 추가 기기(iPad의 Safari와 MacOS의 Chrome)에서도 테스트를 수행했습니다. MacOS의 Chrome에서는 iPad의 Safari에서 전송되는 영상이 지연/거친/픽셀화된 상태로 표시되었습니다. 오디오는 여전히 정상적으로 작동했습니다.

1개의 좋아요

개선이 이루어지기를 희망하지만, 이것이 시스템 전체의 실패(잠금 효과)와 관련이 있을 수 있다는 점도 알고 있습니다.

“WebKit 제한은 iOS에서 다른 플랫폼(안드로이드 포함)과 비교할 때, 브라우저 벤더들이 추가적인 보안 개선이나 기능을 추가하여 브라우저를 개선하는 능력을 제한합니다. 따라서 iOS에서 브라우저 간 보안 기능에 대한 경쟁이 감소할 수 있습니다.”

Apple의 경우, 모든 브라우저 콘텐츠는 WebKit를 통해 처리됩니다. 그 외의 모든 용도에는 Linux나 Android를 사용할 수 있습니다.

1개의 좋아요

아, 정말 생각도 못 했네. 하지만 생각해보면 그럴 수도 있겠다… 불행히도. :frowning:

1개의 좋아요

자세한 보고 감사합니다. 앞으로 몇 주 안에 이 문제를 조사하겠습니다.

1개의 좋아요

리포트 감사합니다

이로 인해 문제가 해결되는지 알려주세요!

1개의 좋아요