从今天开始,我们的文章将进入WebRTC专题!本文不讲技术问题,主要是让童鞋们对WebRTC有一个大概的了解,初步了解下大概需要学习哪些内容。
什么是WebRTC
在百度百科上的定义是这样子的:
WebRTC,名称源自网页即时通信(英语:Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的API。它于2011年6月1日开源并在Google、Mozilla、Opera支持下被纳入万维网联盟的W3C推荐标准。
简单来说WebRTC就是一个可以使我们在浏览器或移动App中直接进行低延迟的音频/视频交流的技术。
同时它还可以进行P2P文件共享,处理大量音频数据,实现在线视频会议等等。也就是我们所说的点对点通讯技术。
WebRTC能做什么
我们知道直播服务是一个主播端采集音视频信息然后到推流到流媒体服务器,然后观众端再从服务器拉流播放的过程,这中间需要经过流媒体服务器中转这一过程。
我们来试想一下为了降低延迟,能不能有一种技术去掉流媒体服务器中转这个过程,将主播端和观众端直接链接通讯呢?
答案是有的,WebRTC就像一个救世主一样,从天而降。
WebRTC提供了视频会议的核心技术,包括音视频的采集、编解码、网络传输、显示等功能,并且还支持跨平台:windows,linux,mac,android等。
目前市面上的各种音视频通讯,包括微信QQ的视频通话、声网等云平台提供的音视频通话SDK无一例外底层都是基于WebRTC实现的。
除此之外,WebRTC还可以作为一个百宝箱,还提供了加密、传输、音频降噪、回声消除等一系列功能。
如何学习WebRTC
对于怎么学习这个事情,就像一千个哈姆雷特一样。适合自己的学习方法才是最好的。笔者在这里不讨论如何学习,这是简单地简述下需要学习的知识点:
1、 学习了解各种服务器的原理和作用
比如说房间服务器、信令服务器、穿墙服务器等它们的提供什么样的功能,在WebRTC中扮演了什么样的角色。
2、 WebRTC的穿墙原理
我们知道互联网用户都处在不同的局域网中,而处在不同的局域网中的终端是无法通过IP直连通讯的,那么WebRTC是如何做到的呢?
3、 学习了解点对点发信的过程
使用了穿墙技术进行打洞之后,如何使用点对点进行通讯呢?比如说SDP协议在点对点通讯中扮演了什么角色呢等等。
4、 学习媒体是如何传输的
这就需要开发者掌握一些音视频的基础知识、音视频的编码知识、以及一些传输协议等。
5、 学习资料
提供一个由声网运营的WebRTC中文网:https://www.webrtc.org.cn/