提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
WebRTC介绍
概述
1.音视频处理+即使通信的开源库
2.谷歌开源
3.跨平台的多媒体框架
功能
1.音视频实时互动
2.游戏、即使通信、文件传输
3.传输、音视频处理(回音消除,降噪)
你能学到什么?
1.音视频设备访问与管理
2.音视频数据的采集
3.数据的传输与实时互动
WebRTC架构
架构图
Web API层: 面向开发者提供标准API(javascirpt),前端应用通过这一层接入使用WebRTC能力。
C++ API层: 面向浏览器开发者,使浏览器制造商能够轻松地实现Web API方案。
音频引擎(VoiceEngine): 音频引擎是一系列音频多媒体处理的框架,包括从视频采集卡到网络传输端等整个解决方案。
- iSAC/iLBC/Opus等编解码。
- NetEQ语音信号处理。
- 回声消除和降噪。
视频引擎(VideoEngine): 是一系列视频处理的整体框架,从摄像头采集视频、视频信息网络传输到视频显示整个完整过程的解决方案。
- VP8编解码。
- jitter buffer:动态抖动缓冲。
- Image enhancements:图像增益。
传输(Transport): 传输 / 会话层,会话协商 + NAT穿透组件。
- RTP 实时协议。
- P2P传输 STUN+TRUN+ICE实现的网络穿越。
硬件模块: 音视频的硬件捕获以及NetWork IO相关。
目录结构
WebRTC运行机制
轨与流
1.Track
2.MediaStream
WebRTC的重要类
- MediaStream( 捕获用户设备的音、视频流)
MediaStream 接口是一个媒体内容的流。一个流包含几个 轨道,比如视频和音频轨道。
一个 MediaStream 包含了0-N 条 MediaStreamTrack(音、视频源),MediaStream 是 MediaStreamTrack 的合集,MediaStreamTrack 是 WebRTC 的基本媒体单位,可包含音频、视频或其它轨道类型。
- RTCPeerConnection(在用户之间点对点的传输音频和视频)
RTCPeerConnection() 构造函数,返回一个新建的 RTCPeerConnection 实例,它代表了本地端机器与远端机器的一条连接。
提供点对点的传输音、视频数据,不需要服务器中转,但是需要服务器建立信道。如果点对点传输失败,也可以通过服务器进行中转。
- RTCDataChannel(高吞吐量、低延时的点对点数据传输信道)
RTCDataChannel 接口代表在两者之间建立了一个双向数据通道的连接。 RTCDataChannel 可传输任何类型的数据,是建立在PeerConnection 基础之上的,不可单独使用。
最简单的nodejs web服务器
配置环境
自行配置
项目源码
JavaScript必备知识
调试基础
var a; //局部变量
let a; //全局变量
'hello world' //字符串
[1,'hello',2] //数组
null undefined //空
true false //
算数运算 逻辑运算 逻辑运算 与C一致
普通的for循环和while循环是一致的
for(var a in array){}
函数 function func(...){
...
return ret;
}
匿名函数 ()=>{
}
webRTC设备管理
未完待续。。。