WebRTC进阶流媒体服务器开发(四)Mediasoup源码分析之底层库

本文深入探讨Mediasoup库,重点关注JS部分如何与C++交互以及C++核心类关系。JS部分通过Node.js调用C++底层进行通讯,所有类几乎继承自EnhancedEventEmitter。C++核心类中,Router是最核心的,包含Consumer、Producer和Transport子模块。Mediasoup利用DtlsTransport进行数据加密,RtpStream管理和SeqManager处理数据流的排序与重传。文章详细阐述了各种Transport类型及其工作原理。
摘要由CSDN通过智能技术生成

1、Mediasoup库的JS部分(与C++交互)

整个Mediasoup库通过Nodejs管理,比如整体逻辑、worker、router、producer、consumer...都是通过JS进行管理的。

其底层的数据传输是通过C++部分进行控制的,通过NodeJs来控制C++部分,以实现整体的数据传输效果。

1.1 Mediasoup JS目录---调用底层C++进行通讯

AudioLevelObserver.js  检测声音大小,通过C++部分测量出声音之后,返回给该js文件中的对象,再返回给应用层展示音量
Channel.js    与C++部分进行信令通讯
Consumer.js    消费者
DataConsumer.js  
DataProducer.js
DirectTransport.js
EnhancedEventEmitter.js  EventEmitter的封装,事件的处理
errors.js  错误信息
index.js   mediasoup库的索引
Logger.js  日志管理
ortc.js    与SDP对应,以对象的方式描述SDP信息
PayloadChannel.js
PipeTransport.js  Worker之间router之间数据流的转发
PlainTransport.js  普通的RTP数据传输通道
Producer.js  生产者
Router.js   room相关操作
RtpObserver.js  RTP观察者
RtpParameters.js
scalabilityModes.js
SctpParameters.js
SrtpParameters.js
supportedRtpCapabilities.js  能力支持相关,媒体协商相关
Transport.js  所有transport的基类
types.js
utils.js  常见的工具函数
WebRtcTransport.js  浏览器使用的传输
Worker.js  进程

1.2 Mediasoup JS类关系图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值