![](https://img-blog.csdnimg.cn/20190918140037908.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
mediasoup
文章平均质量分 84
整理mediasoup相关技术
littleboy_webrtc
熟悉音视频技术,熟悉会议、直播、RTC等音视频技术与架构。目前从事音视频领域开发工作。
展开
-
mediasoup专栏介绍
mediasoup专栏记录原创 2024-06-23 11:10:47 · 1547 阅读 · 55 评论 -
mediasoup企业级会议并发方案设计
单个mediasoup稳定支持200-300路流,为了增加服务的并发,在一个服务器上部署5个信令服务及mediasoup服务。由于csdn图片大小有5M限制,因此无法在文章中展示高清图,有需要的可以私我,给发高清图。单台服务器32核cpu,32G内存,带宽2000M及以上。原创 2024-07-18 21:15:26 · 270 阅读 · 0 评论 -
mediasoup开源项目合辑
更多关于mediasoup的文章可以进入我的专栏查看。拥抱开源,站在巨人的肩膀上前行!原创 2024-06-25 22:14:52 · 1232 阅读 · 17 评论 -
mediasoup基础概览
mediasoup整体介绍原创 2024-06-02 13:56:30 · 2396 阅读 · 31 评论 -
网络编程-libuv介绍
libuv整理原创 2024-04-23 23:19:17 · 1812 阅读 · 0 评论 -
mediasoup源码分析-v2和v3版本差异
mediasoup分析v2和v3差异原创 2024-05-27 08:00:00 · 1584 阅读 · 5 评论 -
mediasoup日志模块
mediasoup日志模块分析原创 2024-05-15 23:18:53 · 844 阅读 · 12 评论 -
golang实现mediasoup的tcp服务及channel通道
Client:表示客户端连接,包含网络连接conn、指向服务器的指针Server和Channel指针c。server:表示TCP服务器,包含服务器地址address、TLS配置config以及三个回调函数:onNewClientCallback:新客户端连接时调用。onClientConnectionClosed:客户端连接关闭时调用。onNewMessage:客户端接收新消息时调用。原创 2024-05-27 09:00:00 · 1242 阅读 · 22 评论 -
mediasoup源码分析(一)编译及部署
mediasoup编译原创 2024-05-12 21:32:07 · 640 阅读 · 1 评论 -
mediasoup源码分析(二)--worker启动
官方提供的mediasoup-demo是由js(信令)+c++(流媒体服务)两部分服务,mediasoup的worker进程是nodejs通过child_process 的spawn()接口启动的。原创 2024-06-18 21:12:45 · 1087 阅读 · 6 评论 -
mediasoup源码分析(三)channel创建及信令交互
在golang实现mediasoup的tcp服务及channel通道一文中,已经介绍过信令服务中tcp和channel的创建,本文主要讲解c++中mediasoup的channel创建,以及信令服务和mediasoup服务如何交互。原创 2024-06-18 00:03:52 · 4334 阅读 · 37 评论 -
mediasoup源码分析(四)channel返回信令及notify通知
在mediasoup源码分析(三)channel创建及信令交互一文中介绍了mediasoup中channel的创建,接下来在本文中,会说明mediasoup c++层如何将处理后的数据返回到信令服务中。在 Mediasoup 中,C++ 编写的媒体层(mediasoup-worker)与信令服务之间的通信通常是通过 JSON 格式的数据进行的。这种数据格式易于解析和生成,并且被广泛用于 Web 服务和客户端之间的通信。一个有三个返回的接口。原创 2024-06-22 09:00:00 · 1926 阅读 · 28 评论 -
mediasoup 源码分析(五) 创建room 和 router
mediasoup-demo/server/node_modules/mediasoup/src/Channel.ts 中管理和C++通信的channel。代码见:mediasoup-demo/server/node_modules/mediasoup/worker/src/Worker.cpp。详情见:server/node_modules/mediasoup/src/Worker.ts。详情见mediasoup-demo/server/lib/Room.js。四、创建Router。原创 2024-06-22 23:08:36 · 737 阅读 · 1 评论 -
mediasoup 源码分析(六)consumer和producer
mediasoup总共有四种消费者类型,SimpleConsumer、PipeConsumer、SvcConsumer、SimucastConsumer。consumer的类型是基于producer的类型来创建的。SimpleConsumer: 普通RTP数据的消费者,对应PlainTransport。PipeConsumer:不同Worker之间Router之间的数据流转,则其为接收或者消费从另外一个Worker中的Router传过来的数据。原创 2024-06-23 09:34:58 · 340 阅读 · 0 评论 -
mediasoup源码分析(九)pipeTransport介绍
一个worker中的数据传到Router,然后传给Router中的消费者,而这个消费者的IP是另一个worker的地址,所以数据会传到另一个worker。此时数据是输入数据,所以相当于另一个worker的produer,即push数据。注意这个 OnConsumerSendRtpPacket()的理解,本worker的数据发送给另一个worker,对端的那个worker相当于一个消费者。当他订阅的时候,本worker就保存了对端worker的ip:port信息。而级联就是用来解决这个问题的。原创 2024-05-24 22:05:54 · 634 阅读 · 9 评论 -
mediasoup源码分析(七)transport传输
Transport收到数据packet后,会解析出packet中所带的ssrc字段,然后基于ssrc找到该数据的Producer。Produer也是基于ssrc找到RtpStreamRecv。二、RtpStreamRecv 处理收到的包。原创 2024-06-23 09:56:28 · 249 阅读 · 1 评论 -
mediasoup 源码分析 (八)分析PlainTransport
PlainTransport 可以接收裸RTP流,也可以接收AES加密的RTP流。源码中提供了一个通过ffmpeg发送裸RTP流到mediasoup的脚本,具体地址为:mediasoup-demo/broadcasters/ffmpeg.sh。脚本就是通过HTTP Post发送创建PlainTranport请求,然后通过ffmpeg向指定地址+端口,发送RTP流。真正绑定的地方在PortManager::BindUdp(ip)中,随机从指定Port范围中选出可用Port,然后绑定。原创 2024-06-23 09:13:13 · 443 阅读 · 0 评论