webrtc音频模块介绍(一) 音频引擎的架构

音频引擎的架构图

  • ADM位于最下层,直接于各种系统的音频设备打交道。
  • 音频引擎的音频处理模块包括: 音频编解码,Mixer(混音),AudioProcess(3A算法)。

音频引擎的数据流转图

音频引擎全局只有一个,由所有的call对象所共享(一个pc对象对应一个call对象),各个call中的stream都会放在引擎的AudioState对象中。

  • 蓝色箭头 是播放时音频流的流程,AudioDeviceBufferAudioTransportMixer中取混音后的数据,Mixer从各AudioReceiveStream取数据混音。 音频数据最终会通过ADM的回放接口播放。
  • 红色箭头是采集音频的流程。
  • 采集的音频只有一个,采集的音频会向多个端发送数据。
  • 接收的音频有多个,多个音频会经过混音变成一个。

音频引擎中的核心对象

  • AudioDeviceModule就是ADM,与系统中的音频设备打交道。
  • AudioProcessing 音频处理算法(3A算法)。
  • AudioMixer音频混音。
  • AudioState是一个对象管理及音频数据流转。它管理其它三个对象,并且管理所有的call对象中AudioStream
  • 音频编解码对象,AudioEncoderFactoryAudioDecoderFactory
相关推荐
美狐美颜SDK开放平台3 小时前
专业直播美颜SDK如何打造?美型功能开发思路与方案分享
大数据·人工智能·音视频·美颜sdk·直播美颜sdk·视频美颜sdk
你好音视频3 小时前
FFmpeg FLV解码器原理深度解析
c++·ffmpeg·音视频
行业探路者4 小时前
如何利用活码生成产品画册二维码?
学习·音视频·语音识别·二维码·设备巡检
web前端进阶者5 小时前
webRTC指定设备加自定义用户头像
音视频·webrtc
vfvfb6 小时前
音频批量加速 mp3批量加速1.5倍
音视频
ACP广源盛139246256736 小时前
GSV6701A@ACP#6701A产品规格详解及产品应用分享
网络·嵌入式硬件·音视频
EasyDSS6 小时前
视频推流平台EasyDSS无人机推流直播在安防监控中的智能应用
音视频·无人机
你好音视频6 小时前
FFmpeg FLV编码器原理深度解析
c++·ffmpeg·音视频
summerkissyou19876 小时前
Android10-Audio-音频焦点申请-调用流程
音视频
胡伯来了7 小时前
17 Transformers - 音频领域的任务类
音视频·transformer·transformers·大数据模型