nginx-rtmp源码剖析
文章平均质量分 92
分析直播服务ngin-rtmp源码,以及相关直播CDN技术分析
优惠券已抵扣
余额抵扣
还需支付
¥9.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
思心
这个作者很懒,什么都没留下…
展开
-
直播CDN架构内幕
直播整体介绍文章主要从直播CDN的业务介绍,CDN整体技术架构,故障排查,CDN系统质量评估来做介绍分析直播从技术架构上讲主要分以下三类:传统三层的CDN架构:1推流边缘—2推流区域—3源站----2拉流区域----1拉流边缘p2p直播:上行和传统直播架构差不多,下游主要通过p2p的方式将直播流进行分块再切片,然后通过矿机的方式分发piece片,拉流sdk端再进行还原互动直播:后面有时...原创 2019-05-27 16:27:47 · 11155 阅读 · 11 评论 -
nginx-rtmp连接建立过程
连接建立整体过程:解析listen配置-ngx_rtmp_core_listen根据ip地址端口创建ngx_listening_t监听套接字-ngx_rtmp_optimize_servers创建socket,打开监听–ngx_open_listening_socketsaccpet监听事件初始化–ngx_event_process_initrtmp连接创建 ngx_rtmp_init...原创 2019-06-13 11:17:22 · 1094 阅读 · 0 评论 -
nginx-rtmp模块初始化
rtmp模块初始化源码剖析rtmp模块初始化过程主要分为以下几个点: 上下文结构初始化、配置项解析、配置项合并、server 相关端口设置。相关源码文件主要在ngx_rtmp.c和ngx_rtmp.h文件中下面主要从rtmp框架相关的数据结构,以及整个初始化过程进行分析。数据结构nginx-rtmp模块的核心框架定义的通用数据结构主要有以下几个:ngx_rtmp_module_t 、ngx...原创 2019-06-06 17:54:58 · 909 阅读 · 0 评论 -
nginx-rtmp模块内存池剖析
ngx_rtmp_shared.c文件主要是nginx-rtmp的内存池nginx本身有一套自己的内存池,nginx-rtmp模块根据业务特性音视频又写了一套内存回收的机制下面主要从nginx-rtmp内存池的内部实现原理以及内存池的使用做介绍分析提供外部调用的APIngx_rtmp_alloc_shared_buf 申请分配块内存ngx_rtmp_free_shared_ch...原创 2019-06-03 21:02:51 · 629 阅读 · 0 评论 -
ngx_rtmp_live_module 模块
ngx_rtmp_live_module 模块整体描述live模块是负责音视频流的分发作用,主要将接收来自publisher推流上来的音视频数据分发给每个player播放连接。本文章主要集中分析以下三点1)流的组织结构2)流数据的分发3)流资源的回收模块数据结构分析直播服务器是支持多路不同的流名同时推流,而且每路流是可以支持很多个观众同时并发的,那么这些多个推流拉流行为,在服务器内部...原创 2019-06-03 17:30:19 · 1452 阅读 · 0 评论 -
ngx_rtmp_record_module 模块分析
1 ngx_rtmp_record_module模块功能描述本模块主要是直播转点播录制的功能,跟点播这个相关的模块还有ngx_rtmp_play_module,ngx_rtmp_flv_module,ngx_rtmp_mp4_modulengx_rtmp_control_module 这个模块提供可以控制录制的开始和结束本模块只分析record模块,其他点播相关后续再分析。1.1 配...原创 2019-05-30 20:39:34 · 845 阅读 · 1 评论 -
ngx_rtmp_control_module 模块解读
1、模块功能描述本模块主要提供了外部接口控制rtmp流状态的接口,通过这些接口进行一些断流,录制,流名重定向等以下接口:record 录制功能drop 断流功能,涉黄涉暴力的话可以通过这个方式断开服务端的推流redirect 对推拉流进行重定向功能1.1 配置示例http { server { listen 88; server...原创 2019-05-30 15:50:05 · 2294 阅读 · 7 评论 -
ngx_rtmp_init_queue 事件队列解读
问题来由:在ngx_rtmp_relay_module模块当中有个static预拉流的事件,感觉这个设计有点小巧妙且匪夷所思。试想一下,如果是自己设计会怎么做?为啥不直接弄一个定时器事件?问题分析:先说说 ngx_rtmp_init_queue 这个队列,nginx自身定义了ngx_posted_accept_events和ngx_posted_events俩类事件队列这是一个post事件队...原创 2019-05-29 16:52:23 · 464 阅读 · 0 评论 -
nginx_rtmp_relay_module模块解读
nginx_rtmp_relay_module主要逻辑解读以及源码分析原创 2019-05-29 15:20:21 · 1309 阅读 · 0 评论 -
nginx之rtmp模块引用计数设计
对于没有垃圾自动回收机制的语言(如C/C++)来说,引用计数提供了一种简洁高效的内存管理方法,nginx-rtmp模块为方便管理内存,在给ngx_chain_t分配内存的时候,多分配了sizeof(uint32_t)类型的字节数,用来方便管理内存在ngx_rtmp_shared.c文件中#define NGX_RTMP_REFCOUNT_TYPE uint3...原创 2017-02-09 15:37:53 · 1056 阅读 · 1 评论 -
nginx-rtmp源码概述
github:https://github.com/arut/nginx-rtmp-module/wiki/* 点播相关*/ngx_rtmp_dash_modulengx_rtmp_mp4ngx_rtmp_mp4ngx_rtmp_mp4_module /* 主要支持rtmp MP4这块点播相关功能,支持seek操作*/ngx_rtmp_flv_module /*...原创 2017-05-19 11:38:46 · 5044 阅读 · 0 评论