1. 对消息的处理 
ngx_rtmp_receive_message里面,对消息的头部h的type做判断之后, 会调用cmcf->events[h->type]里面的handler,而这些handler是模块注册的 
ngx_rtmp.c里面,解析配置时,可能注册
ngx_rtmp_protocol_message_handler
ngx_rtmp_amf_message_handler
ngx_rtmp_user_message_handler
ngx_rtmp_aggregate_message_handler

2. 对amf命令的处理 
cmcf->amf_hash是存放amf命令名称与处理函数对应关系的地方。每个模块会在postconfiguration的时候,将要处理的命令与处理函数的对应关系放到cmcf->amf这个array里面 
cmcf->amf会在配置解析完成后,统一放到cmcf->amf_hash中。 
cmcf->amf_hash在ngx_rtmp_receive.c的ngx_rtmp_amf_message_handler函数中拿出来调 用。而ngx_rtmp_amf_message_handler也是1中注册的一种消息处理函数,专门用于处理amf类型的消息 
ngx_rtmp_cmd_module中注册了以下命令的处理方法: 
connect
createStream
closeStream
deleteStream
publish
play
seek
pause
pauseraw
ngx_rtmp_codec_module中注册了以下命令的处理方法: 
@setDataFrame
onMetaData
ngx_rtmp_relay_module中注册了以下命令的处理方法: 
_result
_error
onStatus

3. 命令的chain_handler 
一个模块xxx,在postconfiguration的时候,对于一个命令yyy,可能会定义一个函数ngx_rtmp_xxx_yyy来处理这个命 令,将全局的ngx_rtmp_yyy指向ngx_rtmp_xxx_yyy,并定义一个next_yyy,指向原来的ngx_rtmp_yyy 
例如: 
next_play = ngx_rtmp_play; 
ngx_rtmp_play = ngx_rtmp_live_play;

chain handler包括这些 
ngx_rtmp_connect_pt         ngx_rtmp_connect; 
ngx_rtmp_disconnect_pt      ngx_rtmp_disconnect; 
ngx_rtmp_create_stream_pt   ngx_rtmp_create_stream; 
ngx_rtmp_close_stream_pt    ngx_rtmp_close_stream; 
ngx_rtmp_delete_stream_pt   ngx_rtmp_delete_stream; 
ngx_rtmp_publish_pt         ngx_rtmp_publish; 
ngx_rtmp_play_pt            ngx_rtmp_play; 
ngx_rtmp_seek_pt            ngx_rtmp_seek; 
ngx_rtmp_pause_pt           ngx_rtmp_pause; 
ngx_rtmp_stream_begin_pt    ngx_rtmp_stream_begin; 
ngx_rtmp_stream_eof_pt      ngx_rtmp_stream_eof; 
ngx_rtmp_stream_dry_pt      ngx_rtmp_stream_dry; 
ngx_rtmp_recorded_pt        ngx_rtmp_recorded; 
ngx_rtmp_set_buflen_pt      ngx_rtmp_set_buflen;

