RTC / WebRTC

WebRTC 简介

WebRTC 让浏览器能够进行实时通信,传输音频、视频和通用数据。它既包含一套开放标准,也包含相应的开源实现。Web 应用通过 JavaScript API 使用这些能力,原生客户端也可以使用相关库。

三个核心接口是 MediaStream(媒体流)、RTCPeerConnection(对等连接)和 RTCDataChannel(数据通道)。

学习资料

WebRTC 技术笔记

  1. WebRTC 相关标准和协议一览
  2. 如何创建 WebRTC 会话一
  3. 如何创建 WebRTC 会话二
  4. WebRTC 之 SDP
  5. 实时传输协议 RTP 和 RTCP
  6. WebRTC 协议之 ROAP (RTCWeb Offer/Answer Protocol) 实时网页提议应答协议
  7. WebRTC 之 MediaRecorder:用你的浏览器录音和录像
  8. WebRTC 之 MediaStream:用你的浏览器拍照
  9. WebRTC 之度量与统计:到底出了什么问题
  10. 通过 WebRTC 共享屏幕很容易
  11. WebRTC 服务器要干些什么
  12. WebRTC 视频基础之一:YUV 格式
  13. H264 视频流的解析
  14. WebRTC 之 Insertable Stream:端到端加密很简单
  15. WebRTC 之 REMB — 接收方带宽估计
  16. 拥塞控制技术笔记一:理论篇
  17. 拥塞控制技术笔记二:Transport wide Congestion control
  18. WebRTC 中的多路复用
  19. WebRTC Simulcast
  20. WebRTC RTX 笔记
  21. WebRTC RED 笔记
  22. 分析网络抓包用 Python 更高效
  23. 如何模拟弱网条件 — 限流、丢包、延迟和抖动

部分笔记沿用原页面的简书文集链接,可在文集中查找对应标题。

我的 WebRTC 示例

  1. Audio API Demo
  2. Audio Worklet Demo
  3. Media Stream Example
  4. Canvas Demo
  5. Desktop Sharing Example
  6. Screen Sharing Example
  7. Local Peer Connection Example
  8. Local Data Channel Example
  9. Statistics Demo
  10. Record API Demo
  11. Chat Demo Example
  12. Video Chat Example
  13. Video API Demo
  14. Web Codecs Demo

  15. WebRTC 实例原页面

  16. WebRTC Samples:媒体采集、屏幕共享、点对点连接和数据通道示例。

标准文档

调试工具

  • Trickle ICE:查看 ICE 候选地址,测试 STUN / TURN 服务器。

技术博客