WebRTC基础实践 - 1. WebRTC简介

WebRTC 是一个开源的实时通信项目, 主要目标是对Web/原生App平台上的语音、视频、以及数据传输等实时通讯提供支持。

WebRTC 主要包括以下 JavaScript API(点击链接可查看相关demo)。

  • getUserMedia(): 获取用户设备的音频和视频.
  • MediaRecorder: 录制音频和视频.
  • RTCPeerConnection: 流式传输两个客户端之间的音频与视频.
  • RTCDataChannel: 在两个客户端之间传输数据流.

WebRTC的平台支持情况

目前, PC版和Android版的 Firefox、Opera 和 Chrome 浏览器都支持WebRTC。 此外、iOS和Android的一些原生App也支持WebRTC。

译者注: 国内使用量巨大的360浏览器、搜狗浏览器兼容性基本和Chrome一致。当然, 推荐使用最新的版本(当前时间: 2018年6月28日)。

信令(signaling)

WebRTC 通过 RTCPeerConnection 在浏览器之间进行流数据传输, 但还需要一种机制, 来协调通信以及发送控制指令, 这个过程就叫做信令控制. WebRTC 没有规定具体使用的协议或方法。

在本教程中, 我们使用 Socket.IO 来传递消息, 当然也可以使用 其他实现。

STUN和TURN简介

WebRTC 是基于点对点(peer-to-peer)网络设计的, 在理想环境中, 双方通过路由器进行直连. 但在现实世界中, 两个客户端之间, 需要穿透防火墙以及 NAT 网关, 如果直连失败, 则需要回退降级。所以, 为了应对各种复杂的网络环境, WebRTC API 需要使用 STUN 服务器的帮助, 来获取双方的公网IP, 如果对等连接失败, 则需要使用 TURN 服务器作为中继服务器. 现实世界中的网络环境是什么样子的呢, 请参考 WebRTC in the real world

WebRTC的安全性

WebRTC的所有组件强制加密. 相关的JavaScript API也只能在安全的域名中使用(即 HTTPS 或者 localhost). 但WebRTC标准没有指定信令机制, 所以需要开发者确保使用了安全传输协议。

更多信息和资源, 请参考: http://webrtc.org/start

相关词汇对照:

  • capture : 获取、抓取
  • audio : 音频
  • video : 视频
  • stream : 流
  • data stream : 数据流
  • record : 录制、记录
  • signaling : 信令
  • Encryption : 加密
  • relay server : 中继服务器
  • peer-to-peer: 点对点网络

原文链接: https://codelabs.developers.google.com/codelabs/webrtc-web/#0

翻译人员: 铁锚 - https://blog.csdn.net/renfufei

翻译日期: 2018年06月28日

WebRTC基础实践 系列文章目录如下:

  • 1. WebRTC简介
  • 2. WebRTC课程概述
  • 3. 获取示例代码
  • 4. 获取摄像头的视频流
  • 5. 通过RTCPeerConnection传输流媒体视频
  • 6. 通过RTCDataChannel传输数据
  • 7. 配置信令服务
  • 8. 集成对等通信和信令服务
  • 9. 拍照并传给对方
  • 10. 总结

你可能感兴趣的:(WebRTC基础实践)