nginx rtmp代码架构1 hook点总结相关推荐

  1. 1小时学会:最简单的iOS直播推流(二)代码架构概述

    最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源 ...

  2. nginx rtmp 编码_基于Nginx的媒体服务器技术

    国内应用比较多的开源流媒体服务器nginx-rtmp-module一直存在功能少.集群化难度大等问题.在LiveVideoStack线上分享中,PingOS 开源项目组开发工程师.UCloud RTC ...

  3. Nginx Rtmp Module - HLS切片和级联播放

    #Nginx Rtmp Module - HLS切片和播放 1.名词解释 媒体片段文件(.ts): 媒体片段是由源站生成的,基于编码后的媒体源,并且是由一系列的 .ts 格式的文件组成,其中包含了你想 ...

  4. Nginx RTMP 功能研究

    Nginx-RTMP功能调研 1. RTMP协议介绍...2 2.RTMP server.3 2.1当前的流媒体server.3 2.2Wowza功能...3 3.Nginx-based RTMP s ...

  5. ffmpeg,rtmpdump和nginx rtmp实现录屏,直播和录制

    ffmpeg,rtmpdump和nginx rtmp实现录屏,直播和录制 2014年 四月 19日 周六 | tags: ffmpeg, rtmp, rtmpdump, nginx, -- (perm ...

  6. ffmpeg推流+NGINX(RTMP)+VLC-QT拉流(Win7)

    1 简介 本文旨在在Windows 7系统上实现利用FFmpeg软件推流到部署的带RTMP模块的Nginx流媒体服务器上,在拉流端,基于VLC库的VLC-QT库实现拉流播放. 2 ffmpeg下载安装 ...

  7. [转]Nginx RTMP 功能研究(Nginx流媒体)

    转自:http://blog.csdn.net/cccallen/article/details/8440191 看点: 1.    Nginx 配置信息与使用.  (支持 rtmp与HLS配置) 2 ...

  8. linux nginx rtmp 死机,nginx rtmp 实时直播视频流 发布者网络不稳定导致无法直播问题...

    nginx rtmp 实时直播视频流 发布者网络不稳定导致无法直播问题 直播项目使用nginx搭配rtmp扩展实现实时音视频流,最近一次直播讲师在外出差,使用酒店WiFi网络,苹果笔记本,Safari ...

  9. 深入浅出Nginx实战与架构原理

    本文主要内容如下(让读者朋友们深入浅出地理解Nginx,有代码有示例有图): 1.Nginx是什么? 2.Nginx具有哪些功能? 3.Nginx的应用场景有哪些? 4.Nginx的衍生生态有哪些? ...

最新文章

  1. Git Manual / Git使用手册 / Git, GitLab, Git Bash, TortoiseGit (建议全文复制到Word文档中通过导航窗格查看)...
  2. 解决弹出框滚动穿透的问题(问题是body也会滚动)
  3. 鸿蒙系统第五批公测,鸿蒙系统即将迎来二轮公测,nova机型增添其中
  4. spring boot地一讲
  5. ubuntu安装wine之后进不了系统
  6. 如何用计算机做出折线图,曲线图怎么做-怎样在电脑上做曲线图电脑上如何做曲线图 – 手机爱问...
  7. Python编程基础01:搭建Python开发环境
  8. Java程序员面试笔试提纲(部分)
  9. 数字证书产品的主题通常含有如下字段
  10. 西安力邦智能医疗amp;可穿戴设备沙龙--第1期---苹果HealthKit、谷歌GoogleFit来袭,智能医疗要爆发吗?...
  11. android tabhost的使用方法,Android TabHost组件使用方法详解
  12. foobar2000在线标签服务器,在Foobar2000播放器中从音乐名获取标签的技巧
  13. 2021-09-14TL431与LM317的区别
  14. layui在IE浏览器刷table刷新数据未更新
  15. Vue组件嵌套时生命周期函数触发顺序是什么?
  16. java curator_关于Curator学习过程问题
  17. 如何察看僵尸进程 zombie
  18. 基于B/S的校园餐厅网上订餐系统
  19. xshell编程自动备份数据库
  20. 计算机组成与设计 硬件/软件接口 Risc-v 版

热门文章

  1. IIS如何配置可以下载APK、IPA文件
  2. 神探tcpdump第三招
  3. 几大搜索引擎的网站登录入口
  4. HDU - 6118 度度熊的交易计划(最大费用可行流)
  5. HDU - 5090 Game with Pearls(二分图最大匹配)
  6. POJ - 2104 K-th Number(主席树)
  7. 计算机桌面ie图标无法删除,win7系统桌面ie图标无法删除怎么办
  8. python将list写入文件_Python:将 list 写入一个 txt 文件
  9. GraphSAGE节点分类
  10. 机器学习-回归之逻辑回归算法原理及实战