mediasoup推拉流分析
简介
本篇文章主要是对mediasoup的推拉流进行简要叙述,刚开始学习,如有错误,欢迎批评,我会及时更正。
准备工作
main以及worker
mian.cpp文件完成了初始化工作,主要包括初始化libuv里面的loop、初始化channel并且将channel传入到worker里面。
//mian.cpp
channel = new Channel::UnixStreamSocket(ConsumerChannelFd, ProducerChannelFd);
//**************************
//UnixStreamSocket.cpp(channel文件夹)
UnixStreamSocket::UnixStreamSocket(int consumerFd, int producerFd): consumerSocket(consumerFd, NsMessageMaxLen, this), producerSocket(producerFd, NsMessageMaxLen)
//**************************
//由于构造函数会调用基类构造,上面类继承了::UnixStreamSocket,所以UnixStreamSocket.cpp构造函数里面定义了onRead回调函数处理可读事件
err = uv_read_start(reinterpret_cast<uv_stream_t*>(this->uvHandle),static_cast<uv_alloc_cb>(onAlloc),static_cast<uv_read_cb>(onRead));
//当有可读事件触发onRead调用OnUvRead函数
socket->OnUvRead(nread, buf);
//OnUvRead函数处理数据
if (nread > 0){// Update the buffer data length.this->bufferDataLen += static_cast<size_t>(nread);// Notify the subclass. 通知子类UserOnUnixStreamRead();}
//*******************************
//调用UnixStreamSocket.cpp(channel文件夹)中UserOnUnixStreamRead();函数
this->listener->OnConsumerSocketMessage(this, msgStart, msgLen);
//接着调用OnConsumerSocketMessage()函数,作用:JS在传输之前会先把数据做成json的格式,然后以字符串的形式传输过来,C++收到字符串后,会把它转化为json对象
this->listener->OnChannelRequest(this, request);
//*********************************
//进入到worker.cpp了
inline void Worker::OnChannelRequest(Channel::UnixStreamSocket* /*channel*/, Channel::Request* request)
这个函数开始处理methonId方法,
创建Router
创建WebrtcTransport
创建Producer
创建Consumer
数据推拉流
暂时把大致流程图放上,可以根据流程图在源码中找到对应函数,再跟踪一下就会很清晰了。mediasoup内容很庞大,以后有机会将继续记录并分享有意思的内容。撒花。2022.8.4,今天是个值得纪念的日子。
mediasoup推拉流分析相关推荐
- SRS流媒体服务器——WebRTC推拉流演示
SRS流媒体服务器--WebRTC推拉流 目录 WebRTC推拉流配置 WebRTC拉流演示 WebRTC推流演示 SRS官方WebRTC文档:https://github.com/ossrs/srs ...
- 音视频学习之rtsp推拉流学习2(流媒体服务器ZLMediaKit)
公司项目需要实现一个只是rtsp推流和rtsp拉流的业务机制,据说ZLMediaKit能满足rtsp推拉流的相关业务. 对ZLMediaKit流媒体服务器进行安装以及了解. 0:从开源库Readme中 ...
- 安卓基于SRS的Webrtc推拉流
安卓基于SRS的Webrtc推拉流 文章目录 安卓基于SRS的Webrtc推拉流 Https必须需要域名 httpx-static 配置 https 代理 基于SRS 配置文件支持 https And ...
- ffmpeg 使用ffplay 进行 hls 拉流 分析 1
ffmpeg 使用 ffplay 进行 hls 拉流 分析 1 从使用ffplay 调用 http://192.168.1.100:8080/live/livestream.m3u8 开始,进入到ff ...
- 一个小时开发的直播推拉流软件来了
一.简介 目前市面上直播推流的软件有很多,拉流也很常见.近期因为业务需要,需要搭建一整套服务端推流,客户端拉流的程序.随即进行了展开研究,花了一个小时做了个基于winfrom桌面版的推拉流软件.另外稍 ...
- 开源流媒体解决方案,流媒体服务器,推拉流,直播平台,SRS,WebRTC,移动端流媒体,网络会议,优秀博客资源等分享
开源流媒体解决方案,流媒体服务器,推拉流,直播平台,SRS,WebRTC,移动端流媒体,网络会议,优秀博客资源等分享 一.优秀的流媒体博客资源 1.1 EasyNVR:专注于安防视频互联网化的技术 1 ...
- 腾讯云直播、生成腾讯推拉流
一.背景 最近公司用到推拉流,经过一番比较后决定使用腾讯云.但是腾讯云的文档确实有点一言难尽,去网上搜索一下例子,结果就是把腾讯云的demo粘贴过去,还必须得是会员才能看,坑啊!!所以把自己做的小de ...
- Nginx搭建RTMP推拉流服务器
如题,今天就来实现一个推拉流服务器,模拟下推流后被客户端拉流看到效果. 详细步骤如下 - 安装Nginx - 安装FFmpeg - 安装VLC客户端 安装Nginx 在Mac上有一个很好用的包管理插件 ...
- 详细说明如何配置蜻蜓Q系统的直播功能完美实现直播和观赏直播,推拉流配置完整说明一颗优雅草科技伊凡写
详细说明如何配置蜻蜓Q系统的直播功能完美实现直播和观赏直播,推拉流配置完整说明一颗优雅草科技伊凡写 一.登录后台找到直播配置 依次在站点配置-直播配置 编辑切换为居中 添加图片注释,不超过 140 ...
- 友盟多渠道打包+混淆+腾讯云直播的推/拉流
一. 友盟多渠道打包 各种下载应用的软件网址,叫渠道分发商,如腾讯应用宝,百度,Google Play,多渠道打包通过了解下载量,有针对性的打广告 多渠道打包意义: 可以用这个APK,放上一段业务逻辑 ...
最新文章
- 你必须知道的23个最有用的Elasticseaerch检索技巧
- java从数组查找指定整数_如何在Java中使用重复项查找整数数组中的K个缺失数字?...
- 应用C语言编辑画图程序
- HighGUI参考手册
- 解决DELL服务器每次开机提示F1F2,需要F1才可以进系统的方法
- [线性代数] 1.2 全排列和对换
- ADNI介绍与数据下载
- MySQL报错java.sql.SQLException: The server time zone value ‘乱码‘ is unrecognized or represents more tha
- java compile方法_Java中带有示例的模式compile()方法
- php 微信 防刷票,细数那些防止微信刷票的设置
- v4l2_async_subdev_notifier_register 分析
- 赵小楼《天道》《遥远的救世主》深度解析(86)聪明是一种思考方式,精明只有算计和小心眼,只想赚钱却又不想承担风险是典型的弱势文化
- [图论]---[网络流]---最小点割数/最小点割集
- ZOJ 3716 - Ribbon Gymnastics
- 【APIcould】连接手机设备运行调试
- Windows下通过 Uboot TFTP 方式下载和启动rt-smart 内核
- C语言——自定义类型详解(结构体,联合体,枚举,位段)
- CorelDRAW x4精简版突然弹窗禁用警告问题解决办法
- 昂贵的付费咨询时代下我们如何正视知识价值?尽在CCTC 2016
- Windows解除LongPath限制: Could not find a part of the path “xxxxx“
热门文章
- Raspberry 静态IP配置
- html站点根目录怎么改,通过重定向把子目录设置为网站根目录
- Java面试题 — Java基础
- word分节符,分页符的区别,链接到上一页
- Android 阻止AlertDialog dismiss
- 【zc1415926】Unity3D的Android移动之路(二) 辅助神器——Unity Remote
- 【PHP编程】WebCat,手机搭建PHP运行环境及项目运行
- IP技术 -- 3 路由器彩光
- 【PCL自学:目录】PCL简介及主要功能模块介绍 (持续更新)
- 计算机无法关闭密码保护,Windows 10不会关闭密码保护共享