nginx-rtmp源码概述
/* 點(diǎn)播相關(guān)*/
ngx_rtmp_dash_module
ngx_rtmp_mp4
ngx_rtmp_mp4
ngx_rtmp_mp4_module ? /* 主要支持rtmp MP4這塊點(diǎn)播相關(guān)功能,支持seek操作*/
ngx_rtmp_flv_module ?/* 主要是flv文件格式的點(diǎn)播相關(guān)功能,支持seek操作 */
ngx_rtmp_play_module ?/* ?rtmp點(diǎn)播相關(guān),支持本地,遠(yuǎn)程兩種方式點(diǎn)播,遠(yuǎn)程點(diǎn)播http方式,支持flv,mp4兩種格式 */
ngx_rtmp_record_module /* 視頻錄制默認(rèn)是flv格式, 支持按時(shí)間,按文件大小,幀個(gè)數(shù)錄制文件 */
/* hls文件切片相關(guān)*/
ngx_rtmp_hls_module
ngx_rtmp_mpegts
/* rtmp機(jī)制整體框架, 協(xié)議握手,初始化相關(guān),數(shù)據(jù)收發(fā)*/
ngx_rtmp_handshake 主要是是三次握手相關(guān)
ngx_rtmp_handler 主要是數(shù)據(jù)接收recv,發(fā)送send,ping命令相關(guān)
ngx_rtmp_init ?初始化連接相關(guān)的信息
ngx_rtmp_core_module 主要是rtmp協(xié)議核心配置相關(guān).
ngx_rtmp rtmp配置解析,rtmp事件框架的初始化信息,注冊(cè)事件回調(diào)函數(shù)(協(xié)議handler,amfhandler)
/* rtmp直播,以及統(tǒng)計(jì)、通知、控制相關(guān)功能*/
ngx_rtmp_receive 主要是rtmp協(xié)議數(shù)據(jù)接收這塊
ngx_rtmp_send 數(shù)據(jù)發(fā)送這塊,以及各種rtmp消息包發(fā)送封裝的函數(shù)
ngx_rtmp_live_module主要處理接收音視頻消息數(shù)據(jù),以及ngx_rtmp_live_av中進(jìn)行數(shù)據(jù)分發(fā),從接收到發(fā)送給每個(gè)其他session
ngx_rtmp_netcall_module 主要是http請(qǐng)求相關(guān)部分
ngx_rtmp_notify_module 主要rtmp發(fā)送http請(qǐng)求,通知作用主要監(jiān)聽connect,disconnect,play,publish,close,record_done等相關(guān)事件
ngx_rtmp_relay_module 主要是rtmp提供回源請(qǐng)求拉流,以及轉(zhuǎn)推,監(jiān)聽_result,_error, onStatus
ngx_rtmp_stat_module ?主要是rtmp流狀態(tài)信息可以輸出到本地文件
ngx_rtmp_shared 主要是rtmp協(xié)議內(nèi)存管理方面,其中用到了引用計(jì)數(shù)來管理內(nèi)存
ngx_rtmp_bandwidth 主要是rtmp協(xié)議的帶寬計(jì)費(fèi)
ngx_rtmp_cmd_module rtmp消息命令相關(guān)play,publish
ngx_rtmp_codec_module rtmp音視頻編解碼信息相關(guān)
ngx_rtmp_control_module 主要是一些控制接口,錄制開始/暫停,支持record,query,drop相關(guān)的接口
ngx_rtmp_eval ? ? ?主要提供一些變量替換的函數(shù)接口,有內(nèi)存泄漏
ngx_rtmp_amf ?ngx_rtmp_bitop ?主要是封裝讀,寫amf包信息
ngx_rtmp_access_module 監(jiān)聽play,publish事件,對(duì)ip做檢查訪問
ngx_rtmp_auto_push_module 多進(jìn)程方案,推流來時(shí),自動(dòng)推流到其他worker進(jìn)程
ngx_rtmp_exec_module 主要監(jiān)聽publish,play,close,record_done事件,然后進(jìn)行執(zhí)行腳本進(jìn)行相應(yīng)的業(yè)務(wù),如轉(zhuǎn)碼
ngx_rtmp_limit_module 主要監(jiān)聽connect以及disconnect事件,通過計(jì)算連接數(shù)量來限制連接個(gè)數(shù)
ngx_rtmp_log_module 主要是rtmp日志相關(guān),連接斷開disconncet事件的時(shí)候,輸出訪問日志相關(guān)
業(yè)務(wù)相關(guān)擴(kuò)展功能大體有四類:統(tǒng)計(jì)、通知、控制。它們的實(shí)現(xiàn)代價(jià)如下:
“統(tǒng)計(jì)”處理了數(shù)據(jù)收發(fā)部分的代碼;
“通知”事件框架;
“控制”耦合了具體功能的調(diào)用;
還有其他一些異常消息情況
總結(jié)
以上是生活随笔為你收集整理的nginx-rtmp源码概述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SecureCRT:保存输出日志的方法
- 下一篇: nginx主模块指令