nginx-rtmp-module的缺陷分析(三)

VHOST(虚拟主机)就是一址多域的意思,主流的Web服务器都有这个功能,它解决了运行Web的主机在同一个IP地址情况下可以为不同域名的请求提供服务的问题。假设有两个域名A和B,在DNS上A和B都指向同一个A记录(IPv4)或者AAAA记录(IPv6),Web服务器通过不同的域名信息解析到不同的配...

2019-05-11 22:42:03

阅读数 100

评论数 0

nginx-rtmp-module的缺陷分析(二)

nginx-rtmp-module使用指令push和pull来relay媒体流数据,以便分布式部署服务。 当nginx-rtmp-module作为边缘服务器(一般不会向边缘服务器推流)时,使用pull从源服务器获取媒体流数据,俗称“回源”。先看原理图: 注意:上图是单进程模式的pull回源...

2019-04-24 16:18:52

阅读数 1640

评论数 2

nginx-rtmp-module的缺陷分析

Arut最初在开发nginx-rtmp-module的时候只实现了单进程模式,好处是架构简单,推送和播放,数据统计,流媒体控制等都在一个进程上完成。但是这显然浪费了Nginx多进程(在Linux和FreeBSD平台上每个进程都可以绑定一个CPU核心,以减少进程切换带来的开销)的处理能力。但是,如果...

2019-04-14 11:41:35

阅读数 178

评论数 1

基于nginx-rtmp-module模块实现的HTTP-FLV直播模块nginx-http-flv-module(三)

接上一篇《基于nginx-rtmp-module模块实现的HTTP-FLV直播模块nginx-http-flv-module(二)》内容。 项目地址:https://github.com/winshining/nginx-http-flv-module,欢迎大家下载测试,返回bug和提交...

2018-08-08 17:58:06

阅读数 2349

评论数 10

基于nginx-rtmp-module模块实现的HTTP-FLV直播模块nginx-http-flv-module(二)

      由于《基于nginx-rtmp-module模块实现的HTTP-FLV直播模块nginx-http-flv-module(一)》内容已经很长,所以后续的更新将记录在这儿。非常感谢网友们的测试反馈和代码提交!项目地址:https://github.com/winshining/nginx...

2018-03-09 01:50:41

阅读数 15812

评论数 33

基于nginx-rtmp-module模块实现的HTTP-FLV直播模块nginx-http-flv-module(一)

      本文后续的内容将在这里更新:《基于nginx-rtmp-module模块实现的HTTP-FLV直播模块nginx-http-flv-module(二)》。注意:下文的配置很多已经不能用了,因为现在的实现跟早期的实现相差有点大。而为了看到整个项目的变迁史,所以保留了下来,下文的更新中提到...

2018-02-07 22:23:29

阅读数 22163

评论数 66

I帧,P帧和B帧以及DTS和PTS的关系

基本概念: I frame:帧内编码帧,又称intra picture,I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图象。I帧可以看成是一个图像经过压缩后的产物。 P frame:前向预测编码帧,又称predi...

2017-05-19 18:52:01

阅读数 361

评论数 0

如何从海量日志中提取访问最多的10个IP

算法思想:分而治之+Hash 1、IP地址最多有2^32=4G种取值情况,所以不能完全加载到内存中处理; 2、可以考虑采用分而治之的思想,按照IP地址的Hash(IP) % 1024值,把海量IP日志分别存储到1024个小文件中,这样,每个小文件最多包含4MB个IP地址;这里解释一下为什么用Has...

2017-05-19 15:22:17

阅读数 2139

评论数 0

SPS/PPS/IDR

H.264码流第一个 NALU 是 SPS(序列参数集Sequence Parameter Set) 对应H264标准文档 7.3.2.1 序列参数集的语法进行解析 H.264码流第二个 NALU 是 PPS(图像参数集Picture Parameter Set) 对...

2017-05-15 22:54:03

阅读数 376

评论数 0

支持POST方式的webbench

