metaRTC8.0,一个全新架构的webRTC SDK库

概述

metaRTC8.0是metaRTC开源以来架构变化最大的一个版本,是metaIPC3.0等高性能的基础。

metaRTC8.0是一个全新架构版本,并非在metaRTC7.0版本上简单升级,在QOS/语音对讲/内存占用/视频文件录制读取等方面新增多个模块,在弱网对抗/语音对讲/内存优化等效果上有显著提升。

metaRTC8.0在一年多的开发中进行了近200次迭代,metaRTC8.0社区版计划在2025年中推出,敬请期待!

New Feature

新增模块都是纯C实现,都在libmetartccore8工程里。

YangIce

YangIce实现了webRTC ICE FULL-ICE,更适合在公网跨网建立连接。

  • 采集candidates
  • 交互candidates
  • 生成candidate pairs
  • 连通性检测connective check
  • 提名candidate pair

YangPushData

  • YangPushData采用零拷贝技术,减少了大量memcpy操作
  • 降低连接占用内存效果显著,如IPC新增连接占用内存不超过20KB
  • 是YangPacer模块的数据基础

YangFile视频文件录制与读取

  • 纯C实现,不依赖任何第三方库
  • 支持H264/H265/OPUS/G711/AAC视频录制和读取
  • YangFile/YangPacer实现视频文件推流和webRTC点播

YangTls加密模块

  • YangTls实现了TCP Tls加密功能
  • 实现了HTTPS/MQTT/Socket加密传输

YangTwcc(Transport-wide Congestion Control)

  • Twcc是一种新的拥塞算法Sendside BWE的基础
  • Sendside BWE是webRTC多年实践证明优秀的择优选择的拥塞算法
  • YangTwcc模块可以取得丢包和时延等数据,是带宽估算的数据基础

YangBandWidth带宽估算

  • Sendside-BWE基于发送端估算
  • YangBandWidth模块取得rtt(round-trip time)
  • rtt和YangTwcc模块的丢包和时延等数据估算出网络拥塞状况数据

YangPacer模块

  • 参考YangBandWidth取得网络拥塞状况数据调整发送速率
  • YangPacer模块可以将推流视频数据均匀的发送出去
  • webRTC文件点播参考时间戳和网络状况均匀发送出去
  • 视频FEC(开发中)

YangCodec编码控制模块

  • 动态帧率调整
  • 动态码率调整
  • 动态分辨率调整
  • 大小流智能适配
  • 参考YangBandWidth取得网络拥塞状况数据采用上面策略

YangNetEQ模块

NetEQ模块降低网络抖动对音频传输的影响,确保平稳流畅的通话体验

  • YangJitter 降低网络抖动对音频传输的影响
  • YangPLC 丢包补偿技术
  • YangFec Opus自带FEC,G711 FEC(开发中)

YangAudioProcess模块

  • YangAec回声消除
  • YangAgc自适应增益控制
  • YangAns背景噪音抑制
  • YangVad语音动态侦测
  • YangCng舒适噪音生成
  • 纯C实现,不需要第三方库

YangAec回声消除

YangAec会监测扬声器和麦克风拾音器输入之间的回声,并使用算法来抵消回声信号,避免出现回声和延迟以提高语音对讲质量。

复制代码
YangAec *aec;
//aecLib 1:webrtc aec 0:speexdsp aec 2:内置AEC或其他AEC实现
yang_create_rtcaec(session->aec,aecLib);

aec->echoPlayback(aec->session,pcm); 
aec->echoCapture(aec->session, input, pcm);

YangAgc自适应增益控制

YangAgc可以自动检测音频信号强度和自动调整输入和输出音频信号的音量,防止音频音量忽大忽小,保证音频采集和播放的稳定性。

复制代码
YangAgc* agc;
agc->agcProcess(agc->session,pcm);

YangAns背景噪音抑制

YangAns可探测出背景固定频率的杂音并消除背景噪音,例如:风扇、空调声等杂音会自动滤除,使声音更清晰。

复制代码
YangAns* ans;
ans->preprocess_run(ans->session,pcm);

YangVad语音动态侦测

YangVad算法的作用是检测是否是人的语音,可作为其他音频处理的参考。

复制代码
YangVad* vad;
vad->voiceActivity(vad->session,pcm,frameSize,sampleRate);

YangCng舒适噪音生成

YangCng是一个在对讲过程中出现短暂静音时用来为对讲产生背景噪声的模块,常用在VAD检测没有人声时处理。

复制代码
YangCng* cng;
cng->voiceGenerate(cng->session,pcm,frameSize,sampleRate);
相关推荐
气泡音人声分离8 小时前
音频 Key 和 BPM 识别原理:歌曲调性和速度是如何分析出来的?
音视频·升降调·音频变速
海带紫菜菠萝汤11 小时前
WebCodecs API 实战:浏览器原生视频编解码的原理与性能测试
前端·javascript·音视频·视频编解码
kriston202612 小时前
2026音频指纹识别方案准确率对比:主流厂商差距与选型指南
音视频
薛定谔的猫-菜鸟程序员13 小时前
基于 Electron 的本地短视频解析与下载工具:架构设计与工程实践
java·electron·音视频
程序员大辉14 小时前
seedance2.0做的视频太贵?开源免费最佳替代方案:bernini生视频,ltx2.3来配音
音视频·视频大模型·ltx2.3·bernini
AI星桥小王子15 小时前
镜头、角色、剧情自由把控,可控式 AI 视频工作台横向测评
人工智能·音视频
EasyDSS16 小时前
巡逻调度、应急呼叫、多路同屏——企业级融媒体平台EasyDSS一站式搞定园区安保所有音视频需求
音视频·媒体
hz5678916 小时前
应急管理部门跨部门会商用什么系统?指挥调度视频会议方案解析
网络·安全·音视频·实时音视频·信息与通信
人工智能研究所18 小时前
ResearchStudio-Reel: 学术论文到海报、视频、博客的“最后一公里“
人工智能·microsoft·音视频·博客·ppt·学术论文·ai创作
wangchensong18 小时前
企业培训视频为什么需要加密保护?
网络·音视频