LiveKit:开源的实时音视频通信基础设施

LiveKit 是一个开源项目,提供基于 WebRTC 的可扩展多人实时音视频通信能力。项目目前获得了 19,205 个 Star。

正文顶部截图

LiveKit 的服务端用 Go 语言编写,底层依赖 Pion WebRTC 实现。它提供视频、音频和数据三种通道的实时通信能力,让开发者在自己的应用中集成多人通话、直播和协作功能,不需要从零搭建 WebRTC 信令和媒体服务器。

README区域截图

核心架构

LiveKit 采用 SFU(Selective Forwarding Unit)架构,服务端负责转发媒体流,不做编解码。这种架构在多方通话场景下延迟低、扩展性好。

具体能力包括:

  • 分布式部署,支持多区域和集群扩展
  • 网络层兼容 UDP、TCP、TURN,适应复杂网络环境
  • 支持 Simulcast 和 SVC 编解码(VP9、AV1),按带宽自适应调整画质
  • 发言者检测,可自动切换主讲人画面
  • 端到端加密,保障通话安全
  • JWT 鉴权机制,适合生产环境接入
  • Webhook 回调,方便与外部系统联动
  • 审核 API,支持主持人踢人、静音等操作

客户端 SDK

LiveKit 提供了覆盖主流平台的客户端 SDK:

  • JavaScript/TypeScript(含 React 声明式 UI)
  • Swift(iOS/macOS,支持 SwiftUI)
  • Kotlin(Android,支持 Compose)
  • Flutter(跨平台)
  • React Native(beta)
  • Unity WebGL
  • Rust

每个 SDK 都有对应的示例工程和文档,覆盖了 Web、移动端、桌面端和游戏引擎场景。

服务端 SDK

后端方面,LiveKit 提供了多种语言的服务端 SDK,用于生成 access token、调用服务端 API 和接收 webhook:

  • Go(官方维护)
  • JavaScript/TypeScript
  • Ruby
  • Java/Kotlin
  • Python(社区维护)
  • PHP(社区维护)

Go 版 SDK 还支持客户端能力,可以用来构建自动化机器人,模拟真实用户行为。

周边生态

LiveKit 围绕核心服务搭建了几个配套组件:

  • Agents:构建实时多模态 AI 应用,把 AI 作为参与者加入房间
  • Egress:负责录制和转推,支持录制整个房间或单独的音视频轨道
  • Ingress:支持从外部源(RTMP、WHIP、HLS、OBS)推流到 LiveKit 房间

这三个组件让 LiveKit 从一个音视频服务器扩展成了一个可以接入 AI、支持直播推流、支持录制归档的平台。

快速上手

安装方式比较直接。Mac 上用 brew:

brew install livekit

Linux 上用脚本:

curl -sSL https://get.livekit.io | bash

Windows 直接从发布页下载二进制文件。

启动开发模式只需一行命令:

livekit-server --dev

默认会生成一组测试用的 API Key 和 Secret,用 CLI 工具生成 access token 后,连上官方的 Example App 就能看到自己的音视频画面被推送到本地服务器。

部署方式

项目提供两种部署选择。LiveKit Cloud 是官方托管的云服务,每月有免费额度,适合快速验证和中小规模使用。自托管则按照官方部署文档,用 Docker 或 Kubernetes 搭建,适合对数据合规和网络有要求的团队。

LiveKit 是目前开源实时音视频方案中功能覆盖较全的一个项目。从 SFU 核心到多平台 SDK,从 AI Agents 到录制推流,覆盖了实时通信的主要环节。对于需要在产品中集成音视频通话、直播或实时协作功能的团队,LiveKit 是一个值得评估的选项。

核心到多平台 SDK,从 AI Agents 到录制推流,覆盖了实时通信的主要环节。对于需要在产品中集成音视频通话、直播或实时协作功能的团队,LiveKit 是一个值得评估的选项。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