第一部分:WebRTC 基础篇(入门必读)
- WebRTC 概述
-
1.1 什么是 WebRTC?发展历史与应用场景
-
1.2 WebRTC 核心能力:音视频通话、屏幕共享、数据传输
-
1.3 WebRTC 架构全景图
-
1.4 WebRTC vs 传统音视频方案对比
- WebRTC 核心概念
-
2.1 媒体流(MediaStream)与轨道(Track)
-
2.2 对等连接(PeerConnection)详解
-
2.3 信令(Signaling):SDP 协议与会话协商
-
2.4 ICE、STUN、TURN:网络穿透三剑客
-
2.5 DTLS-SRTP:媒体加密与安全传输
- WebRTC 协议栈
-
3.1 应用层协议:JavaScript API(W3C 标准)
-
3.2 会话层协议:SDP、JSEP(RFC 8829)
-
3.3 传输层协议:ICE、DTLS、SRTP、SCTP
-
3.4 网络层协议:RTP/RTCP 详解
-
3.5 编解码器:H.264、VP8/VP9、Opus 等
- WebRTC 连接建立流程
-
4.1 完整的连接建立时序图
-
4.2 Offer/Answer 模型深度解析
-
4.3 ICE 候选收集与连接探测
-
4.4 DTLS 握手与密钥协商
-
4.5 媒体流的发送与接收
- WebRTC 多人通话架构
-
5.1 Mesh、MCU、SFU 架构对比
-
5.2 Plan B vs Unified Plan
-
5.3 BUNDLE 与多路复用
-
5.4 Simulcast 与 SVC 技术
第二部分:WebRTC 源码解析篇(深入理解) 6. WebRTC 代码结构与编译
-
6.1 WebRTC 源码目录结构
-
6.2 编译环境搭建(depot_tools、GN、Ninja)
-
6.3 关键模块介绍:api、pc、media、p2p、rtc_base
-
6.4 如何调试 WebRTC 源码
- PeerConnection 核心实现
-
7.1 PeerConnectionFactory:对象工厂与依赖注入
-
7.2 PeerConnection 接口层次:Interface → Internal → Proxy
-
7.3 线程模型:Signaling、Worker、Network 三线程
-
7.4 Proxy 机制:线程安全的跨线程调用
- 媒体引擎(Media Engine)
-
8.1 VideoTrack 与 AudioTrack:媒体轨道实现
-
8.2 VideoCaptureModule:视频采集(平台特定实现)
-
8.3 VideoStreamEncoder:视频编码流水线
-
8.4 RtpSender 与 RtpReceiver:媒体发送/接收
- 传输层(Transport Layer)
-
9.1 JsepTransport:传输管理核心类
-
9.2 IceTransport 与 P2PTransportChannel:ICE 实现
-
9.3 DtlsTransport:DTLS 握手与加密
-
9.4 DtlsSrtpTransport:SRTP 加解密
-
9.5 SctpTransport:DataChannel 数据传输
- 信令与会话管理
-
10.1 SDP 生成与解析(CreateOffer/CreateAnswer)
-
10.2 SetLocalDescription 与 SetRemoteDescription 流程
-
10.3 JsepTransportController:传输协调器
-
10.4 RtpTransceiver:Unified Plan 收发器
- 网络与连接管理
-
11.1 PortAllocator:网络端口分配
-
11.2 ICE 候选收集(主机、srflx、relay)
-
11.3 ICE 连接探测与选路
-
11.4 网络切换(Network Switching)与连接迁移
- 媒体编解码与处理
-
12.1 VideoEncoderFactory:视频编码器工厂
-
12.2 VP8/VP9/H.264 编码器实现
-
12.3 Opus 音频编码器
-
12.4 FEC、NACK、PLI:丢包恢复机制
-
12.5 JitterBuffer:抖动缓冲与重排序
- QoS 与拥塞控制
-
13.1 带宽估计(GCC 算法)
-
13.2 码率自适应与分辨率调整
-
13.3 RTCP 反馈机制(SR/RR、REMB、Transport-CC)
-
13.4 Simulcast 动态切换
第三部分:开源库与生态篇(扩展应用) 14. WebRTC 客户端 SDK
-
14.1 官方 SDK:JavaScript、iOS、Android
-
14.2 第三方封装:Flutter WebRTC、React Native WebRTC
-
14.3 桌面应用:Electron WebRTC 集成
- WebRTC 服务端框架
-
15.1 Pion WebRTC(Go):纯 Go 实现,轻量级 SFU
-
15.2 Mediasoup(Node.js):高性能 SFU,TypeScript 实现
- 信令服务器方案
-
16.1 WebSocket + Redis:分布式信令架构
-
16.2 gRPC + Protobuf:高性能信令
-
16.3 UDP 实现方案:QUIC
-
16.4 UDP 实现方案:DataChannel
-
16.5 UDP 实现方案: WebTransport
- TURN/STUN 服务器
-
17.1 Coturn:开源 TURN/STUN 服务器部署
-
17.2 公有云 TURN 服务对比(腾讯云、阿里云、AWS)
-
17.3 TURN 服务器性能优化
- WebRTC 测试与监控
-
18.1 WebRTC Internals:Chrome 内置调试工具
-
18.2 testRTC:自动化质量测试平台
-
18.3 Prometheus + Grafana:服务端监控方案
-
18.4 客户端质量监控 SDK 设计
第四部分:实战应用篇(企业级方案) 20. 1v1 视频通话实现
-
20.1 端到端 P2P 方案(含信令服务器)
-
20.2 前端实现:Vue/React + WebRTC API
-
20.3 弱网优化与断线重连
- 多人视频会议实现
-
21.1 SFU 架构设计(基于 Pion)
-
21.2 房间管理与用户状态同步
-
21.3 画廊模式与演讲者模式
-
21.4 Simulcast 实现与动态订阅
- 高级功能实现
-
23.1 美颜滤镜与虚拟背景(Canvas + WebGL)
-
23.2 云端录制方案(FFmpeg + 媒体合成)
-
23.3 实时转写与字幕(ASR 集成)
-
23.4 AI 降噪与回声消除
- 性能优化与最佳实践
-
24.1 客户端性能优化(CPU、内存、带宽)
-
24.2 服务端扩展性设计(负载均衡、级联)
-
24.3 跨地域部署与就近接入
-
24.4 安全加固:端到端加密、防盗链
- 问题排查与调优
-
25.1 常见问题:黑屏、无声、卡顿、延迟
-
25.2 网络问题诊断(ICE 失败、TURN 回退)
-
25.3 编解码问题定位
-
25.4 生产环境监控告警体系
- WebRTC 未来趋势
-
26.1 WebRTC 1.0 → NV(下一代版本)
-
26.2 AV1 编码器与 SVC
-
26.3 WebTransport 与 WebCodecs
-
26.4 AI + WebRTC:智能路由、画质增强
附录 A. WebRTC 标准与 RFC 文档导读
-
RFC 8825-8854:WebRTC 核心规范
-
W3C WebRTC 1.0 API 规范 B. 开发资源推荐
-
官方文档、GitHub 仓库、技术博客
-
WebRTC 社区与开发者论坛 C. 术语表
-
WebRTC 常用术语中英对照