livekit:基于WebRTC的可扩展多用户实时音视频会议解决方案

End-to-end realtime stack for connecting humans and AI

分支66Tags150
文件最后提交记录最后更新时间
2 天前
4 天前
3 年前
4 天前
15 天前
2 年前
6 天前
3 年前
2 个月前
30 天前
6 天前
2 个月前
5 年前
2 年前
3 个月前
2 年前
28 天前
21 小时前
21 小时前
4 个月前
11 天前
2 年前
2 年前
2 个月前
The LiveKit icon, the name of the repository and some sample code in the background.

LiveKit:面向开发者的实时音视频与数据交互平台

LiveKit 是一个开源项目,基于 WebRTC 提供可扩展的多用户会议功能。 它旨在为您的应用程序提供构建实时音视频数据交互能力所需的一切。

LiveKit 服务器采用 Go 语言编写,并使用了出色的 Pion WebRTC 实现。

GitHub stars Slack community Twitter Follow Ask DeepWiki GitHub release (latest SemVer) GitHub Workflow Status License

功能特性

文档与指南

https://docs.livekit.io

实时演示

生态系统

  • Agents:借助可编程的后端参与者构建实时多模态AI应用
  • Egress:录制或多流传输房间内容,并导出单个轨道
  • Ingress:从RTMP、WHIP、HLS或OBS Studio等外部源摄取流

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 SDKsPython · Node.js
LiveKit SDKsBrowser · Swift · Android · Flutter · React Native · Rust · Node.js · Python · Unity · Unity (WebGL) · ESP32 · C++
Starter AppsPython Agent · TypeScript Agent · React App · SwiftUI App · Android App · Flutter App · React Native App · Web Embed
UI ComponentsReact · Android Compose · SwiftUI · Flutter
Server APIsNode.js · Golang · Ruby · Java/Kotlin · Python · Rust · PHP (community) · .NET (community)
ResourcesDocs · Docs MCP Server · CLI · LiveKit Cloud
LiveKit Server OSSLiveKit server · Egress · Ingress · SIP
CommunityDeveloper Community · Slack · X · YouTube

项目介绍

端到端的WebRTC技术栈。包括SFU媒体服务器和软件开发工具包。【此简介由AI生成】

定制我的领域
17519.68 K2.13 K访问 GitHub