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

你的 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 用于提取观看当前频道的用户数量,编辑其内容如下:

[html]
view plain
copy
print
?

  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,添加以下内容:

[html]
view plain
copy
print
?

  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

时间: 2024-10-11 04:22:25

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

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

在尝试使用webRTC实现webapp直播失败后,转移思路开始另外寻找可行的解决方案.在网页上尝试使用webRTC实现视频的直播与看直播,在谷歌浏览器以及safari浏览器上测试是可行的.但是基于基座打包为webapp后不行,所以直播的话建议还是原生的好.HBuilder自带的H5+有提供了原生的视频播放和推流录制上传,但是需要有一个rtmp直播流服务器,用于测试和开发,这时就需要自建rtmp服务推流了. 极速搭建简单RTMP直播流服务器 开发环境:macOS 需要安装并启动docker:?? 

利用nginx搭建RTMP视频点播、直播、HLS服务器

开发环境 Ubuntu 14.04 server nginx-1.8.1 nginx-rtmp-module nginx的服务器的搭建 安装nginx的依赖库 sudo apt-get update sudo apt-get install libpcre3 libpcre3-dev sudo apt-get install openssl libssl-dev 1 2 3 1 2 3 配置并编译nginx 使用nginx的默认配置,添加nginx的rtmp模块.  ./configure --

使用 nginx 和 rtmp 插件搭建视频直播和点播服务器

使用 nginx 和 rtmp 模块 ,可以很容易地搭建一个视频直播和点播服务器出来. 首先,看一下最经典的参考文献: How to set up your own private RTMP server using nginx 1. 安装 nginx 和 rtmp 模块 有关 nginx 的编译和安装比较简单,这里就不介绍了,看参考文献.这里提示以下几点: (1) 安装好 nginx 后,配置文件在这里: /usr/local/nginx/conf/nginx.conf (2) 启动 ngin

网页全终端视频流媒体播放器EasyPlayer之使用 nginx 和 rtmp 插件搭建视频直播和点播服务器

使用 nginx 和 rtmp 模块 ,可以很容易地搭建一个视频直播和点播服务器出来.下面我们来看一下具体实施步骤: 1. 安装 nginx 和 rtmp 模块 有关 nginx 的编译和安装比较简单,这里就不介绍了,看参考文献.这里提示以下几点: (1) 安装好 nginx 后,配置文件在这里: /usr/local/nginx/conf/nginx.conf(2) 启动 nginx 的命令: $ sudo /usr/local/nginx/sbin/nginx -s stop $ sudo

Mac系统安装nginx+rtmp模块

1.安装命令 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 如果安装后, 想要卸载 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)" 2.安装nginx 先clone nginx项目到本地 brew t

nginx搭建rtmp协议流媒体服务器总结

最近在 ubuntu12.04+wdlinux(centos)上搭建了一个rtmp服务器,感觉还挺麻烦的,所以记录下. 大部分都是参考网络上的资料. 前提: 在linux下某个目录中新建一个nginx目录. 然后进入该目录去下载搭建环境所需要的一些资源包. 此处在 /root/  目录下新建一个nginx目录即: /root/softsource/ 注意:依赖包和工具包需要下载,请在良好的网络环境下安装,否则在网速不好的情况下容易下漏掉,造成后面安装失败 ====================

基于nginx的rtmp的服务器(nginx-rtmp-module)

一,首先下载安装nginx需要依赖的库文件: 1.1,选定源码目录 选定目录 /usr/local/RTMP cd /usr/local/RTMP 1.2,安装PCRE库 cd /usr/local/RTMP 到www.pcre.org 下载pcre-8.37.tar.gz , 然后拷贝到/usr/local/HLS tar -zxvf pcre-8.37.tar.gz cd pcre-8.37 ./configure make make install 1.3,安装zlib库 cd /usr/

在Windows下搭建基于nginx的视频直播和点播系统

一.软件准备 由于nginx原生是为linux服务的,因此官方并没有编译好的windows版本可以下载,要在windows上使用nginx,要么下载源码进行编译,要么使用其他人已经编译好的文件. 而要让nginx支持视频直播和点播,还需要第三方的nginx模块:nginx-rtmp-module 所幸,已经有大神做好了nginx的编译,而且集成了很多nginx模块,其中就已经包括了nginx-rtmp-module. 下载地址:http://nginx-win.ecsds.eu/,详细说明可参见

nginx的RTMP协议服务器

nginx的RTMP协议服务器 by ahuner 通过以下的配置,可以使nginx接收RTMP流,并在web上播放实时视频. 1.openssl安装 nginx需要http_ssl_module模块,需要openssl库. 下载opensll:http://www.openssl.org/ 最新稳定版本:openssl-1.0.1e 修改三个文件的代码,openssl-1.0.1e\test中的md2test.c.rc5test.c.jpaketest.c 将dummytest.c修改为#in