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

音频引擎的架构图

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

音频引擎的数据流转图

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

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

音频引擎中的核心对象

  • AudioDeviceModule就是ADM,与系统中的音频设备打交道。
  • AudioProcessing 音频处理算法(3A算法)。
  • AudioMixer音频混音。
  • AudioState是一个对象管理及音频数据流转。它管理其它三个对象,并且管理所有的call对象中AudioStream
  • 音频编解码对象,AudioEncoderFactoryAudioDecoderFactory
相关推荐
互联科技报9 小时前
2026年第一季度短视频矩阵视频混剪头部工具市场动态深度解析
人工智能·矩阵·音视频
Digitally10 小时前
如何将 iPad 上的视频无损传输到 Mac
macos·音视频·ipad
码流怪侠10 小时前
FFmpeg 开发实战全解析:从入门到精通(附完整代码示例)
ffmpeg·音视频开发·视频编码
AI25122411 小时前
AI视频生成技术解析:主流软件原理与选型指南
人工智能·音视频
ting945200011 小时前
微软 VibeVoice 万字深度解析:从原理、架构、部署到行业落地,重新定义长音频 AI
人工智能·架构·音视频
山楂树の12 小时前
H.265 (HEVC) 视频解码转逐帧图像 完整实现方案
学习·音视频·h.265
圆弧YH12 小时前
FFmpeg
ffmpeg
911hzh12 小时前
Flutter WebRTC iOS 原理解析:从 getUserMedia 到 Texture,讲清视频采集、纹理渲染与远端通话链路
flutter·ios·webrtc
大强同学12 小时前
用Claude Code把一篇文章自动做成视频,全程不用碰剪辑软件
音视频
郭源潮113 小时前
从8k嘈杂到16k清晰,我是如何使用RNNoise+libresample构建音频降噪管道的?
c++·音视频·实时音视频