用于Webrtc的媒体流转发服务器不计其数,开源与免费的也不计其数,有基于C++开发的,有基于Java开发的,有基于Go开发的,但以笔者的实践经验,mediasoup是性能最好的转发服务器。Mediasoup其实是一个框架,其应用层开发语言为javascript,必须依赖于Nodejs来执行,但其媒体转发模块(Worker)却是用C++开发,而且这个转发模块的网络I/O底层库为Libuv,Libuv是一个目前最优秀的网络I/O库,笔者用它开发了好几款应用,都表现得极其高的性能,所以笔者以为Worker模块也具备极其优秀的性能。

Mediasoup开源Webrtc服务器的Github地址为:

https://github.com/versatica/mediasoup

Mediasoup的体系结构图

基本概念说明

Worker

一个Worker就是一个转发媒体服务器进程,代表着一个运行在单核CPU上并处理Router实例的mediasoup C++子进程;一个系统可以运行多个Worker进程,由Mediasoup js层调度。

Router

Router用于注入、选择和转发通过Transport实例创建的媒体流,相当于一个聊天室的房间;

Transport

Transport将终端与MediaSoup Router连接起来,并通过在其上创建的Producer和Consumer实例实现双向媒体传输/

实 现了下面3种Transport:

WebRtcTransport, PlainRtpTransport, PipeTransport。

每个Client创建两个Peerconnection分别用于发送和接受媒体流,发送端用于发送承载本地videoTrack和audioTrack的      localStream,接收端接受来自其他Client的remoteStream;

同时Room会为每个Client创建一个Peer,Peer管理两个Transport用于接受Client的媒体流和向Client发送媒体流;

Peer为对应的Client发送的videoTrack和audioTrack分别创建一个Producer(共2个);

Peer为其他两个Client发送的videoTrack和audioTrack分别创建2个Consumer(共2个);

Producer将媒体数据发送给每一个订阅者Consumer

Consumer代表着一个被MediaSoup Router转发到终端的音频或视频源。它是在定义媒体数据包传送方式的Transport之上创建的。

开源免费Webrtc转发服务器Mediasoup的概念解释与基本介绍(一)相关推荐

  1. 开源免费,zabbix服务器监控全面实现

    文章来源:公众号-智能化IT系统. 当前服务器监控有很多方式.普通的监控主要是针对常规指标,例如服务器的基本指标,网络流量等,但是通常定制化的监控支持受限.一些厂商会将服务器监控系统作为产品来卖,针对 ...

  2. qt 获取本机的wifi密码_还在记密码?这款开源免费的账号密码管理神器赶紧收了...

    工作中涉及到得账号密码,你是怎么记录得?如果是文档word或者excel记录,那么回非常麻烦,每次还得打开.如果是浏览器自己记录,如果更新密码,又记不得.尴尬! 今天大卫给大家推荐一款开源免费得账号密 ...

  3. 开源免费OA项目:让工作任务动态显示,团队共享

    在工作中,经常会遇到这些问题: 管理者/领导者: ● 感觉每个下属都需要监督和定期督促才能保证任务的执行 ● 分配工作时,总是担心分配不均,多了怕下属抱怨,少了怕项目完成不了 ● 在出差的时候,跟下属 ...

  4. 开发流媒体服务器_Github选出10大开源免费的RTSP流媒体项目

    Github选出 TOP 10开源免费的RTSP流媒体项目,以下是具体排名及星星数. 1.Easydarwin 星星数:4,307 Easydarwin是国内团队开发的开源流媒体框架.它是基于Go语言 ...

  5. 高并发服务器开源项目,百万级高并发WebRTC流媒体服务器设计与开发(示例代码)...

    第1章 课程导学与准备工作 本章主要介绍为何要学习WebRTC流媒体服务器开发,以及本门课能为我们带来哪些收获.之后会为大家介绍本课程内容具体安排,最后给出如何学好这门课程的一些学习建议.希望大家都能 ...

  6. WebRTC 实现P2P音视频通话——搭建stun/turn P2P穿透和转发服务器

    WebRTC 实现P2P音视频通话 WebRTC 实现P2P音视频通话--搭建信令服务器 WebRTC 实现P2P音视频通话--搭建stun/turn P2P穿透和转发服务器 文章目录 WebRTC ...

  7. webrtc流媒体转发服务器

    webrtc流媒体转发服务器 定义 难点 建立连接 如何转发媒体流 如何高效转发媒体流 转发后如何保证视频质量 定义 由于webrtc是基于P2P技术的一个协议栈,大多数情况下能满足1-5人的同时并发 ...

  8. webrtc服务器mediasoup源码分析

    一.webrtc服务器meidasoup框架介绍 二.webrtc客户端与mediasoup服务器连接过程(服务器接收流媒体数据之前的工作) 三.mediasoup服务器接收流媒体数据及接收拥塞控制 ...

  9. cpanel重启PHP服务_8款基于Web控制面板的服务器管理工具,开源免费,系统管理员利器...

    监控使用率,性能和维护系统架构是一项复杂的任务.当企业构建基础结构时,包括服务器,数据库,消息传递,身份验证,负载均衡等多个组件在内的基础结构会带来高复杂性. 当系统管理员管理1-2台服务器时,可能很 ...

最新文章

  1. list控件响应鼠标键的单双击
  2. 介绍几种SSIS部署方式
  3. 源码解读_Go Map源码解读之Map迭代
  4. 【收藏】mydockfinder下载地址
  5. solidworks重建模型好慢_兄弟只能帮你到这了,SOLIDWORKS卡顿或许秘密就在这些选项里...
  6. run在java_Java语言start和run方法的区别
  7. 进入一个目录需要那些权限
  8. 日志分析工具 Log Parser
  9. Python数据结构:二分查找
  10. 大专计算机应用基础课件,11春大专《计算机应用基础》练习课件.doc
  11. JAVA方法中的参数用final来修饰的原因
  12. MySQL中将查询所得结果集的某一字段拼接成字符串
  13. 业务、架构、技术,我们应该关注什么 Java和.Net的优势劣势简单看法 市场经济决定,商业之道即是软件之道,市场的需求决定着软件技术的发展 利益决定着选择应用新技术...
  14. Jersey学习笔记
  15. 并查集(UnionFind)算法
  16. windows 系统 system 进程占用80端口
  17. 深度学习笔记:05手算梯度下降法,详解神经网络迭代训练过程
  18. QQ 微信转链,如何实现淘宝京东苏宁唯品会拼多多,返利转链思路
  19. web服务器硬件软件配置选择
  20. 格拉姆矩阵(Gram Matrix)

热门文章

  1. 说说移动设备的各种标识码(DeviceID, IMEI, UUID, UDID, OAID, IDFA, GAID)
  2. python中size的用法.dim_【Numpy库学习笔记】Numpy中dim、shape和size的理解
  3. 自然可视图是什么意思?
  4. 618微信小程序电商销售数据出炉(附完整报告)
  5. 信息学奥赛一本通:1168:大整数加法
  6. zzulioj:1168: 账单(指针专题)
  7. 18、HTTP基本操作及源码编译安装 学习笔记
  8. SPSS教程:数据不符合正态分布,如何统计描述
  9. 什么是CUDA和CUDNN?——GeForce NVIDIA显卡用于深度学习计算的GPU加速工具
  10. 黑苹果电池电量补丁_小白都能看懂的DSDT电量显示补丁教程