【WebRTC全流程】LiveKit Server Docker 部署会议室(不设置ssl/tls证书模式)
还是想写一个从搭建WebRTC、使用会议室、读写音视频流、接入ASR/TTS/LLM的模型的全流程。
我们从搭建一个内网可用的WebRTC LiveKit 会议室(房间)开始写起吧。
下边是几种部署livekit的方式
| 部署模式 | ssl/tls证书 | turn/stun | 域名 | 备注 | 文档 |
|---|---|---|---|---|---|
| 纯内网 | 不需要 | 不需要 | 不需要 | https://pidan.dev/20250715/webrtc-livekit-deploy-with-no-tls/ | |
| 公网 | 需要 | all in one自带turn | 需要 | 不支持自签证书 | 官方模式 https://pidan.dev/20250721/webrtc-livekit-deploy-with-tls/ |
| 公网 | 需要 | 使用第三方turn | 需要 | 不支持自签证书 | https://pidan.dev/20250722/webrtc-livekit-deploy-config-turn-server/ |
Q&A
1. WebRTC是啥?为啥要用它?
是一个主流浏览器都支持的、用于实时语音对话或视频对话的API。主要包括三部分:MediaStreamTrack音频和视频流,RTCPeerConnectio信令认证,DataChannel数据通道。这些我们后边都会遇到,会有很多坑,我们一起踩。
更多内容参考 https://zh.wikipedia.org/wiki/WebRTC
我们咋用呢?一个基本的流程是:
- 信令认证,双方交换路由和支持的媒体格式。
- 建立连接,所有用户连接到同一个会议室(房间)。
- 媒体流传输,互相订阅和发送音频视频流。
WebRTC包含几种模式:
- 中央服务器混流模式MCU:中央服务器(会议室)需要混流编解码所有用户的音频视频流,CPU压力巨大。
- 用户点对点传输模式Mesh:用户端编解码,用户会收到所有其他用户的流,端侧带宽压力巨大。
- 中央服务器转发模式SFU:中央服务器不混流直接转发给对应的用户。最常用的模式,我们本次的旅程也是使用此模式。