nginx-rtmp
文章平均质量分 64
幽雨雨幽
C/C++软件工程师
展开
-
nginx-rtmp 之统计在线clients
1. 使用Statistics 模块中的以下两个命令来实现统计在线人数的功能rtmp_stat rtmp_stat_stylesheet # HTTP can be used for accessing RTMP stats http { server { listen 8080; # This URL provides RTMP statistics in XML locatio.原创 2021-10-25 16:49:15 · 737 阅读 · 1 评论 -
nginx rtmp module 代码详解 各模块主要功能
ngx_rtmp_dash_module http模块里播放MPEG-DASH相关处理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格式, 支持按时间,按文件转载 2021-04-13 16:08:50 · 552 阅读 · 0 评论 -
Nginx-rtmp直播之业务流程分析--比较详细
1. 综述1.1 直播原理使用 obs 向 nginx 推送一个直播流,该直播流经 nginx-rtmp 的 ngx_rtmp_live_module 模块转发给 application live 应用,然后使用 vlc 连接 live,播放该直播流。1.2 nginx.conf# 创建的子进程数worker_processes 1;error_log stderr ...转载 2018-11-28 16:51:20 · 4928 阅读 · 0 评论 -
nginx-rtmp message
nginx-rtmp 对一些客户端发送的请求并没有做出处理,比如说releaseStream 和FCPublish log 跟踪:2018/12/19 14:03:27 [debug] 8096#0: *1 AMF read (1) 02 '?'2018/12/19 14:03:27 [debug] 8096#0: *1 AMF read (2) 00 0D '??'2018/1...原创 2018-12-19 14:14:30 · 487 阅读 · 0 评论 -
AVC sequence header & AAC sequence header
推送H.264和AAC的重要前提RTMP的音视频流的封装形式和FLV格式相似, 流媒体服务器向客户端发送包含H264和AAC的RTMP直播流,需要首先发送:AVC sequence header AAC sequence header 这两个header非常重要,是客户端解码的必需部分.因为以上两个参数只在客户端开始拉流开始的时候接收一次.所以当H264参数发生变化时(如分辨率或帧...转载 2018-12-20 10:59:35 · 3579 阅读 · 0 评论 -
【推荐】Nginx基础知识之————多模块(非覆盖安装、RTMP在线人数实例安装测试)
说明:已经安装好的nginx,需要添加一个未被编译安装的模块,需要怎么弄呢?具体:这里以安装第三方nginx-rtmp-module和nginx-accesskey-2.0.3模块为例,nginx的模块是需要重新编译nginx,而不是像apache一样配置文件引用.so1. 下载第三方扩展模块nginx-rtmp-modulesudo git clone https://githu...转载 2019-01-22 14:14:25 · 406 阅读 · 0 评论 -
Exec wrapper in bash
arut edited this page on 18 Oct 2012 · 2 revisionsYou can write exec wrapper in any language. However you should pay attention to termination process. When publisher closes the stream all executed p...转载 2018-08-16 17:14:06 · 527 阅读 · 0 评论 -
nginx_rtmp中解析sps和pps
摘要:一首先这里要啰嗦一下,为什么要提取sps和ppssps主要包含了视频的分辨率和profile类型信息。pps是什么暂时没有关注。二在nginx-rtmp中,如何提取到sps和pps信息呢?直接找到nginx_rtmp循环主干。ngx_rtmp_live_av(ngx_rtmp_session_t*s,ngx_rtmp_header_t*h, ngx_chain_t*in)一 ...转载 2018-06-01 15:29:27 · 1312 阅读 · 0 评论 -
从nginx-rtmp中提取一帧h264帧
摘要:一为什么要提取h264帧? 因为我们经常需要从事实流中截取一些画面,用于变动的封面,安全,鉴黄等用处。二从nginx_rtmp中怎么提取一帧h264帧呢? 前面我们讲过如何提取sps和pps,这里只需要提取一个nalu,如果是I帧就手动把sps和pps添加到帧前面就可以了。三提取实现代码 可以参照前面sps和pps提取, 从ngx_rtmp_live_av(ngx_rtmp_sess...转载 2018-06-01 14:35:00 · 1419 阅读 · 0 评论 -
nginx-rtmp源码概述
/* 点播相关*/ngx_rtmp_dash_modulengx_rtmp_mp4ngx_rtmp_mp4ngx_rtmp_mp4_module /* 主要支持rtmp MP4这块点播相关功能,支持seek操作*/ngx_rtmp_flv_module /* 主要是flv文件格式的点播相关功能,支持seek操作 */ngx_转载 2017-08-07 17:25:12 · 863 阅读 · 0 评论 -
ngx_rtmp_notify_module.c 源码分析
static ngx_int_tngx_rtmp_notify_parse_http_header(ngx_rtmp_session_t *s, ngx_chain_t *in, ngx_str_t *name, u_char *data, size_t len){ ngx_buf_t *b; ngx_int_t matched;原创 2017-07-17 10:40:16 · 652 阅读 · 0 评论 -
Nginx RTMP 功能研究
Nginx-RTMP功能调研1. RTMP协议介绍...22.RTMP server.32.1当前的流媒体server.32.2Wowza功能...33.Nginx-based RTMP server.53.1 Nginx rtmp 功能点...53.2编译nginx rtmp模块...63.3配置以及功能介绍...63.4转载 2017-05-23 17:18:01 · 887 阅读 · 0 评论 -
nginx rtmp代码架构1 hook点总结
1. 对消息的处理 ngx_rtmp_receive_message里面,对消息的头部h的type做判断之后,会调用cmcf->events[h->type]里面的handler,而这些handler是模块注册的 ngx_rtmp.c里面,解析配置时,可能注册ngx_rtmp_protocol_message_handlerngx_rtmp_amf_message_handler转载 2017-03-22 14:18:03 · 836 阅读 · 0 评论 -
nginx之rtmp模块引用计数设计
对于没有垃圾自动回收机制的语言(如C/C++)来说,引用计数提供了一种简洁高效的内存管理方法, nginx-rtmp模块为方便管理内存,在给ngx_chain_t分配内存的时候,多分配了sizeof(uint32_t)类型的字节数,用来方便管理内存在ngx_rtmp_shared.c文件中#define NGX_RTMP_REFCOUNT_TYPE转载 2017-02-24 14:05:52 · 609 阅读 · 0 评论 -
NGINX-RTMP复杂度分析
很好奇nginx如何处理异步请求,我看nginx-rtmp在处理异步时状态也还行,所以调试下看看。纯异步做rtmp协议,真是非常复杂,特别是需要做回源。无数的回调和处理逻辑。NGINX-RTMP几个简化问题的方法:1. RTMP-CHUNK协议解析直接在一个函数里做,避免添加状态。2. CHUNK的长度可以计算得出,所以收到要求的长度的数据后,才开始协议解析。3. 收发数据,协议解转载 2017-02-23 17:46:05 · 2427 阅读 · 0 评论 -
视频直播点播nginx-rtmp开发手册中文版
参照官方文档https://github.com/arut/nginx-rtmp-module/wiki/Directives自己做的翻译版,参照网上一些版本,就一些专业词汇做了校正 目录核心 rtmp server listen application timeout ping ping_timeout max_streams ack_window...转载 2017-02-17 17:32:52 · 2914 阅读 · 0 评论 -
nginx-rtmp常用指令
指令Corertmp语法:rtmp { ... }上下文:根描述:保存所有 RTMP 配置的块。server语法:server { ... }上下文:rtmp描述:声明一个 RTMP 实例。rtmp { server { }}listen语法:listen (addr[:port]|port|unix:path) [bind] [ip转载 2017-02-17 11:07:07 · 1228 阅读 · 0 评论 -
ngx_rtmp_shared模块对ngx_chain_t的操作总结
voidngx_rtmp_free_shared_chain(ngx_rtmp_core_srv_conf_t *cscf, ngx_chain_t *in){ ngx_chain_t *cl;//如果引用计数不为0,返回 if (ngx_rtmp_ref_put(in)) { return; }//如果引用计数原创 2018-01-17 18:16:19 · 665 阅读 · 0 评论 -
利用nginx搭建RTMP视频点播、直播、HLS服务器
开发环境Ubuntu 14.04 servernginx-1.8.1nginx-rtmp-modulenginx的服务器的搭建安装nginx的依赖库sudo apt-get updatesudo apt-get install libpcre3 libpcre3-devsudo apt-get install openssl libssl-dev123配转载 2017-02-07 14:36:51 · 2186 阅读 · 0 评论 -
RTMP在NGINX的启动
本文主要介绍通过前文介绍的将rtmp模块编译进nginx情况下,启动nginx时rtmp模块主要做了哪些工作Nginx的模块开发三段式定义nginx模块需要定义三个变量:command,ctx,module。RTMP此三段式在rtmp.c文件中,模块参考代码如下:static ngx_command_t ngx_rtmp_commands[] = { { ngx_string("转载 2017-08-24 11:19:05 · 1305 阅读 · 0 评论