• WebRTC


    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


    WebRTC介绍

    概述

    1.音视频处理+即使通信的开源库
    2.谷歌开源
    3.跨平台的多媒体框架

    功能

    1.音视频实时互动
    2.游戏、即使通信、文件传输
    3.传输、音视频处理(回音消除,降噪)

    你能学到什么?

    1.音视频设备访问与管理
    2.音视频数据的采集
    3.数据的传输与实时互动


    WebRTC架构

    架构图

    在这里插入图片描述
    Web API层: 面向开发者提供标准API(javascirpt),前端应用通过这一层接入使用WebRTC能力。

    C++ API层: 面向浏览器开发者,使浏览器制造商能够轻松地实现Web API方案。

    音频引擎(VoiceEngine): 音频引擎是一系列音频多媒体处理的框架,包括从视频采集卡到网络传输端等整个解决方案。

    1. iSAC/iLBC/Opus等编解码。
    2. NetEQ语音信号处理。
    3. 回声消除和降噪。

    视频引擎(VideoEngine): 是一系列视频处理的整体框架,从摄像头采集视频、视频信息网络传输到视频显示整个完整过程的解决方案。

    1. VP8编解码。
    2. jitter buffer:动态抖动缓冲。
    3. Image enhancements:图像增益。

    传输(Transport): 传输 / 会话层,会话协商 + NAT穿透组件。

    1. RTP 实时协议。
    2. 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服务器

    配置环境

    自行配置

    项目源码

    传送门1
    传送门2

    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;
    }
    
    匿名函数 ()=>{
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    webRTC设备管理

    传送门

    未完待续。。。

  • 相关阅读:
    297. 二叉树的序列化与反序列化
    云服务器如何选?腾讯云2核2G3M云服务器88元一年!
    Swift--多条件排序
    Java之多线程
    C++协程
    环形链表-力扣
    【基操】ArcGIS三种筛选提取要素的方法
    【web实现右侧弹窗】JS+CSS如何实现右侧缓慢弹窗动态效果『附完整源码下载』
    平衡三进制分布式计算
    基于低代码平台打造高度灵活性的OA系统
  • 原文地址:https://blog.csdn.net/beijingFC/article/details/126915825