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

2024-06-20 13:36

本文主要是介绍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);

这篇关于metaRTC8.0,一个全新架构的webRTC SDK库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1078280

相关文章

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

MySQL 缓存机制与架构解析(最新推荐)

《MySQL缓存机制与架构解析(最新推荐)》本文详细介绍了MySQL的缓存机制和整体架构,包括一级缓存(InnoDBBufferPool)和二级缓存(QueryCache),文章还探讨了SQL... 目录一、mysql缓存机制概述二、MySQL整体架构三、SQL查询执行全流程四、MySQL 8.0为何移除查

微服务架构之使用RabbitMQ进行异步处理方式

《微服务架构之使用RabbitMQ进行异步处理方式》本文介绍了RabbitMQ的基本概念、异步调用处理逻辑、RabbitMQ的基本使用方法以及在SpringBoot项目中使用RabbitMQ解决高并发... 目录一.什么是RabbitMQ?二.异步调用处理逻辑:三.RabbitMQ的基本使用1.安装2.架构

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

系统架构设计师: 信息安全技术

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师: 信息安全技术前言信息安全的基本要素:信息安全的范围:安全措施的目标:访问控制技术要素:访问控制包括:等保

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法   消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法 [转载]原地址:http://blog.csdn.net/x605940745/article/details/17911115 消除SDK更新时的“

利用命令模式构建高效的手游后端架构

在现代手游开发中,后端架构的设计对于支持高并发、快速迭代和复杂游戏逻辑至关重要。命令模式作为一种行为设计模式,可以有效地解耦请求的发起者与接收者,提升系统的可维护性和扩展性。本文将深入探讨如何利用命令模式构建一个强大且灵活的手游后端架构。 1. 命令模式的概念与优势 命令模式通过将请求封装为对象,使得请求的发起者和接收者之间的耦合度降低。这种模式的主要优势包括: 解耦请求发起者与处理者

雷动WEBRTC产品

http://www.rtcpower.com/html/leidongwebrtc.html ; 1.前言      WebRTC是一项在浏览器内部进行实时视频和音频通信的技术,是谷歌2010年以6820万美元收购Global IP Solutions公司而获得一项技术。WebRTC实现了基于网页的视频会议,标准是WHATWG 协议,目的是通过浏览器提供简单的javascript就可以

Apple quietly slips WebRTC audio, video into Safari's WebKit spec

转自:http://www.zdnet.com/article/apple-quietly-slips-webrtc-audio-video-into-safaris-webkit-spec/?from=timeline&isappinstalled=0 http://www.zdnet.com/article/apple-quietly-slips-webrtc-audio-video-