WebRTC | 原理、架构、框架目录、运行机制、核心类、PeerConnection调用过程等详解...

架构

  • 整理分为两层:
    应用层、核心层

  • 绿色部分是核心部分,
    是WebRTC提供的核心功能;

  • 紫色部分是浏览器提供的JS的API层;

    浏览器对WebRTC核心层的C++ API 做了一层封装,
    封装成了JS接口;

  • 最上面的箭头是上层应用了,
    上层应用 可以在 浏览器中 直接访问 浏览器提供的API;

  • 最终调用到核心层【蓝色虚线框、可重载!!】

WebRTC核心层

  • C++ API:API数量较少,主要是PeerConnection;
    (PeerConnection的API又包含传输质量、传输质量报告、各种统计数据、各种流等)
    【设计技巧:
    对于上层来说,提供的API简单,方便应用层开发;
    内部比较复杂;】

  • Session层【上下文管理层】:
    如应用创建了音频、视频、非音视频的数据传输,
    都可以在Session层做处理,做管理相关的逻辑;

  • 【最重要】引擎层/传输层【核心】

    • 音频、视频、传输 解耦

    • 音频引擎:【Voice Engine】
      ISAC/ILBC 编解码;
      NetEQ 【Buffer】 网络适配、防止网络抖动;
      回音消除(echo canceler):
      音视频重点,决定产品质量,
      WebRTC里提供了相关非常成熟的算法,开发时只需要调节参数即可;
      降噪(Noise Reduction)、自动增益;

    • 视频引擎:【Video Engine】
      VP8、openH264 编解码;
      Video jitter buffer:防止视频抖动;
      Image enhancements:图像增强;

    • 传输【Transport】
      底层用的UDP,上层用的SRTP【即安全的、加密后的RTP】;
      Multiplexing:多个流复用同一个通道;
      P2P层【包括 STUN+TURN+ICE】;
      所有的
      音频视频的接收与发送,
      都是通过传输层去做的,
      传输层包括了泄漏的检测、网络链路质量检测,
      根据情况估算网络带宽,根据网络带宽进行音视频、文件等非音视频的传输;

  • 硬件层
    视频采集、渲染;
    音频采集;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌川江雪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值