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

音频引擎的架构图

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

音频引擎的数据流转图

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

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

音频引擎中的核心对象

  • AudioDeviceModule就是ADM,与系统中的音频设备打交道。
  • AudioProcessing 音频处理算法(3A算法)。
  • AudioMixer音频混音。
  • AudioState是一个对象管理及音频数据流转。它管理其它三个对象,并且管理所有的call对象中AudioStream
  • 音频编解码对象,AudioEncoderFactoryAudioDecoderFactory
相关推荐
FreeDw资源库3 小时前
功能强大!开源免费的视频翻译、音视频转录工具
音视频·音视频翻译
OperateCode14 小时前
AutoVideoMerge:让二刷更沉浸的自动化视频处理脚本工具
python·opencv·ffmpeg
早睡身体好~1 天前
【lubancat】鲁班猫4实现开机后自动播放视频
音视频·linux开发
小幽余生不加糖1 天前
电路方案分析(二十二)适用于音频应用的25-50W反激电源方案
人工智能·笔记·学习·音视频
胡耀超1 天前
DataOceanAI Dolphin(ffmpeg音频转化教程) 多语言(中国方言)语音识别系统部署与应用指南
python·深度学习·ffmpeg·音视频·语音识别·多模态·asr
byxdaz1 天前
FFmpeg QoS 处理
ffmpeg
shix .2 天前
bilibili视频总结
音视频
lovep12 天前
音频-文本对比学习:LARGE-SCALE CONTRASTIVE LANGUAGE-AUDIO PRETRAINING论文翻译和理解
音视频·glap·音频理解·音频对比学习·laion-audio·音频检索
codelancera3 天前
ffmpeg-调整视频分辨率
ffmpeg·音视频
天向上3 天前
手机端的音视频界面或者图片文档界面共享给大屏
智能手机·音视频·多平台·手机投屏·多屏互动