WebRTC

什么是 WebRTC?

WebRTC(Web 实时通信)是一种开源技术,无需额外的插件或软件即可在浏览器和设备之间直接实现实时音频、视频和数据传输。它广泛用于视频会议、直播、在线游戏和点对点 (P2P) 文件共享。WebRTC 由 Google 开发,并由 W3C(万维网联盟)和 IETF(互联网工程任务组)标准化。Chrome、Firefox、Edge 和 Safari 等主流浏览器都支持它,使其成为 Web 实时通信的关键技术。

WebRTC 的工作原理

WebRTC 使用几个关键组件建立直接点对点 (P2P) 连接:

  • 信令:通过 WebSockets 或 SIP 等外部协议交换元数据(例如 IP 地址、会话详细信息)以启动连接。

  • STUN/TURN 服务器:帮助绕过防火墙和 NAT 限制,确保连接性。

  • 对等连接:使用安全实时传输协议(SRTP)加密媒体流和DataChannel API进行P2P数据交换。

一旦建立,WebRTC 就可以允许用户之间进行低延迟、加密和高质量的媒体传输。

主要特点

  • 低延迟:支持亚秒级通信,非常适合实时互动。

  • 端到端加密:使用 DTLS-SRTP 进行安全媒体和数据传输。

  • 跨平台兼容性:适用于网络、移动和嵌入式系统。

  • 自适应网络处理:根据网络状况动态调整媒体质量。

  • 无需额外的软件:在现代浏览器中本地运行。

WebRTC 与其他流媒体协议

特征WebRTC HLSS短跑实时消息协议
延迟亚秒级(<500 毫秒) 5-30秒3-10秒2-5秒
传输协议UDP(SRTP、SCTP、DTLS) HTTP(基于 TCP) HTTP(基于 TCP) TCP(实时消息协议)
理想用例视频通话、游戏、实时聊天OTT、VOD、直播OTT、VOD、自适应流媒体旧版直播
P2P 支持是的
加密是的否(除非经过 DRM 加密)否(除非经过 DRM 加密)

挑战与考虑

  • 可扩展性:P2P 连接在多用户场景中需要大量带宽。

  • 防火墙和 NAT 问题:可能需要 STUN/TURN 服务器实现连接。

  • 有限的 CDN 支持:与 HLS/DASH 不同,WebRTC 并未针对传统 CDN 交付进行优化。

为了增强可扩展性,许多平台将 WebRTC 与选择性转发单元 (SFU) 或多点控制单元 (MCU) 集成,以处理大规模实时通信。

结论

WebRTC 是实时交互式通信的关键技术,可提供低延迟、安全和浏览器原生功能。虽然它在视频会议、游戏和实时互动等应用中表现出色,但大规模部署需要与媒体服务器或 CDN 混合使用,以提高效率。