前言

为什么我要学习webRTC呢?因为在日本的研究中需要用到,虽然说也不仅仅是一个webRTC,还有前端、后端等等方面。

最近好像 chatGPT 很火,我们来看看它是怎么评价webRTC的吧!

我的评价是chatGPT说的对!
说得对,但是我还是不知道什么是webRTC捏。所以,还是来系统学习下吧。

我学习的链接依旧是B站上的课程。->点击这里<-

webRTC简介

什么是webRTC

webRTC是谷歌公司下的提供互联网间网络通信服务的平台,简单来说,学会了webRTC,就可以开发一个网络聊天平台了,文字、音频、视频通信统统可以搞定。

webRTC框架

这张图很抽象,我们将课程中的内容复述一下:

  1. 紫色部分是Web应用开发者API层
  2. 蓝色实线部分是面向浏览器厂商的API层
  3. 蓝色虚线部分浏览器厂商可以自定义实现

特别是图中的PeerConnection为Web开发人员提供了一个抽象,从复杂的内部结构中抽象出来。

webRTC通话原理

在了解通话原理之前,我们要先思考一个问题,两个不同网络环境的浏览器,要实现点对点的实时音视频对话,难点在哪里?
你可能会说,哪哪都是难点啊,怎么获取摄像头或者麦克风的权限?怎么联络?
但实际上,难点在于网络的部分。

媒体协商

音视频通话要涉及到各种音视频编码,如果通话两方不支持一致的编码,显然,可能一边就黑屏了,或者就没声儿了。所以要让两方能够正常通话,我们要找到通话中一致的编码。举例如下:

在这张图里,我们会发现,两方都支持h264编码。那我们怎么知道两方都支持h264编码呢?
有一个专门的协议 ,称为Session Description Protocol (SDP),可用于描述上述这类信息,在WebRTC中,参与视频通讯的双方必须先交换SDP信息,这样双方才能知根知底,而交换SDP的过程,也称为"媒体协商"。

网络协商