srs rtmp从监听到接收到新连接的过程分析

:分析srs从启动开始的main入口开始。分析rtmp监听端口,然后到接收到新rtmp连接的过程分析。

目录

  • 一、流程图
  • 二、代码分析
    • 1、srs_main_server.cpp:main()
    • 2、srs_main_server.cpp:do_main()
    • 3、srs_main_server.cpp:run()
    • 4、srs_main_server.cpp:run_master()
    • 5、srs_app_server.cpp: SrsServer::initialize_st()
    • 6、srs_service_st.cpp: srs_st_init()
    • 7、srs_app_server.cpp: SrsServer::listen()
    • 8、srs_app_server.cpp: SrsServer::listen_rtmp()
    • 9、srs_app_server.cpp: SrsBufferListener::listen()
    • 10、srs_app_listener.cpp: SrsTcpListener::listen()
    • 11、srs_service_st.cpp: srs_tcp_listen()
    • 12、srs_service_st.cpp: do_srs_tcp_listen()
    • 13、srs_app_st.cpp: SrsSTCoroutine::start()
    • 14、srs_app_st.cpp: SrsSTCoroutine::pfn()
    • 15、srs_app_st.cpp: SrsSTCoroutine::cycle()
    • 16、srs_app_listener.cpp: SrsTcpListener::cycle()
    • 17、srs_app_server.cpp: SrsBufferListener::on_tcp_client()
    • 18、srs_app_server.cpp: SrsServer::accept_client()
    • 19、srs_app_server.cpp: SrsServer::fd2conn()
    • 20、srs_app_conn.cpp: SrsConnection::start()
    • 21、srs_app_conn.cpp: SrsConnection::cycle()
    • 22、srs_app_rtmp_conn.cpp: SrsRtmpConn::do_cycle()

一、流程图

在这里插入图片描述

二、代码分析

1、srs_main_server.cpp:main()

在这里插入图片描述

2、srs_main_server.cpp:do_main()

在这里插入图片描述
在这里插入图片描述

3、srs_main_server.cpp:run()

在这里插入图片描述
在这里插入图片描述

4、srs_main_server.cpp:run_master()

在这里插入图片描述

5、srs_app_server.cpp: SrsServer::initialize_st()

在这里插入图片描述

6、srs_service_st.cpp: srs_st_init()

在这里插入图片描述

7、srs_app_server.cpp: SrsServer::listen()

在这里插入图片描述

8、srs_app_server.cpp: SrsServer::listen_rtmp()

在这里插入图片描述

9、srs_app_server.cpp: SrsBufferListener::listen()

在这里插入图片描述

10、srs_app_listener.cpp: SrsTcpListener::listen()

在这里插入图片描述

11、srs_service_st.cpp: srs_tcp_listen()

在这里插入图片描述

12、srs_service_st.cpp: do_srs_tcp_listen()

在这里插入图片描述

13、srs_app_st.cpp: SrsSTCoroutine::start()

在这里插入图片描述

14、srs_app_st.cpp: SrsSTCoroutine::pfn()

在这里插入图片描述

15、srs_app_st.cpp: SrsSTCoroutine::cycle()

在这里插入图片描述

16、srs_app_listener.cpp: SrsTcpListener::cycle()

在这里插入图片描述

17、srs_app_server.cpp: SrsBufferListener::on_tcp_client()

在这里插入图片描述

18、srs_app_server.cpp: SrsServer::accept_client()

在这里插入图片描述

19、srs_app_server.cpp: SrsServer::fd2conn()

在这里插入图片描述
在这里插入图片描述

20、srs_app_conn.cpp: SrsConnection::start()

在这里插入图片描述

21、srs_app_conn.cpp: SrsConnection::cycle()

在这里插入图片描述

22、srs_app_rtmp_conn.cpp: SrsRtmpConn::do_cycle()

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/378882.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

加载一张照片,可选择是否另存为

