livekit

livekit

基于WebRTC的开源实时通信框架

LiveKit是基于WebRTC的开源项目,提供可扩展的多用户实时通信功能。它包含丰富的客户端SDK、服务器API和工具,支持语音检测、模拟广播和端到端加密等特性。LiveKit易于部署,适用于视频会议、直播等场景。该项目为开发者提供构建实时音视频和数据通信应用所需的全套解决方案。

LiveKitWebRTC实时通信多人会议开源项目Github
<!--BEGIN_BANNER_IMAGE--> <picture> <source media="(prefers-color-scheme: dark)" srcset="/.github/banner_dark.png"> <source media="(prefers-color-scheme: light)" srcset="/.github/banner_light.png"> <img style="width:100%;" alt="LiveKit图标、仓库名称以及背景中的示例代码。" src="https://raw.githubusercontent.com/livekit/livekit/main/.github/banner_light.png"> </picture> <!--END_BANNER_IMAGE-->

LiveKit:为开发者提供实时视频、音频和数据

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

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

GitHub stars Slack社区 Twitter关注 GitHub发布(最新语义化版本) GitHub工作流状态 许可证

特性

文档和指南

https://docs.livekit.io

在线演示

生态系统

  • Agents:使用可编程后端参与者构建实时多模态AI应用
  • Egress:录制或多流房间并导出单独的轨道
  • Ingress:从外部源(如RTMP、WHIP、HLS或OBS Studio)接收流

SDK和工具

客户端SDK

客户端SDK使您的前端能够包含交互式、多用户体验。

<table> <tr> <th>语言</th> <th>仓库</th> <th> <a href="https://docs.livekit.io/guides/room/events/#declarative-ui" target="_blank" rel="noopener noreferrer">声明式UI</a> </th> <th>链接</th> </tr> <tr> <td>JavaScript(TypeScript)</td> <td> <a href="https://github.com/livekit/client-sdk-js" target="_blank" rel="noopener noreferrer">client-sdk-js</a> </td> <td> <a href="https://github.com/livekit/livekit-react" target="_blank" rel="noopener noreferrer">React</a> </td> <td> <a href="https://docs.livekit.io/client-sdk-js/" target="_blank" rel="noopener noreferrer">文档</a> | <a href="https://github.com/livekit/client-sdk-js/tree/main/example" target="_blank" rel="noopener noreferrer">JS示例</a> | <a href="https://github.com/livekit/client-sdk-js/tree/main/example" target="_blank" rel="noopener noreferrer">React示例</a> </td> </tr> <tr> <td>Swift(iOS / MacOS)</td> <td> <a href="https://github.com/livekit/client-sdk-swift" target="_blank" rel="noopener noreferrer">client-sdk-swift</a> </td> <td>Swift UI</td> <td> <a href="https://docs.livekit.io/client-sdk-swift/" target="_blank" rel="noopener noreferrer">文档</a> | <a href="https://github.com/livekit/client-example-swift" target="_blank" rel="noopener noreferrer">示例</a> </td> </tr> <tr> <td>Kotlin(Android)</td> <td> <a href="https://github.com/livekit/client-sdk-android" target="_blank" rel="noopener noreferrer">client-sdk-android</a> </td> <td>Compose</td> <td> <a href="https://docs.livekit.io/client-sdk-android/index.html" target="_blank" rel="noopener noreferrer">文档</a> | <a href="https://github.com/livekit/client-sdk-android/tree/main/sample-app/src/main/java/io/livekit/android/sample" target="_blank" rel="noopener noreferrer">示例</a> | <a href="https://github.com/livekit/client-sdk-android/tree/main/sample-app-compose/src/main/java/io/livekit/android/composesample" target="_blank" rel="noopener noreferrer">Compose示例</a> </td> </tr> <tr> <td>Flutter(所有平台)</td> <td> <a href="https://github.com/livekit/client-sdk-flutter" target="_blank" rel="noopener noreferrer">client-sdk-flutter</a> </td> <td>原生</td> <td> <a href="https://docs.livekit.io/client-sdk-flutter/" target="_blank" rel="noopener noreferrer">文档</a> | <a href="https://github.com/livekit/client-sdk-flutter/tree/main/example" target="_blank" rel="noopener noreferrer">示例</a> </td> </tr> <tr> <td>Unity WebGL</td> <td> <a href="https://github.com/livekit/client-sdk-unity-web" target="_blank" rel="noopener noreferrer">client-sdk-unity-web</a> </td> <td></td> <td> <a href="https://livekit.github.io/client-sdk-unity-web/" target="_blank" rel="noopener noreferrer">文档</a> </td> </tr> <tr> <td>React Native(测试版)</td> <td> <a href="https://github.com/livekit/client-sdk-react-native" target="_blank" rel="noopener noreferrer">client-sdk-react-native</a> </td> <td>原生</td> <td></td> </tr> <tr> <td>Rust</td> <td> <a href="https://github.com/livekit/client-sdk-rust" target="_blank" rel="noopener noreferrer">client-sdk-rust</a> </td> <td></td> <td></td> </tr> </table>

服务器SDK

