接口层 : webAPI主要用以浏览器访问, C++ API 用于native开发
session层 : 包括呼叫、媒体协商逻辑
核心引擎层 : 音频引擎、视频引擎、传输引擎(SRTP 保证数据安全、多路复用、P2P Nat穿越)
设备层 : 采集数据、网络收发数据
音频网络数据 - 解复用 - NetEQ平滑处理 - 解码 - 3A处理 - 播放
视频网络数据 - 解复用 - Jitter Buffer平滑处理 - 解码 - 图像增强 - 渲染
采集 - 编码 - 缓冲 - 进入传输层 - SRTP 保证数据的安全性 - 多路复用 - P2P
发送侧 :
采集 - 编码 - RTP/RTCP打包 - 平滑处理 - 网络传输
接收侧 :
网络数据包 - RTCP/ RTP - 拆包音/视频数据
音频包 - NetEQ(包括与视频同步) - 解码 - 3A处理 - 播放
视频包 - JitterBuffer(包括与音频同步) - 解码 - 图像增强 - 渲染
RTCP包 - 流控模块
流控处理 :
- 基于丢包的处理
- 基于延迟的处理 : REMB、TCC
- 如果传输速率高于当前带宽: 编码器减少码流的输出; 平滑处理模块减少码流的发送量
回音消除 :
解码数据后 输送到缓冲区中, 由采集端根据信号进行回音消除