加载一张照片,按下S键保存,ESC退出 加载一个灰度图(E:\Python-workspace\yanyu.png),显示图片按下’s’键保存(beyond.png)(保存后的路径和该程序所在路径一致)后退出,或者按下 ESC 键退出不保存 import cv2img cv2.imread(E:\…

RTP协议基本分析(RTSP、WebRTC使用)

目录1、介绍2、RTP3、格式4、RTP打包H2644.1、H264打包方式之Single NAL Unit4.2、H264打包方式之FU-A4.2.1、FU indication4.2.2、FU header4.2.3、第一个IDR帧的NALU第一个切片4.2.4、第一个IDR帧的NALU第二个切片4.2.5、第一个IDR帧的NALU最后一个切片5、RTP打包AAC5.1、AU-…

对照片进行边缘化处理,并将边缘化处理后的结果保存

对照片进行边缘化处理,并将边缘化处理后的结果保存 import cv2 from matplotlib import pyplot as plt img cv2.imread(E:\Python-workspace\OpenCV\OpenCV/water1.png,1)#第一个参数为选择照片的路径,注意照片路径最后一个为正斜杠其他都为反斜杠&…

fastjson转换时有大括号或者冒号或者有中括号_[Python Basic] 字符串处理以及类型转换 1...

String Manipulation & Typecasting (1)1. 文本复制以及连接1.1 Multiply sign使用 multiply sigh/乘号* 来复制文本片段。乘号复制文本举例: print("Hi" * 3) # output: HiHiHi print("*" * 10)# output:**********1.2 连接1.2.1 使用 plu…

读《深入分析Java Web技术内幕》

这里这本书的预读章节,看完预读部分,解答了一些疑惑,也相信这是一本夯实Java Web架构体系的好书。 HTTP协议解析 开发一般使用firefox的firebug调试,这的确是一个利器,HTTP的请求头响应头一目了然。 浏览器缓存机制 当…

RTSP协议基本分析

目录一、介绍二、RTSP与HTTP三、RTSP推流基本过程1、OPTION 查询服务器端可用方法1.1、Client 请求1.2、Server 回复2、ANNOUNCE 发送媒体描述信息2.1、Client 请求2.2、Server 回复3、SETUP建立RTSP会话3.1、Client 请求(视频流)3.2、Server 回复&#…

找取照片上的25个特征点,并保存结果

找取照片上的25个特征点,并保存结果 import numpy as np import cv2 from matplotlib import pyplot as plt img cv2.imread(E:\Python-workspace\OpenCV\OpenCV/water1.png,1)#第一个参数为选择照片的路径,注意照片路径最后一个为正斜杠其他都为反斜杠…

P2P技术详解(一):NAT详解——详细原理、P2P简介

目录1. IPv4协议和NAT的由来2. NAT的工作模型和特点2.1、NAT的概念模型2.2、一对一的NAT2.3、一对多的NAT2.4、按照NAT端口映射方式分类2.4.1全锥形NAT2.4.2限制锥形NAT2.4.3端口限制锥形NAT2.4.4对称型NAT3. NAT的限制与解决方案3.1、IP端到端服务模型3.2、NAT的弊端3.3、NAT穿…

显示照片的二维直方图

显示照片的二维直方图 import cv2 from matplotlib import pyplot as plt img cv2.imread(E:\Python-workspace\OpenCV\OpenCV/water1.png,1)#第一个参数为选择照片的路径,注意照片路径最后一个为正斜杠其他都为反斜杠;第二个参数,其中1表示…

周五怎么表示 mysql_完美起航-MySQL找每个月最后一个星期五--函数定义与使用

数据库作业有一道题是这样子的:有一张名叫emp的表记录员工信息,其中有如下字段 HIREDATE 表示员工被雇用的日期:然后问题是这样的:q7.Show details of employee hiredates and the date of their first payday.(Paydays occur on…

silverlight学习总结【完】

以下内容是个人理解,不保证正确性。且假设使用C#,并且有一定的相关知识和XML基础。 silverlight是什么,能做什么 silverlight用XAML来做前端界面,用.NET或者JS作为程序脚本支持,在浏览器内外运行的应用。可以认为和FLA…

P2P技术详解(二):P2P中的NAT穿越(打洞)方案详解

目录1、内容概述2、反向链接技术:一种特殊的P2P场景(通信双方中只有一方位于NAT设备之后)3、基于UDP协议的P2P打洞技术详解3.1、原理概述3.2、典型P2P情景1: 两客户端位于同一NAT设备后面(即相同内网中)3.3…

显示照片的RGB直方图

显示照片的RGB直方图 import numpy as np import cv2 as cv from matplotlib import pyplot as plt img cv.imread(E:\Python-workspace\OpenCV\OpenCV/BEYOND.png,1)#第一个参数为选择照片的路径,注意照片路径最后一个为正斜杠其他都为反斜杠;第二个参…

mysql慢查询开启语句分析_mysql慢查询语句分析总结

我们经常会接触到MySQL,也经常会遇到一些MySQL的性能问题。我们可以借助慢查询日志和explain命令初步分析出SQL语句存在的性能问题通过SHOW FULL PROCESSLIST查看问题SHOW FULL PROCESSLIST相当于select * from information_schema.processlist可以列出正在运行的连…

P2P技术详解(三):P2P中的NAT穿越(打洞)方案详解(进阶分析篇)

目录1、NAT和NAPT2、NAT带来的问题3、P2P通信穿越NAT的技术、方法4、NAT穿越技术1:应用层网关4.1、原理4.2、限制5、NAT穿越技术2:中间件技术5.1、原理5.2、限制6、NAT穿越技术3:打洞技术(Hole Punching)6.1、原理6.2、方法6.2.1NAT行为类型与…

将两大小完全相同的照片进行加权混合对比

将两张大小完全相同的照片进行加权混合对比 import cv2 img1cv2.imread(E:\Python-workspace\OpenCV\OpenCV/water1.png,1)#第一个参数为选择照片的路径,注意照片路径最后一个为正斜杠其他都为反斜杠;第二个参数,其中1表示所选照片为彩色照片…

P2P技术详解(四):P2P技术之STUN、TURN、ICE详解

目录1、内容概述2、STUN详解2.1 RFC3489/STUN2.1.1 报文结构2.1.2实现原理2.1.3STUN功能举例2.2 RFC5389/STUN2.2.1STUN用途2.2.2报文结构2.3 RFC5389与RFC3489的区别2.4 新特性介绍2.4.1指纹机制2.4.2通过DNS发现服务器机制2.4.3认证和消息完整性机制2.4.4备份服务器机制2.5 R…

比较两张大小相同的照片的差异,返回数值

比较两张大小相同的照片的差异,返回数值 from PIL import Image import math import operator from functools import reducedef image_contrast(img1, img2):image1 Image.open(img1)image2 Image.open(img2)h1 image1.histogram()h2 image2.histogram()resul…

poj2115C Looooops

http://poj.org/problem?id2115 参考人家的 如下 如i65534,当i3时,i1 其实就是 i(655343)%(2^16)1 有了这些思想,设对于某组数据要循环x次结束,那么本题就很容易得到方程: x[(B-A2^k)%2^k] /C 即 Cx(B-A)(mod 2^k) 此…

黑色背景下,计算照片白色的区域面积和周长

黑色背景下,计算照片白色的区域面积和周长 import cv2 img cv2.imread(E:\Python-workspace\OpenCV\OpenCV/beyond.png,1)#第一个参数为选择照片的路径,注意照片路径最后一个为正斜杠其他都为反斜杠;第二个参数,其中1表示所选照…