1、WebRTC 是什么?

Web Real-Time Communication(网页实时通信),是浏览器原生支持的实时音视频通信技术,无需安装插件或客户端,可直接在浏览器之间实现点对点(P2P)通信。

核心目标:让浏览器具备实时数据传输能力(音视频、文本、文件等),常用于视频会议、直播连麦、在线教育等场景。

2、WebRTC 的角色定位

核心在客户端(浏览器)

WebRTC 是 浏览器内置的 API 和协议栈(如 getUserMedia、RTCPeerConnection 等),用于在 客户端之间直接建立实时连接(如音视频流、数据传输)。

举例:当你用浏览器打开腾讯会议时,WebRTC 负责在你的浏览器和对方浏览器之间直接传输音视频数据,无需依赖中间服务器转发(除非无法直连时才通过服务器中转)。

需要服务端辅助

虽然 WebRTC 支持客户端直连,但仍需服务端完成以下关键任务:

信令交互(Signaling):客户端需通过服务端交换连接元数据(如 IP 地址、端口、编解码参数等),这是建立 P2P 连接的前提(类似打电话前先通过短信约定时间)。

NAT 穿透失败时的中继:若客户端因防火墙限制无法直连,需通过服务端中转数据(此时服务端作为 “中继服务器”)。

房间管理、用户鉴权:多人会议场景中,服务端负责管理用户列表、房间创建 / 销毁等逻

3、WebRTC架构

Web API 层:由 W3C 组织编辑制定,是面向 Web 开发者的 JavaScript API,如RTCPeerConnection用于在浏览器间建立直接通讯,DataChannel实现节点间双向数据传输 。通过这些 API,开发者能轻松开发网络视频聊天等 Web 应用。

传输层:

  • RTP Stack 协议栈:即 Real - Time Protocol(实时协议) ,用于音视频数据的实时传输。
  • STUN/ICE:STUN(Session Traversal Utilities for NAT ,NAT 会话穿越应用程序)和 ICE(Interactive - – Connectivity Establishment ,交互式连通建立)用于建立不同类型网络间的呼叫连接,实现 NAT 穿透。
  • SRTP:安全实时传输协议(Secure Real - Time Transport Protocol),对传输的音视频数据进行加密 。Multiplexing:复用技术,提高传输效率 。

音频引擎(VoiceEngine) :

  • 编解码器:iSAC(Internet Speech Audio Codec)是针对 VoIP 和音频流的宽带及超宽带音频编解码器,为默认编解码器;iLBC(Internet Low Bitrate Codec)是 VoIP 音频流的窄带语音编解码器 。
  • NetEQ for Voice:具备自适应抖动控制和语音包丢失隐藏算法,可适应网络环境变化,保障音质 。
  • 回声消除(Echo Canceler):消除麦克风采集到的回声 。
  • 噪声抑制(Noise Reduction):降低特定背景噪声 。

里面的音频引擎有人已经摘除出来:Making sure you're not a bot!

视频引擎(VideoEngine) :

  • VP8 编解码器:是默认视频图像编解码器,针对低延迟设计,适合实时通信 。
  • 视频抖动缓冲器(Video jitter buffer):降低视频抖动和数据包丢失带来的不良影响 。
  • 图像增强(Image enhancements):对采集图像进行明暗度检测、颜色增强、降噪等处理,提升视频质量

4、webRTC的应用场景

  • 操作系统兼容:WebRTC 具备跨操作系统的兼容性,在移动平台方面,支持主流的 Android 和 iOS 系统 。在 PC 端,对 Windows、macOS、Linux 等常见操作系统也能很好适配。就像在 Android 手机和平板上可借助相关应用基于 WebRTC 实现实时音视频通话;在 Windows 电脑上用浏览器访问视频会议网站,也能基于 WebRTC 技术进行实时交流。
  • 浏览器适配:WebRTC 是浏览器原生支持的技术,主流浏览器如 Chrome、Firefox 等在移动和 PC 端均支持 WebRTC 。这意味着开发者基于 WebRTC 开发的实时通信应用,用户无需额外安装插件,直接在浏览器中就能使用,使用便捷性高。

参考来源:Pavel Han 微信公众号

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