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.pswp.cn/news/378882.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/378882.shtml
英文地址,請注明出處:http://en.pswp.cn/news/378882.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

OpenCV筆記(基于Python)

學習時,將每塊注釋分別去掉即為一個模塊知識點 圖像數字化 import numpy as np """ #二維的ndarry #兩行四列全是0的uchar類型的二維數組 z np.zeros((2,4),np.uint8) print(type(z)) print(z) print("\n")#兩行四列全是1的整型矩陣 o …

POJ 1222 1681 1830 3185 開關燈問題 (高斯消元 異或方程組)

POJ 1222 EXTENDED LIGHTS OUT 基本的開關燈問題.還保證唯一解. 我們把每一個燈泡當成一個狀態xi,總共有30個,而且每個燈與其他燈的關系也很明顯。所以我們就可以列30方程30個變元的方程組: xi 1 * xi 1 * x(i-1) 1 * x(i1) 1 * x(i-6) …

我看周馬,以及3Q大戰背后的社會問題

如今鬧得不可開交的3Q大戰已經成了一道獨特的風景線,讓我們在茶余飯后又增添了不少談資。這兩個中國最大的客戶端軟件提供商各有擁躉無數,雙方鉚足了勁相互吐口水、扔磚頭,現在貌似到了動刀子了。周、馬在媒體上也都將自己標榜為“美貌與智慧…

Java PushbackReader ready()方法與示例

PushbackReader類ready()方法 (PushbackReader Class ready() method) ready() method is available in java.io package. ready()方法在java.io包中可用。 ready() method is used to check whether this stream is ready to be read or not. ready()方法用于檢查此流是否已準…

mysql數據庫知識點梳理_MySQL數據庫知識點整理 (持續更新中)

一、修改用戶密碼格式(在命令行下輸入):mysqladmin -u 用戶名 -p舊密碼 password 新密碼1. 給root添加密碼ab12: mysqladmin -uroot -password ab122. 將root的密碼修改為djg345: mysqladmin -uroot -pab12 password djg345二、添加新用戶格式:grant…

加載一張照片,可選擇是否另存為

加載一張照片,按下S鍵保存,ESC退出 加載一個灰度圖(E:\Python-workspace\yanyu.png),顯示圖片按下’s’鍵保存(beyond.png)(保存后的路徑和該程序所在路徑一致)后退出,或者按下 ESC 鍵退出不保存 import cv2img cv2.imread(E:\…

RTMP代理的協議規范(RtmpProxy)

RtmpProxy 關于RTMP代理的協議規范。RTMP是字節協議,第一個包是c0,1個字節,一般是03表示是明文的RTMP。所以如果需要做RTMP代理,如果直接轉發RTMP客戶端的消息,是沒法傳遞額外的信息的,譬如HTTP代理在Head…

經典地址收集

http://kuler.adobe.com/ 配色網站轉載于:https://www.cnblogs.com/Wolves/archive/2010/11/08/1871914.html

Java Math類toDegrees()方法與示例

數學類toDegrees()方法 (Math class toDegrees() method) toDegrees() method is available in java.lang package. toDegrees()方法在java.lang包中可用。 toDegrees() method is used to convert an angle from radians to degrees. toDegrees()方法用于將角度從弧度轉換為度…

談談Hybird3D中的光柵化優化

看到空明流轉分享了他的SALVIA 0.5.2優化談,我也來說說Hybird3D中和光柵化相關的一些優化技術。 Hybird3D的設計目標是打造一款準實時的軟件高質量渲染器,采用了光柵化和光線跟蹤混合算法,光柵化用于渲染eye ray,光線跟蹤則用于陰…

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)#第一個參數為選擇照片的路徑,注意照片路徑最后一個為正斜杠其他都為反斜杠&…

小皇帝,籃球,熱火

失敗,又一次,完全預料之中. 熱火的防守早已是千瘡百孔,熱火的攻擊也是亂無頭緒. 現在的熱火,需要詹姆斯無球的跑動,需要韋德的助攻。 轉載于:https://www.cnblogs.com/JeffChen/archive/2010/11/12/2600335.html

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 IdentityHashMap size()方法與示例

IdentityHashMap類的size()方法 (IdentityHashMap Class size() method) size() method is available in java.util package. size()方法在java.util包中可用。 size() method is used to return the size (i.e. How many key-value pair exists) of this IdentityHashMap. siz…

讀《深入分析Java Web技術內幕》

這里這本書的預讀章節,看完預讀部分,解答了一些疑惑,也相信這是一本夯實Java Web架構體系的好書。 HTTP協議解析 開發一般使用firefox的firebug調試,這的確是一個利器,HTTP的請求頭響應頭一目了然。 瀏覽器緩存機制 當…

windows mobile多國語言實現[轉]

介紹一種多國語言的實現辦法,這也是微軟推薦的方式,打開windows mobile下的windows目錄可以看到有很多以MUI為后綴名的文件,例如shellres.dll.0804.mui、shell.dll.0804.mui。。。。。。我們可以用eXeScope.exe或者resources hacker這樣的文件…

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)#第一個參數為選擇照片的路徑,注意照片路徑最后一個為正斜杠其他都為反斜杠…

nutsdb與mysql_分享下 nutsdb 單機 1 億、10 億數據實測

大家好, 想給大家分享下我最近為 nutsdb 做的數據測試。測試項目起因事情起因是這個 issue ,簡單說就是內存高了,不夠用了。可能很多人不知道 NutsDB。簡單介紹下,NutsDB 是我幾個月以前開源的一個 Go 語言編寫的內嵌型 KV 數據庫…