SRS4.0源码分析-推流总结
本文采用的 SRS 版本是 4.0-b8 , 下载地址:github
本文主要对前面的文章做下总结。
《SRS4.0源码分析-main》,《SRS4.0源码分析-RTMP入口》,《SRS4.0源码分析-创建RTMP协程》,《SRS4.0源码分析-SrsRtmpConn::cycle》,《SRS4.0源码分析-SrsRtmpConn::stream_service_cycle》,《SRS4.0源码分析-SrsRecvThread::cycle》。
上面 7 篇 文章从 RTMP 入口,一直追踪到 推流数据保存,已经把推流大部分的逻辑 跑完了,所以需要画一张整体的流程图,协程函数 用颜色标注起来了,如下:
对上面的流程做下简单的总结。
1,SRS 服务器启动之后,会开启一个协程 (SrsTcpListener::cycle
) 来 监听 1935 的RTMP端口,不断 accept 客户端请求。
2,始祖协程 利用 wg.wait()
等等其他的服务结束,其他服务是指 RTMP服务,SRT服务,RTC 服务。
3,有RTMP推流客户端请求来了,新开一个协程D(SrsRtmpConn::cycle
) 来处理 请求,包括RTMP握手,传输音视频数据前的交互。处理完前期的交互工作之后,发现客户端是一个推流客户端,就会再开一个协程 E (SrsRecvThread::cycle
)来处理推过来的音视频数据流。之前的协程D 会阻塞不断循环统计一些信息。
由于笔者的水平有限, 加之编写的同时还要参与开发工作,文中难免会出现一些错误或者不准确的地方,恳请读者批评指正。
SRS4.0源码分析-推流总结相关推荐
- SRS4.0源码分析-SrsRecvThread::cycle
本文采用的 SRS 版本是 4.0-b8 , 下载地址:github 从<SRS4.0源码分析-SrsRtmpConn::stream_service_cycle> 得知 ,真正接受客户端 ...
- SRS4.0源码分析-CMake
本文采用的 SRS 版本是 4.0-b8 , 下载地址:github <SRS4.0源码分析-调试环境搭建> 讲了 SRS 在 Clion 里面的调试,本文主要讲解 srs-4.0-b8\ ...
- SRS4.0源码分析-序言
<SRS4.0源码分析>专栏,会从 configure(配置),makefile(编译规则),main (入口函数), 带你一步一步了解 SRS 的主干代码逻辑. 这里分享一个本人阅读开源 ...
- SRS4.0源码分析-main
本文采用的 SRS 版本是 4.0-b8 , 下载地址:github 本文开始讲解 SRS 的入口文件.SRS 源码里 其实有 3 个 main() 函数,分别在 srs_main_ingest_hl ...
- SRS4.0源码分析-RTMP入口
本文采用的 SRS 版本是 4.0-b8 , 下载地址:github 上篇文章 <SRS4.0源码分析-main> 讲解了 SRS main 函数的基本流程,但是可能有些朋友还是比较懵逼. ...
- SRS4.0源码分析-state-thread
本文采用的 SRS 版本是 4.0-b8 , 下载地址:github 由于 SRS 主要使用的 是 state-thread 协程库,这个库是 8年前的, <state-thread 官网文档& ...
- SRS4.0源码分析-调试环境搭建
本本文采用的 SRS 版本是 4.0-b8 , 下载地址:github SRS4.0 可以很方便地在 clion 软件下面断点调试,查看函数调用,堆栈. SRS的作者杨成立很贴心,在源码里放置了一个 ...
- SRS4.0源码分析-RTMP延迟
本文采用的 SRS 版本是 4.0-b8 , 下载地址:github 本文主要对 SRS RTMP 直播做延迟测试,然后介绍如何优化 RTMP 的延迟.为了不嵌套界面,介绍一下 ffmpeg 如何抓取 ...
- 《MapReduce 2.0源码分析与编程实战》一第1章 HBase介绍
本节书摘来异步社区<MapReduce 2.0源码分析与编程实战>一书中的第1章,作者: 王晓华 责编: 陈冀康,更多章节内容可以访问云栖社区"异步社区"公众号查看. ...
最新文章
- python基础:购物车的简单实现
- codeforces732D Exams(二分)
- Flex数据绑定陷阱(一)
- java中输出时间12小时制转换为24小时制显示
- java轻功游戏,会轻功又可以飞的游戏(3d大型游戏)
- mysql sql高级应用程序_mysql-sql高级应用
- 深入解析:Row Movement 的原理和性能影响与关联
- FastDfs之TrackerServer的详细配置介绍
- 嵌入式系统功能需求分析_机械管理系统如何物料需求分析
- 读《微波工程(第三版)》笔记 (9:传输线模型)
- 这个高颜值的开源第三方网易云音乐播放器你值得拥有
- MATLAB程序设计-1.MATLAB简介
- android rar文件怎么打开方式,rar文件手机上怎么打开 手机怎么打开zip文件
- 算法竞赛命题指南(命题流程、Polygon的使用等)
- 壁纸|锁屏和桌面套图壁纸,一套的,给手机来个套餐
- iOS手机自带浏览器Safari无法长按保存图片
- DSP TMS320F28377D与TMS320F28335硬件资源对比
- 模拟cmos集成电路(3)
- 计算机软件基础-数据结构与算法
- 关于学习vue.js前端遇到的问题总结