nginx-rtmp源码概述

github:https://github.com/arut/nginx-rtmp-module/wiki

/* 点播相关*/

ngx_rtmp_dash_module

ngx_rtmp_mp4

ngx_rtmp_mp4

ngx_rtmp_mp4_module   /* 主要支持rtmp MP4这块点播相关功能,支持seek操作*/

ngx_rtmp_flv_module  /* 主要是flv文件格式的点播相关功能,支持seek操作 */

ngx_rtmp_play_module  /*  rtmp点播相关,支持本地,远程两种方式点播,远程点播http方式,支持flv,mp4两种格式 */

ngx_rtmp_record_module /* 视频录制默认是flv格式, 支持按时间,按文件大小,帧个数录制文件 */

/* hls文件切片相关*/

ngx_rtmp_hls_module

ngx_rtmp_mpegts

/* rtmp机制整体框架, 协议握手,初始化相关,数据收发*/

ngx_rtmp_handshake 主要是是三次握手相关

ngx_rtmp_handler 主要是数据接收recv,发送send,ping命令相关

ngx_rtmp_init  初始化连接相关的信息

ngx_rtmp_core_module 主要是rtmp协议核心配置相关.

ngx_rtmp rtmp配置解析,rtmp事件框架的初始化信息,注册事件回调函数(协议handler,amfhandler)

/* rtmp直播,以及统计、通知、控制相关功能*/

ngx_rtmp_receive 主要是rtmp协议数据接收这块

ngx_rtmp_send 数据发送这块,以及各种rtmp消息包发送封装的函数

ngx_rtmp_live_module主要处理接收音视频消息数据,以及ngx_rtmp_live_av中进行数据分发,从接收到发送给每个其他session

ngx_rtmp_netcall_module 主要是http请求相关部分

ngx_rtmp_notify_module 主要rtmp发送http请求,通知作用主要监听connect,disconnect,play,publish,close,record_done等相关事件

ngx_rtmp_relay_module 主要是rtmp提供回源请求拉流,以及转推,监听_result,_error, onStatus

ngx_rtmp_stat_module  主要是rtmp流状态信息可以输出到本地文件

ngx_rtmp_shared 主要是rtmp协议内存管理方面,其中用到了引用计数来管理内存

ngx_rtmp_bandwidth 主要是rtmp协议的带宽计费

ngx_rtmp_cmd_module rtmp消息命令相关play,publish

ngx_rtmp_codec_module rtmp音视频编解码信息相关

ngx_rtmp_control_module 主要是一些控制接口,录制开始/暂停,支持record,query,drop相关的接口

ngx_rtmp_eval      主要提供一些变量替换的函数接口,有内存泄漏

ngx_rtmp_amf  ngx_rtmp_bitop  主要是封装读,写amf包信息

ngx_rtmp_access_module 监听play,publish事件,对ip做检查访问

ngx_rtmp_auto_push_module 多进程方案,推流来时,自动推流到其他worker进程

ngx_rtmp_exec_module 主要监听publish,play,close,record_done事件,然后进行执行脚本进行相应的业务,如转码

ngx_rtmp_limit_module 主要监听connect以及disconnect事件,通过计算连接数量来限制连接个数

ngx_rtmp_log_module 主要是rtmp日志相关,连接断开disconncet事件的时候,输出访问日志相关

业务相关扩展功能大体有四类:统计、通知、控制。它们的实现代价如下:
“统计”处理了数据收发部分的代码;
“通知”事件框架;
“控制”耦合了具体功能的调用;
还有其他一些异常消息情况

猜你喜欢

转载自blog.csdn.net/wu5215080/article/details/72519290