你的 Nginx 已经有了 RTMP 直播功能的话,如果你还想统计某直播频道当前观看用户量的话,可以加入 with-http_xslt_module 模块。具体步骤如下:
        1.查看原来的参数
        /usr/local/nginx/sbin/nginx -V
        输出中可以得到原来编译时带有的参数,比如作者得到:
        --user=nginx --group=nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_ssl_module --with-http_flv_module --with-http_perl_module --with-mail
        这些参数在我们安装新模块时仍然有用。
        2.下载 nginx-rtmp-module 安装包
        nginx-rtmp-module-master.zip,最新下载地址:https://github.com/arut/nginx-rtmp-module
        下载后将其解压缩得到 nginx-rtmp-module-master 目录。
        3.下载 nginx-1.3.8.tar.gz 包
        可以在 http://nginx.org/download/ 找你需要的版本。
        下载后解压缩得到 nginx-1.3.8 目录。
        4.关闭 nginx
        ps - ef | grep nginx
        在进程列表里找到 master 进程,这是 nginx 的主进程号。
        kill -TERM 主进程号
        nginx 被关闭。
        5.安装其他依赖包
        yum install pcre-devel
        yum install openssl-devel
        yum install perl-devel perl-ExtUtils-Embed
        yum install gcc
        yum install libxml2 libxml2-devel libxslt libxslt-devel
        6.编译 with-http_xslt_module 模块
        在步骤一得到的一系列参数后增加以下参数:
        --with-http_xslt_module --add-module=/home/defonds/nginx-rtmp-module-master
        其中 /home/defonds/nginx-rtmp-module-master 是步骤二得到的目录。
        切换进入步骤三得到的 nginx-1.3.8 目录,使用新组合得到的参数列表重新配置:
        ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_ssl_module --with-http_flv_module --with-http_perl_module --with-mail --with-http_xslt_module --add-module=/home/defonds/nginx-rtmp-module-master
        然后编译:
        make
        最后替换掉原来的二进制执行文件:
        cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
        cp ./objs/nginx /usr/local/nginx/sbin/
        7.修改 nginx 配置文件
        创建一个简单地 xls 表格文件 nclients.xsl 用于提取观看当前频道的用户数量,编辑其内容如下:

  1. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  2. <xsl:output method="html"/>
  3. <xsl:param name="app"/>
  4. <xsl:param name="name"/>
  5. <xsl:template match="/">
  6. <xsl:value-of select="count(//application[name=$app]/live/stream[name=$name]/client[not(publishing) and flashver])"/>
  7. </xsl:template>
  8. </xsl:stylesheet>

然后将其放在一个目录中,比如 /home/www。
        修改 nginx 主配置文件 nginx.conf,添加以下内容:

  1. location /stat {
  2. rtmp_stat all;
  3. allow 127.0.0.1;
  4. }
  5. location /nclients {
  6. proxy_pass http://127.0.0.1/stat;
  7. xslt_stylesheet /home/www/nclients.xsl app='$arg_app' name='$arg_name';
  8. add_header Refresh "3; $request_uri";
  9. }

8.重启 nginx
        /usr/local/nginx/sbin/nginx
        No news is good news,终端没有输出证明启动成功。否则参照终端给的异常信息检查主配置文件。
        根据直播频道访问以下地址:
        http://直播服务器IP/nclients?app=app应用名&name=频道名
        有返回结果表示 with-http_xslt_module 模块安装成功。返回结果就是当前频道的观看人数。

参考资料:Nginx RTMP 模块 nginx-rtmp-module 指令详解
https://github.com/arut/nginx-rtmp-module/wiki/Getting-number-of-subscribers

