WebRTC从零开始(零)
前言
为什么我要学习webRTC呢?因为在日本的研究中需要用到,虽然说也不仅仅是一个webRTC,还有前端、后端等等方面。
最近好像 chatGPT 很火,我们来看看它是怎么评价webRTC的吧!
我的评价是chatGPT说的对!
说得对,但是我还是不知道什么是webRTC捏。所以,还是来系统学习下吧。
我学习的链接依旧是B站上的课程。->点击这里<-
webRTC简介
什么是webRTC
webRTC是谷歌公司下的提供互联网间网络通信服务的平台,简单来说,学会了webRTC,就可以开发一个网络聊天平台了,文字、音频、视频通信统统可以搞定。
webRTC框架
这张图很抽象,我们将课程中的内容复述一下:
- 紫色部分是Web应用开发者API层
- 蓝色实线部分是面向浏览器厂商的API层
- 蓝色虚线部分浏览器厂商可以自定义实现
特别是图中的PeerConnection为Web开发人员提供了一个抽象,从复杂的内部结构中抽象出来。
webRTC通话原理
在了解通话原理之前,我们要先思考一个问题,两个不同网络环境的浏览器,要实现点对点的实时音视频对话,难点在哪里?
你可能会说,哪哪都是难点啊,怎么获取摄像头或者麦克风的权限?怎么联络?
但实际上,难点在于网络的部分。
媒体协商
音视频通话要涉及到各种音视频编码,如果通话两方不支持一致的编码,显然,可能一边就黑屏了,或者就没声儿了。所以要让两方能够正常通话,我们要找到通话中一致的编码。举例如下:
在这张图里,我们会发现,两方都支持h264编码。那我们怎么知道两方都支持h264编码呢?
有一个专门的协议 ,称为Session Description Protocol (SDP),可用于描述上述这类信息,在WebRTC中,参与视频通讯的双方必须先交换SDP信息,这样双方才能知根知底,而交换SDP的过程,也称为"媒体协商"。
网络协商
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Gai's blog!
评论