当前位置: 首页 > news >正文

【WebRTC---源码篇】(二十二)WebRTC的混音处理

音频混音主力

音频混音主体主要通过(重采样) + (混音)为主

音频重采样

内容实现是在webrtc::voe中实现的,下面来对重采样全流程逐一分析 。

void RemixAndResample(const AudioFrame& src_frame,//源音频数据帧PushResampler<int16_t>* resampler,//重采样对象AudioFrame* dst_frame) {//重采样后的音频帧RemixAndResample(src_frame.data(), src_frame.samples_per_channel_,src_frame.num_channels_, src_frame.sample_rate_hz_,resampler, dst_frame);dst_frame->timestamp_ = src_frame.timestamp_;dst_frame->elapsed_time_ms_ = src_frame.elapsed_time_ms_;dst_frame->ntp_time_ms_ = src_frame.ntp_time_ms_;dst_frame->packet_infos_ = src_frame.packet_infos_;
}void RemixAndResample(const int16_t* src_data,size_t samples_per_channel,size_t num_channels,int sample_rate_hz,
http://www.lryc.cn/news/104529.html

相关文章:

  • MTK system_server 卡死导致手机重启案例分析
  • 加强 Kubernetes 能力:利用 CRD 定义多版本资源的实现方式
  • 区块链应用 DApp 开发需要掌握的技能
  • 关于新版本selenium定位元素报错:‘WebDriver‘ object has no attribute ‘find_element_by_id‘等问题
  • c++通过自然语言处理技术分析语音信号音高
  • [pymc3][python]pymc3安装后测试代码2
  • Go语言time库,时间和日期相关的操作方法
  • JVM总结笔记
  • C++ 缓存再排序,解决多线程处理后的乱序问题,不知道思路对不对[挠下巴]
  • 华为数通HCIA-地址分类及子网划分
  • Linux第七章之gdb与makefile使用
  • Mycat-Balance使用指南
  • 玩转顺序表——【数据结构】
  • SSE(Server-Sent Events,服务器推送事件)和sockets(套接字)通信区别
  • 【设计模式——学习笔记】23种设计模式——代理模式Proxy(原理讲解+应用场景介绍+案例介绍+Java代码实现)
  • 大学英语四新视野 课后习题+答案翻译 Unit1~Unit8
  • Java入门指南:Java语言优势及其特点
  • Jenkins 节点该如何管理?
  • hugging face下载数据集
  • 解决Django报错 : No module named ‘MySQLdb‘
  • 【Docker】Docker的优势、与虚拟机技术的区别、三个重要概念和架构及工作原理详细讲解
  • 【论文笔记】RCM-Fusion: Radar-Camera Multi-Level Fusion for 3D Object Detection
  • STM32-风速传感器(ADC)
  • 【conda】配置国内镜像源
  • python森林生物量(蓄积量)数据处理到随机森林估算全流程
  • 使用Freemarker模版导出xls文件使用excel打开提示文件损坏
  • 初识Linux
  • python——案例六:清空列表用clear()方法实现
  • 测试|Selenium之WebDriver常见API使用
  • 手把手教你uniapp和小程序分包