简介

本篇文章主要是对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推拉流分析相关推荐

  1. SRS流媒体服务器——WebRTC推拉流演示

    SRS流媒体服务器--WebRTC推拉流 目录 WebRTC推拉流配置 WebRTC拉流演示 WebRTC推流演示 SRS官方WebRTC文档:https://github.com/ossrs/srs ...

  2. 音视频学习之rtsp推拉流学习2(流媒体服务器ZLMediaKit)

    公司项目需要实现一个只是rtsp推流和rtsp拉流的业务机制,据说ZLMediaKit能满足rtsp推拉流的相关业务. 对ZLMediaKit流媒体服务器进行安装以及了解. 0:从开源库Readme中 ...

  3. 安卓基于SRS的Webrtc推拉流

    安卓基于SRS的Webrtc推拉流 文章目录 安卓基于SRS的Webrtc推拉流 Https必须需要域名 httpx-static 配置 https 代理 基于SRS 配置文件支持 https And ...

  4. ffmpeg 使用ffplay 进行 hls 拉流 分析 1

    ffmpeg 使用 ffplay 进行 hls 拉流 分析 1 从使用ffplay 调用 http://192.168.1.100:8080/live/livestream.m3u8 开始,进入到ff ...

  5. 一个小时开发的直播推拉流软件来了

    一.简介 目前市面上直播推流的软件有很多,拉流也很常见.近期因为业务需要,需要搭建一整套服务端推流,客户端拉流的程序.随即进行了展开研究,花了一个小时做了个基于winfrom桌面版的推拉流软件.另外稍 ...

  6. 开源流媒体解决方案,流媒体服务器,推拉流,直播平台,SRS,WebRTC,移动端流媒体,网络会议,优秀博客资源等分享

    开源流媒体解决方案,流媒体服务器,推拉流,直播平台,SRS,WebRTC,移动端流媒体,网络会议,优秀博客资源等分享 一.优秀的流媒体博客资源 1.1 EasyNVR:专注于安防视频互联网化的技术 1 ...

  7. 腾讯云直播、生成腾讯推拉流

    一.背景 最近公司用到推拉流,经过一番比较后决定使用腾讯云.但是腾讯云的文档确实有点一言难尽,去网上搜索一下例子,结果就是把腾讯云的demo粘贴过去,还必须得是会员才能看,坑啊!!所以把自己做的小de ...

  8. Nginx搭建RTMP推拉流服务器

    如题,今天就来实现一个推拉流服务器,模拟下推流后被客户端拉流看到效果. 详细步骤如下 - 安装Nginx - 安装FFmpeg - 安装VLC客户端 安装Nginx 在Mac上有一个很好用的包管理插件 ...

  9. 详细说明如何配置蜻蜓Q系统的直播功能完美实现直播和观赏直播,推拉流配置完整说明一颗优雅草科技伊凡写

    详细说明如何配置蜻蜓Q系统的直播功能完美实现直播和观赏直播,推拉流配置完整说明一颗优雅草科技伊凡写 一.登录后台找到直播配置 依次在站点配置-直播配置 ​ 编辑切换为居中 添加图片注释,不超过 140 ...

  10. 友盟多渠道打包+混淆+腾讯云直播的推/拉流

    一. 友盟多渠道打包 各种下载应用的软件网址,叫渠道分发商,如腾讯应用宝,百度,Google Play,多渠道打包通过了解下载量,有针对性的打广告 多渠道打包意义: 可以用这个APK,放上一段业务逻辑 ...

最新文章

  1. 你必须知道的23个最有用的Elasticseaerch检索技巧
  2. java从数组查找指定整数_如何在Java中使用重复项查找整数数组中的K个缺失数字?...
  3. 应用C语言编辑画图程序
  4. HighGUI参考手册
  5. 解决DELL服务器每次开机提示F1F2,需要F1才可以进系统的方法
  6. [线性代数] 1.2 全排列和对换
  7. ADNI介绍与数据下载
  8. MySQL报错java.sql.SQLException: The server time zone value ‘乱码‘ is unrecognized or represents more tha
  9. java compile方法_Java中带有示例的模式compile()方法
  10. php 微信 防刷票,细数那些防止微信刷票的设置
  11. v4l2_async_subdev_notifier_register 分析
  12. 赵小楼《天道》《遥远的救世主》深度解析(86)聪明是一种思考方式,精明只有算计和小心眼,只想赚钱却又不想承担风险是典型的弱势文化
  13. [图论]---[网络流]---最小点割数/最小点割集
  14. ZOJ 3716 - Ribbon Gymnastics
  15. 【APIcould】连接手机设备运行调试
  16. Windows下通过 Uboot TFTP 方式下载和启动rt-smart 内核
  17. C语言——自定义类型详解(结构体,联合体,枚举,位段)
  18. CorelDRAW x4精简版突然弹窗禁用警告问题解决办法
  19. 昂贵的付费咨询时代下我们如何正视知识价值?尽在CCTC 2016
  20. Windows解除LongPath限制: Could not find a part of the path “xxxxx“

热门文章

  1. Raspberry 静态IP配置
  2. html站点根目录怎么改,通过重定向把子目录设置为网站根目录
  3. Java面试题 — Java基础
  4. word分节符,分页符的区别,链接到上一页
  5. Android 阻止AlertDialog dismiss
  6. 【zc1415926】Unity3D的Android移动之路(二) 辅助神器——Unity Remote
  7. 【PHP编程】WebCat,手机搭建PHP运行环境及项目运行
  8. IP技术 -- 3 路由器彩光
  9. 【PCL自学:目录】PCL简介及主要功能模块介绍 (持续更新)
  10. 计算机无法关闭密码保护,Windows 10不会关闭密码保护共享