服务器SDK使您的后端能够生成访问令牌,调用服务器API,以及接收webhooks。此外,Go SDK包含客户端功能,使您能够构建像最终用户一样行为的自动化程序。

语言仓库文档
Goserver-sdk-go文档
JavaScript(TypeScript)server-sdk-js文档
Rubyserver-sdk-ruby
Java(Kotlin)server-sdk-kotlin
Python(社区)python-sdks
PHP(社区)agence104/livekit-server-sdk-php

工具

安装

[!提示] 我们建议与服务器一起安装LiveKit CLI。它允许您访问服务器API、创建令牌和生成测试流量。

以下将安装LiveKit的媒体服务器:

MacOS

brew install livekit

Linux

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

Windows

此处下载最新版本

入门

启动LiveKit

通过运行livekit-server --dev以开发模式启动LiveKit。它将使用一个占位符API密钥/密钥对。

API密钥:devkey
API密钥:secret

要为生产环境自定义设置,请参阅我们的部署文档

创建访问令牌

连接到LiveKit房间的用户需要一个访问令牌。访问令牌(JWT)编码了用户的身份和授予他们的房间权限。您可以使用我们的CLI生成令牌:

livekit-cli create-token \ --api-key devkey --api-secret secret \ --join --room my-first-room --identity user1 \ --valid-for 24h

使用示例应用进行测试

前往我们的示例应用,输入生成的令牌以连接到您的LiveKit服务器。此应用使用我们的React SDK构建。

连接后,您的视频和音频现在正在发布到您的新LiveKit实例!

模拟测试发布者

livekit-cli join-room \ --url ws://localhost:7880 \ --api-key devkey --api-secret secret \ --room my-first-room --identity bot-user1 \ --publish-demo

此命令将循环演示视频发布到房间。由于视频剪辑的编码方式(每3秒一个关键帧),浏览器在获得足够数据开始渲染帧之前会有轻微延迟。这是模拟的一个特征。

部署

使用LiveKit Cloud

LiveKit Cloud是运行LiveKit最快速和最可靠的方式。每个项目都可以获得免费的月度带宽和转码额度。

注册LiveKit Cloud

自托管

阅读我们的部署文档以获取更多信息。

从源代码构建

前提条件:

  • 安装Go 1.22+
  • GOPATH/bin在你的PATH中

然后运行

git clone https://github.com/livekit/livekit cd livekit ./bootstrap.sh mage

贡献

我们欢迎您为改进LiveKit做出贡献!请加入我们的Slack群组讨论您的想法和/或PR。

许可证

LiveKit服务器采用Apache License v2.0许可。

<!--BEGIN_REPO_NAV-->

<br/><table>

<thead><tr><th colspan="2">LiveKit生态系统</th></tr></thead> <tbody> <tr><td>实时SDK</td><td><a href="https://github.com/livekit/components-js">React组件</a> · <a href="https://github.com/livekit/client-sdk-js">浏览器</a> · <a href="https://github.com/livekit/components-swift">Swift组件</a> · <a href="https://github.com/livekit/client-sdk-swift">iOS/macOS/visionOS</a> · <a href="https://github.com/livekit/client-sdk-android">Android</a> · <a href="https://github.com/livekit/client-sdk-flutter">Flutter</a> · <a href="https://github.com/livekit/client-sdk-react-native">React Native</a> · <a href="https://github.com/livekit/rust-sdks">Rust</a> · <a href="https://github.com/livekit/node-sdks">Node.js</a> · <a href="https://github.com/livekit/python-sdks">Python</a> · <a href="https://github.com/livekit/client-sdk-unity-web">Unity(网页)</a> · <a href="https://github.com/livekit/client-sdk-unity">Unity(测试版)</a></td></tr><tr></tr> <tr><td>服务器API</td><td><a href="https://github.com/livekit/node-sdks">Node.js</a> · <a href="https://github.com/livekit/server-sdk-go">Golang</a> · <a href="https://github.com/livekit/server-sdk-ruby">Ruby</a> · <a href="https://github.com/livekit/server-sdk-kotlin">Java/Kotlin</a> · <a href="https://github.com/livekit/python-sdks">Python</a> · <a href="https://github.com/livekit/rust-sdks">Rust</a> · <a href="https://github.com/agence104/livekit-server-sdk-php">PHP(社区)</a></td></tr><tr></tr> <tr><td>代理框架</td><td><a href="https://github.com/livekit/agents">Python</a> · <a href="https://github.com/livekit/agent-playground">演练场</a></td></tr><tr></tr> <tr><td>服务</td><td><b>LiveKit服务器</b> · <a href="https://github.com/livekit/egress">出口</a> · <a href="https://github.com/livekit/ingress">入口</a> · <a href="https://github.com/livekit/sip">SIP</a></td></tr><tr></tr> <tr><td>资源</td><td><a href="https://docs.livekit.io">文档</a> · <a href="https://github.com/livekit-examples">示例应用</a> · <a href="https://livekit.io/cloud">云</a> · <a href="https://docs.livekit.io/home/self-hosting/deployment">自托管</a> · <a href="https://github.com/livekit/livekit-cli">CLI</a></td></tr> </tbody> </table> <!--END_REPO_NAV-->

编辑推荐精选

问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

下拉加载更多