让你的 Nginx 的 RTMP 直播具有统计某频道在线观看用户数量的功能的更多相关文章

  1. Nginx模块之———— RTMP模块 统计某频道在线观看流的客户数

    获得订阅者人数,可以方便地显示观看流的客户数. 查看已经安装好的模块 /usr/local/nginx/sbin/nginx -V 安装从源编译Nginx和Nginx-RTMP所需的工具 sudo a ...

  2. 搭建rtmp直播流服务之1:使用nginx搭建rtmp直播流服务器(nginx-rtmp模块的安装以及rtmp直播流配置)

    欢迎大家积极开心的加入讨论群 群号:371249677 (点击这里进群) 一.方案简要 首先通过对开发方案的仔细研究(实时监控.流媒体.直播流方案的数据源-->协议转换-->服务器--&g ...

  3. 实时监控、直播流、流媒体、视频网站开发方案流媒体服务器搭建及配置详解:使用nginx搭建rtmp直播、rtmp点播、,hls直播服务配置详解

    注意:这里不会讲到nginx流媒体模块如何安装的问题,只研究rtmp,hls直播和录制相关的nginx服务器配置文件的详细用法和说明.可以对照这些命令详解配置nginx -rtmp服务 一.nginx ...

  4. 基于nginx的rtmp直播服务器(nginx-rtmp-module实现)

    首先,在搭建服务之前先了解下目前主流的几个直播协议: 1.RTMP: 实时消息传输协议,Real Time Messaging Protocol,是 Adobe Systems 公司为 Flash 播 ...

  5. Nginx 搭建rtmp直播服务器

    1.到nginx源码目录新建个rtmp目录 ,进入  git clone https://github.com/arut/nginx-rtmp-module.git   2.重编译nginx 代码如下 ...

  6. ubuntu 上采用nginx做rtmp 直播 服务器

    首先安装必要的依赖库   sudo apt-get install autoconf automake sudo apt-get install libpcre3 libpcre3-dev   安装 ...

  7. Nginx 的 RTMP 模块的在线统计功能 stat 在 multi-worker 模式下存在 Bug

    < 让你的 Nginx 的 RTMP 直播具有统计某频道在线观看用户数量的功能>一文介绍了 Nginx 的在线统计模块.         我们的在线直播服务使用了 Nginx 的 Rtmp ...

  8. nginx开发(四)调用ffmpeg,搭建rtmp直播流。

    1: 修改conf文件,配置rtmp直播 打开usr/local/nginx/conf/nginx.conf,添加红色内容: rtmp {#rtmp点播配置    server {        li ...

  9. 极速搭建RTMP直播流服务器+webapp (vue) 简单实现直播效果

    在尝试使用webRTC实现webapp直播失败后,转移思路开始另外寻找可行的解决方案.在网页上尝试使用webRTC实现视频的直播与看直播,在谷歌浏览器以及safari浏览器上测试是可行的.但是基于基座 ...

随机推荐

  1. skynet之伪取消定时器

    1.截至目前群里的成员已经对skynet中的timeout提出了更多的要求.目前skynet提供的定时器是倒计时形式,且定时器一旦设置后,便不能撤销(至少目前的实现是这样),然后调用 cb 最近有人提 ...

  2. 落地案例|日本雅虎如何在 OpenStack 上大规模构建和运行 Kubernetes

    今天的帖子是由日本雅虎的基础设施工程团队撰写,内容是他们如何在 Kubernetes 上运行 OpenStack.这篇帖子是由日本雅虎的工程博客编译而来. 简介: 这篇帖子大致描述了日本雅虎在 Goo ...

  3. 【C#笔札】 界面逐渐显现的实现

    如果labview做 就如同上图,so eazy! 现改C#实现这个简单的功能. 在工具箱找到Timer控件 双击 思路如下,界面打开时触发timer事件,每隔一段时间调整界面透明度 开搞 属性框中的 ...

  4. 第七届蓝桥杯C-B-10-最大比例/gcd变形

    最大比例 X星球的某个大奖赛设了M级奖励.每个级别的奖金是一个正整数.并且,相邻的两个级别间的比例是个固定值.也就是说:所有级别的奖金数构成了一个等比数列.比如:16,24,36,54其等比值为:3/ ...

  5. gulp-rev 添加版本号

    打开node_modules\gulp-rev\index.js 第144行 manifest[originalFile] = revisionedFile; 更新为: manifest[origin ...

  6. SVN提交出错--URL access forbidden for unknown reason

    使用SVN在eclipse中提交文件,但是出现错误,如下: URL access forbidden for unknown reasonsvn: Commit failed (details fol ...

  7. css3 hover 效果

    链接 链接 链接 链接 大量级 11 22  类似拉勾  33 包括各种流行的hover 小众 极光

  8. windows C++ 全局异常捕捉函数

    windows 核心编程中讲过 SEH 结构化异常处理 ::SetUnhandledExceptionFilter(MyUnhandledExceptionFilter); LONG WINAPI M ...

  9. ranch实现游戏服务器

    在 erlang游戏开发tcp 我们建立起了自己的socket tcp 服务器的基本骨架.当时面对并发情况下,多人同一时刻连接服务器的时候,我们的基本骨架 还是难以应付处理.这就使我不得不想对这样的情 ...

  10. 【mssql】SQL Server2012编程入门经典(第四版)(上) 读书笔记

    数据库用了很久了,但好多东西很容易忘记,这次头脑发热想起来读一遍书,做点笔记! 从第五章开始参考:<SQL Server 2005 编程入门经典>学习笔记 一.RDBMS基础:SQL Se ...