- WebRTC音视频实时互动技术:原理、实战与源码分析
- 李超编著
- 523字
- 2021-08-06 14:49:29
2.1 自研直播客户端架构
我们先来了解一下自研直播客户端的架构,如图2.1所示。这是一个最简单的音视频直播客户端架构,通过这张架构图,你大体可以知道自研系统包括了哪些模块。
由图2.1可以知道,一个最简单的直播客户端至少应该包括音视频采集模块、音视频编码模块、网络传输模块、音视频解码模块和音视频渲染模块五大部分。
·音视频采集模块。该模块调用系统的API,从麦克风和摄像读取设备采集音视频数据。音频采集的是PCM数据,视频采集的是YUV数据。
·音视频编码模块。该模块负责将音视频设备上采集的原始数据(PCM、YUV)进行压缩编码。
·网络传输模块。该模块负责将编码后的数据生成RTP包,并通过网络传输给对端;同时,在对端接收RTP数据。
·音视频解码模块。该模块对网络传输模块接收到的压缩数据进行解码,还原为原始数据(PCM、YUV)。
·音视频渲染模块。该模块拿到解码后的数据后,将音频输出到扬声器,将视频渲染到显示器。
图2.1 最简单的音视频客户端架构
通过前面的介绍,相信读者一定觉得自研一个直播客户端好像也不是特别难的事情。但实际上,上面介绍的音视频直播客户端架构是极简化的,甚至都不能称之为直播客户端架构,这里只是给出了一个简化的客户端架构示意图,要将它变为真实的、可编码的架构还需要做不少细化的工作。