End-to-end realtime stack for connecting humans and AI
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 天前 | ||
| 4 天前 | ||
| 3 年前 | ||
| 4 天前 | ||
| 15 天前 | ||
| 2 年前 | ||
| 6 天前 | ||
| 3 年前 | ||
| 2 个月前 | ||
| 30 天前 | ||
| 6 天前 | ||
| 2 个月前 | ||
| 5 年前 | ||
| 2 年前 | ||
| 3 个月前 | ||
| 2 年前 | ||
| 28 天前 | ||
| 21 小时前 | ||
| 21 小时前 | ||
| 4 个月前 | ||
| 11 天前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 个月前 |
LiveKit:面向开发者的实时音视频与数据交互平台
LiveKit 是一个开源项目,基于 WebRTC 提供可扩展的多用户会议功能。 它旨在为您的应用程序提供构建实时音视频数据交互能力所需的一切。
LiveKit 服务器采用 Go 语言编写,并使用了出色的 Pion WebRTC 实现。
功能特性
- 可扩展的分布式 WebRTC SFU(选择性转发单元)
- 现代化、功能全面的客户端 SDK
- 为生产环境打造,支持 JWT 身份验证
- 强大的网络与连接能力,支持 UDP/TCP/TURN
- 部署简便:单二进制文件、Docker 或 Kubernetes
- 高级功能包括:
- 发言人检测
- simulcast(联播)
- 端到端优化
- 选择性订阅
- 主持管理 API
- 端到端加密
- SVC 编解码器(VP9、AV1)
- Webhook(网络钩子)
- 分布式与多区域部署
文档与指南
实时演示
- LiveKit Meet(源代码)
- 空间音频(源代码)
- 通过OBS Studio进行直播(源代码)
- 使用ChatGPT的AI语音助手(源代码)
生态系统
SDK与工具
客户端SDK
客户端SDK助力您的前端打造交互式多用户体验。
| 语言 | 代码库 | 声明式UI | 链接 |
|---|---|---|---|
| JavaScript(TypeScript) | client-sdk-js | React | 文档 | JS示例 | React示例 |
| Swift(iOS / MacOS) | client-sdk-swift | Swift UI | 文档 | 示例 |
| Kotlin(Android) | client-sdk-android | Compose | 文档 | 示例 | Compose示例 |
| Flutter(全平台) | client-sdk-flutter | 原生 | 文档 | 示例 |
| Unity WebGL | client-sdk-unity-web | 文档 | |
| React Native(测试版) | client-sdk-react-native | 原生 | |
| Rust | client-sdk-rust |
服务端 SDK
服务端 SDK 能让您的后端生成访问令牌、调用服务端 API 以及接收网络钩子。此外,Go SDK 还包含客户端功能,使您能够构建出模拟终端用户行为的自动化程序。
| 语言 | 代码库 | 文档 |
|---|---|---|
| Go | server-sdk-go | docs |
| JavaScript(TypeScript) | server-sdk-js | docs |
| Ruby | server-sdk-ruby | |
| Java(Kotlin) | server-sdk-kotlin | |
| Python(社区版) | python-sdks | |
| PHP(社区版) | agence104/livekit-server-sdk-php |
工具
安装
Tip
我们建议将 LiveKit CLI 与服务器一同安装。它能让你访问服务器 API、创建令牌以及生成测试流量。
以下将安装 LiveKit 的媒体服务器:
macOS
brew install livekit
Linux
curl -sSL https://get.livekit.io | bash
Windows
请在此处下载最新版本
快速开始
启动 LiveKit
通过运行 livekit-server --dev 以开发模式启动 LiveKit。此模式将使用占位符 API 密钥/密钥对。
API Key: devkey
API Secret: secret
若要针对生产环境自定义设置,请参考我们的部署文档
创建访问令牌
用户连接到 LiveKit 房间时需要访问令牌。访问令牌(JWT)会对用户身份及其被授予的房间权限进行编码。您可以使用我们的 CLI 生成令牌:
lk token create \
--api-key devkey --api-secret secret \
--join --room my-first-room --identity user1 \
--valid-for 24h
使用示例应用进行测试
访问我们的示例应用,输入生成的令牌以连接到您的LiveKit服务器。此应用是使用我们的React SDK构建的。
连接后,您的视频和音频将发布到新的LiveKit实例!
模拟测试发布者
lk room join \
--url ws://localhost:7880 \
--api-key devkey --api-secret secret \
--identity bot-user1 \
--publish-demo \
my-first-room
此命令会将循环播放的演示视频发布到房间。由于视频片段的编码方式(每 3 秒一个关键帧),浏览器需要一定时间获取足够数据才能开始渲染帧,这是模拟过程中的正常现象。
部署
使用 LiveKit Cloud
LiveKit Cloud 是运行 LiveKit 最快、最可靠的方式。每个项目每月都能获得免费的带宽和转码额度。
注册 LiveKit Cloud。
自行托管
有关更多信息,请阅读我们的 部署文档。
从源代码构建
前置要求:
- 已安装 Go 1.23+
- GOPATH/bin 已添加到您的 PATH 环境变量中
然后运行
git clone https://github.com/livekit/livekit
cd livekit
./bootstrap.sh
mage
贡献指南
我们欢迎您为改进 LiveKit 贡献力量!如果您有任何想法或 PR,欢迎通过 Slack 与我们交流。
许可协议
LiveKit 服务器基于 Apache License v2.0 许可协议发布。
| LiveKit 生态系统 | |
|---|---|
| Agents SDKs | Python · Node.js |
| LiveKit SDKs | Browser · Swift · Android · Flutter · React Native · Rust · Node.js · Python · Unity · Unity (WebGL) · ESP32 · C++ |
| Starter Apps | Python Agent · TypeScript Agent · React App · SwiftUI App · Android App · Flutter App · React Native App · Web Embed |
| UI Components | React · Android Compose · SwiftUI · Flutter |
| Server APIs | Node.js · Golang · Ruby · Java/Kotlin · Python · Rust · PHP (community) · .NET (community) |
| Resources | Docs · Docs MCP Server · CLI · LiveKit Cloud |
| LiveKit Server OSS | LiveKit server · Egress · Ingress · SIP |
| Community | Developer Community · Slack · X · YouTube |