WebRTC 概述

3 阅读4分钟

WebRTC 概述

章节导读

本章从 WebRTC 的定义、历史出发,介绍其三大核心能力,剖析完整架构,并与传统方案深度对比,帮助你快速建立 WebRTC 知识体系。


1.1 什么是 WebRTC?

定义

WebRTC(Web Real-Time Communication)是一个开源项目,旨在让浏览器和移动应用通过简单的 API 实现实时音视频通信和数据传输。

发展历程

  • 2010 年:Google 收购 GIPS(Global IP Solutions),获得核心音视频技术

  • 2011 年 5 月:WebRTC 项目开源

  • 2017 年:Safari 和 Edge 开始支持

  • 2021 年 1 月:W3C 和 IETF 正式发布标准

  • 2024 年:全球浏览器覆盖率超过 90%

应用场景

在线教育

  • VIPKID、腾讯课堂、作业帮

  • 实时互动课堂、双师课堂

视频会议

  • Zoom、飞书、钉钉、腾讯会议

  • Google Meet、Microsoft Teams

其他场景

  • 在线客服

  • 远程医疗

  • 社交娱乐

  • IoT 设备监控

  • 实时游戏


1.2 WebRTC 核心能力

🎤 音视频通话

音频能力

  • 编解码器:Opus(最优音频编解码)

  • 音频处理:

  • AEC(回声消除)

  • ANS(噪声抑制)

  • AGC(自动增益控制)

  • VAD(语音活动检测)

视频能力

  • 编解码器:VP8、VP9、H.264、AV1

  • 自适应码率:根据网络动态调整

  • 分辨率切换:360p → 720p → 1080p

🖥️ 屏幕共享

  • 全屏共享:分享整个桌面

  • 窗口共享:分享指定应用窗口

  • 标签页共享:仅分享浏览器标签(Chrome)

  • 高帧率模式:支持 60fps,适配游戏/视频

  • 系统音频:同时捕获屏幕和系统声音

📦 数据传输(DataChannel)

特性

  • 基于 SCTP 协议

  • 支持可靠/不可靠传输模式

  • 有序/无序消息传递

  • 低延迟(< 100ms)

应用场景

  • 文件传输(点对点,无需服务器)

  • 游戏状态同步

  • 白板协同编辑

  • 实时字幕传输


1.3 WebRTC 架构全景图

WebRTC 是一套端到端实时音视频 + 数据通信的完整技术栈,采用分层 + 模块化设计,从上层应用到底层硬件 / 网络清晰解耦,整体可划分为四层架构(应用层 → Web API 层 → Native C++ API / 适配层 → 核心引擎层),并配套信令、网络穿透、安全三大支撑体系。

整体架构

关键模块

1. 媒体采集与渲染

  • Camera、Microphone 采集

  • Audio/Video Rendering

2. 音视频处理引擎

  • 编解码、前后处理

  • 质量优化、自适应

3. 传输模块

  • 拥塞控制、丢包重传

  • 带宽估计、FEC

4. 网络层

  • NAT 穿透(ICE)

  • P2P 连接建立


1.4 WebRTC vs 传统音视频方案

延迟对比

| 方案 | 典型延迟 | 适用场景 | | --- | --- | --- | | WebRTC | 100-300ms | 实时互动 | | RTMP | 3-5s | 直播推流 | | HLS | 10-30s | 大规模直播 |

全面对比

| 维度 | WebRTC | RTMP/HLS | 对比 | | --- | --- | --- | --- | | 延迟 | 100-300ms | 3-30s | ✅ WebRTC 胜 | | 部署 | 浏览器原生 | 需插件/客户端 | ✅ WebRTC 胜 | | 穿透 | 自动 ICE | 需手动配置 | ✅ WebRTC 胜 | | 加密 | 强制 DTLS-SRTP | 可选 | ✅ WebRTC 胜 | | 互动性 | 双向实时 | 单向 | ✅ WebRTC 胜 | | 并发 | P2P 受限 | 万人级 | ❌ 传统方案胜 | | 成本 | P2P 节省 | 中心化高 | ✅ WebRTC 胜 |

技术选型建议

✅ 选择 WebRTC 的场景:

  • 视频会议(飞书、腾讯会议)

  • 在线教育(小班课、1v1)

  • 实时客服(在线咨询)

  • 游戏连麦(实时语音)

  • 核心要求:延迟 < 500ms,双向互动

✅ 选择传统方案的场景:

  • 大型直播(演唱会、赛事)

  • 点播回看

  • CDN 分发

  • 核心要求:万人并发,单向推流

**💡 混合方案:**在实际项目中,很多公司采用混合架构:

  • 小会议室(< 10 人):纯 P2P WebRTC

  • 中型会议(10-50 人):SFU(Selective Forwarding Unit)

  • 大型直播(> 1000 人):WebRTC + CDN 级联


本章小结

通过本章学习,你应该掌握:

✅ WebRTC 定义:开源实时音视频通信框架
✅ 发展历程:2011 年开源,2021 年标准化
✅ 三大能力:音视频、屏幕共享、数据传输
✅ 架构体系:API 层 → 引擎层 → 协议层
✅ 方案对比:超低延迟、自动穿透、强制加密


扩展阅读

  • 📚 WebRTC 官方网站

  • 📄 W3C WebRTC 1.0 标准

  • 📄 RFC 8825: WebRTC Overview

  • 🎥 Google WebRTC YouTube 频道


下期预告

第二章:WebRTC 核心概念

  • MediaStream 与 Track 详解

  • RTCPeerConnection 生命周期

  • SDP 会话描述协议

  • ICE 网络穿透机制


💬 互动讨论
你的项目中使用过 WebRTC 吗?
遇到过哪些技术挑战?
欢迎在评论区分享你的经验!