webbench是一款轻量级的web服务器压力测试工具,目前网上能找到的最新版本是webbench-1.5,原作者已经于2004年停止维护。         webbench采用一个父进程fork出多个子进程的方式对目标服务器器发起访问,指定时间超时后,将计算的结果汇总后发送给父进程。webben...

2017-03-16 14:24:24

阅读数 2313

评论数 1

加载动态链接库的相关接口dlopen,dlsym和dlclose等

nginx从1.9.11开始,支持运行时动态加载模块了,浏览了下代码实现,在类unix系统上是用dlopen,dlsym和dlclose实现的。下面看看这几个函数的功能。   dlopen 功能: 打开一个动态链接库。 包含头文件: #include 函数定义: void * dlopen(...

2017-03-14 16:55:36

阅读数 532

评论数 0

对nginx上传文件的第三方实现nginx-upload-module的修改

        nginx官方推荐的第三方上传模块nginx-upload-module在nginx-1.3.9后已经不能编译通过,究其原因是因为nginx-1.3.9废弃了ngx_http_request_body_t中的to_write成员指针。         github上有人解决了这个...

2017-01-29 12:42:35

阅读数 2792

评论数 11

nginx变量机制

初识变量 前面曾讲过nginx配置文件的解析过程,也就是nginx如何在启动的过程中对用户设定的配置文件进行解析,并将配置文件中的各个配置项与配置值转换为对应的nginx内部变量值,从而能让nginx按照用户预想的情况去运行。 如果只是一些比较简单并且确定的功能配置需求,那么nginx用户能够很...

2016-10-12 18:15:41

阅读数 1634

评论数 0

用Redis的set指令实现锁

本文参考了http://huoding.com/2015/09/14/463。         我们知道,现在的Redis实现加锁的方法比较简单,直接调用Redis的set指令: $redis->set($key, $random, array('nx', 'ex' => $expir...

2016-06-25 11:01:25

阅读数 6341

评论数 1

数据库分库和分表

先mark,周末再整理: http://zhengdl126.iteye.com/blog/419850

2016-05-13 11:11:59

阅读数 297

评论数 0

如何判断链表中是否有环

1.如何判断链表是否有环?如果有两个头结点指针,一个走的快,一个走的慢,那么若干步以后,快的指针总会超过慢的指针一圈。 2.如何计算环的长度?第一次相遇(超一圈)时开始计数,第二次相遇时停止计数。 3.如何判断环的入口点:相遇点p到环入口的距离=头指针到环入口的距离,因此,分别从相遇点、头指...

2016-04-04 22:32:56

阅读数 353

评论数 0

提高程序运行效率的10个简单方法

转载自:http://chuansong.me/n/1013527,有修改。     对于每一个程序员来说,程序的运行效率都是一个值得重视,并为之付出努力的问题。但是程序性能的优化也是一门复杂的学问,需要很多的知识,然而并不是每个程序员都具备这样的知识,而且论述如何优化程序提高程序运行效率的...

2016-01-28 19:13:40

阅读数 1439

评论数 0

在一亿个数中查找最大的k个数(k << 1,000,000,000)

在一亿个整数中查找最大(小)的k个数(k         之前跟一同事说起互联网公司的面试题,他说一般思路是先排序,然后再处理数据肯定没错。是不是这样的呢?对于这个问题,我们想想如下的几个方法:         1.使用大多数情况下最快的排序方法—快速排序来解决可以吗?思路是将一亿个整数放到一个...

2015-12-23 22:24:14

阅读数 2251

评论数 0

C语言中的柔性数组

前段时间在阅读nginx的源代码时,碰到一个之前从未碰到的问题,nginx定义的hash表中的元素的结构体: typedef struct { void *value; u_short len; u_char ...

2015-12-18 11:52:31

阅读数 312

评论数 0

程序的一些小优化

跳槽后才真正接触了C++,之前囫囵吞枣看了些C++的书,但是发现真正在项目使用时,很多地方都有改进的地方。 1.vector的resize:         场景是这样的,客户端向服务器发起查询符合某个条件的数据库记录的请求,服务器查询完后将记录返回给移动端。服务器查询到数据记录后,将记录放入v...

2015-12-15 17:43:58

阅读数 292

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