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

打印 上一主题 下一主题

主题 893|帖子 893|积分 2679

概述

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是一种新的拥塞算法Sender Side BWE的基础
  • Sender Side BWE是webRTC多年实践证实优秀的择优选择的拥塞算法
  • YangTwcc模块可以取得丢包和时延等数据,是带宽估算的数据基础
YangBandWidth带宽估算



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



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



  • H264不支持ULP FEC,优选FlexFEC
  • FlexFEC RFC 8627 - RTP Payload Format for Flexible Forward Error Correction (FEC)
  • 1-D Interleaved (Column) FEC Protection
YangCodec编码控制模块



  • 动态帧率调整
  • 动态码率调整
  • 动态分辨率调整
  • 巨细流智能适配
  • 参考YangBandWidth取得网络拥塞状态数据接纳上面计谋
YangNetEQ模块

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


  • YangJitter 降低网络抖动对音频传输的影响
  • YangPLC 丢包补偿技术
  • YangFec Opus In-band FEC
YangAudioProcess模块



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

 YangAec会监测扬声器和麦克风拾音器输入之间的回声,并利用算法来抵消回声信号,克制出现回声和耽误以提高语音对讲质量。
  1. YangAec *aec;
  2. //aecLib 1:webrtc aec 0:speexdsp aec 2:内置AEC或其他AEC实现
  3. yang_create_rtcaec(session->aec,aecLib);
  4. aec->echoPlayback(aec->session,pcm);
  5. aec->echoCapture(aec->session, input, pcm);
复制代码
YangAgc自顺应增益控制

YangAgc可以自动检测音频信号强度和自动调整输入和输出音频信号的音量,防止音频音量忽大忽小,包管音频收罗和播放的稳定性。
  1. YangAgc* agc;
  2. agc->agcProcess(agc->session,pcm);
复制代码
YangAns配景噪音克制

YangAns可探测出配景固定频率的杂音并消除配景噪音,例如:风扇、空调声等杂音会自动滤除,使声音更清楚。
  1. YangAns* ans;
  2. ans->preprocess_run(ans->session,pcm);
复制代码
YangVad语音动态侦测

YangVad算法的作用是检测是否是人的语音,可作为其他音频处理的参考。
  1. YangVad* vad;
  2. vad->voiceActivity(vad->session,pcm,frameSize,sampleRate);
复制代码
YangCng舒服噪音生成

YangCng是一个在对讲过程中出现短暂静音时用来为对讲产生配景噪声的模块,常用在VAD检测没有人声时处理。
  1. YangCng* cng;
  2. cng->voiceGenerate(cng->session,pcm,frameSize,sampleRate);
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

乌市泽哥

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表