双向音视频通信系统的客户端是一个复杂的子系统,
它比起单向直播系统的推流客户端,播放客户端都要复杂,
因为它需要在采集本地音视频推送到服务端的同时,还要从服务端接收音视频数据进行播放。
而对于真正的实际生产用的客户端来说,
它还需要有完整的业务逻辑实现,良好的健壮性,并适配各种平台,这更增加它的复杂度。
本文介绍了一个完整的客户端的媒体引擎的基本框架,并对其核心工作原理做了介绍。
1. 客户端媒体引擎架构
下图是客户端媒体引擎的架构图:

平台接入层:是对整个SDK的封装,以API的形式,提供给各个平台客户端的业务层调用;
设备适配层:是根据不同的平台,对硬件采集、渲染设备的封装。
媒体引擎层:它包含有三种数据流(即媒体流,日志流,信令流) 的处理,
而媒体流又分成视频流和音频流。
网络传输层:它包含有三种协议的网络数据传输,
使用基于UDP的RTP/RTCP协议来传输媒体数据,
使用基于PB的TCP协议来传输信令数据,
使用基于HTTP协议来传输日志数据。
2. 视频流工作原理
下图是视频流的数据流程图:
本文介绍了客户端媒体引擎在双向音视频通信系统中的架构,包括平台接入层、设备适配层、媒体引擎层和网络传输层。媒体引擎层处理媒体流、日志流和信令流,其中视频流通过RTP/RTCP协议传输,QoS匹配和VQE确保质量。接收端通过JitterBuffer处理网络抖动,解码后进行播放,同时反馈QoS信息调整发送端参数。
订阅专栏 解锁全文
449

被折叠的 条评论
为什么被折叠?



