WebRTC 数据流转

490 阅读1分钟

接口层 : webAPI主要用以浏览器访问, C++ API 用于native开发

session层 : 包括呼叫、媒体协商逻辑

核心引擎层 : 音频引擎、视频引擎、传输引擎(SRTP 保证数据安全、多路复用、P2P Nat穿越)

设备层 : 采集数据、网络收发数据

音频网络数据 - 解复用 - NetEQ平滑处理 - 解码 - 3A处理 - 播放

视频网络数据 - 解复用 - Jitter Buffer平滑处理 - 解码 - 图像增强 - 渲染

采集 - 编码 - 缓冲 - 进入传输层 - SRTP 保证数据的安全性 - 多路复用 - P2P

发送侧 : 

采集 - 编码 - RTP/RTCP打包 - 平滑处理 - 网络传输

接收侧 :

网络数据包 - RTCP/ RTP - 拆包音/视频数据 

音频包 - NetEQ(包括与视频同步) - 解码 - 3A处理 - 播放

视频包 - JitterBuffer(包括与音频同步) - 解码 - 图像增强 - 渲染

RTCP包 - 流控模块 

流控处理 :

  • 基于丢包的处理
  • 基于延迟的处理 : REMB、TCC
  • 如果传输速率高于当前带宽: 编码器减少码流的输出; 平滑处理模块减少码流的发送量

回音消除 : 

解码数据后 输送到缓冲区中, 由采集端根据信号进行回音消除