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

DoubleLi DoubleLi     2022-11-10     359

关键词:

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


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

[html] view plain copy
 
  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

rtmp搭建直播系统(代码片段)

开发环境Ubuntu14.04servernginx-1.8.1nginx-rtmp-modulenginx的服务器的搭建安装nginx的依赖库sudoapt-getupdatesudoapt-getinstalllibpcre3libpcre3-devsudoapt-getinstallopenssllibssl-dev配置并编译nginx切换到你的nginx的下载目录,使用nginx的默认配置 查看详情

直播|易观cto郭炜:精益化数据分析——如何让你的企业具有bat一样的分析能力

每一个企业建设大数据平台时都希望建设的大而全,但是实践证明可持续的大数据平台都通过精益化数据分析理论逐步建立而成的。精益化数据分析的理论就是通过建立最小的商业闭环,逐步验证和扩大数据分析平台最终实现与... 查看详情

摄像设备+nginx+rtmp小型直播服务器(代码片段)

摄像设备+nginx+rtmp服务器前言搭建nginx服务器环境准备1.下载环境2.依赖项3.安装新建nginx路径将下载的模块包复制到nginx目录下,并解压安装nginx服务器nginx服务器配置文件4.ffmpeg推码查询设备测试录像设备可用跨域问题(... 查看详情

酒店ott小区iptv完整解决方案

...,并发大概1000人。有信号采集设备,能主动推送RTMP协议直播流,目前需要RTMP服务器分发直播软件。 2我是做酒店的OTT,也就是找酒店的网络电视解决方案。大概需要采集200个直播频道,200多个房间。直播点播都要,不需要... 查看详情

NGinx RTMP 直播流文本叠加并推送到多个

】NGinxRTMP直播流文本叠加并推送到多个【英文标题】:NGinxRTMPlivestreamtextoverlayandpushtomultiple【发布时间】:2020-04-2416:38:52【问题描述】:我已经用头撞这堵墙很久了。希望大家能帮我解决。我有一个从IP摄像机到我的计算机的实... 查看详情

nginx+nginx-rtmp-module+springboot搭建直播流服务器实现推流拉流实时直播功能

...。解决方案第三方的一些现成的服务:腾讯音视频通话、直播功能;阿里的音视频通信;两者都挺好的,但是需要收费因此放弃决定自己搭建一套直播流服务;先看效果(自己服务器配置低有延迟、放到公司服务器上输了不可怕,大... 查看详情

直播源的制作

...:25:27 依米_ 阅读数:137更多个人分类: h5视频直播Nginx是服务器,装视频处理工具比较快速下载这个工具的网站验证的时候命令行重启第三步配置Nginx进入到Nginx.config配置文件在最后输入然后在server里配置配置好文件... 查看详情

酒店ott小区iptv完整解决方案

...,并发大概1000人。有信号采集设备,能主动推送RTMP协议直播流,目前需要RTMP服务器分发直播软件。 ü 我是做酒店的OTT,也就是找酒店的网络电视解决方案。大概需要采集200个直播频道,200多个房间。直播点播都要,不... 查看详情

酒店ott小区iptv完整解决方案

...,并发大概1000人。有信号采集设备,能主动推送RTMP协议直播流,目前需要RTMP服务器分发直播软件。 ü 我是做酒店的OTT,也就是找酒店的网络电视解决方案。大概需要采集200个直播频道,200多个房间。直播点播都要,不... 查看详情

手把手教你如何做电视直播

客户需求:我需要采集电视直播信号,类似CCTV这样的某3路电视频道。找生成流媒体地址HTTP和RTMP协议的服务器端直播系统。这些电视频道直播信号会发布到广告机上,也就是信息发布系统,就跟电视一样,显示屏,数目是5个观看... 查看详情

手把手教你如何做电视直播

客户需求:我需要采集电视直播信号,类似CCTV这样的某3路电视频道。找生成流媒体地址HTTP和RTMP协议的服务器端直播系统。这些电视频道直播信号会发布到广告机上,也就是信息发布系统,就跟电视一样,显示屏,数目是5个观看... 查看详情

ffmpeg udp 直播发布到 rtmp

】ffmpegudp直播发布到rtmp【英文标题】:ffmpegudplivestreampublishtortmp【发布时间】:2015-02-2012:05:35【问题描述】:我需要制作这条链:JVCHM650--UDP-->localhost-->ffmpeg(复制流)-->nginx-rtmp在输入时,我有来自摄像头的UDP流(udp://@:35501)... 查看详情

手机浏览器h5直播(代码片段)

一、nginx的安装和配置  首先我们下载nginx。在nginx官网上下载的nginx是不带rtmp模块的,所以我们在http://nginx-win.ecsds.eu/download/中下载nginx1.7.11.3Gryphon.zip。该版本的nginx包含rtmp组件,通过rtmp组件,才能提供流媒体服务,使ngi... 查看详情

[linux][nginx]通过nginx扩展nginx-rtmp-module简单做了一个流媒体直播

做的过程出现很多问题,环境其实就需要nginx就可以,然后就是在播放的问题,m3u8的格式,mac直接访问就支持,苹果系统原生H5支持m3u8,还有就是手机直接访问也支持!但是其他PC端不支持,尝试了好多都不行,最后终于找到了... 查看详情

uniapp简易直播

实验准备在服务器部署nginx-rtmp作为我们直播推流和拉流的服务器(如果服务商选择七牛,也是直接给地址推流)。为了加快部署,我在这一步使用Docker。dockerpulltiangolo/nginx-rtmpdockerrun-d-p1935:1935--namenginx-rtmptiangolo/nginx-rtmp记下推流... 查看详情

nginx搭建rtmp服务器(代码片段)

...l/nginx/conf/nginx.conf8.重启nginx服务器四、测试总结前言随着直播行业的火热,音视频学习技术越来越收到更多人的关注,本文主要介绍如何基于nginx搭建自己的rtmp服务器,实现直播的简单推拉流。一、nginx是什么?ng... 查看详情

“直播频道”应用未检测到 TVInputService HDMI 频道

】“直播频道”应用未检测到TVInputServiceHDMI频道【英文标题】:TVInputServiceHDMIchannelarenotdetectedby"LiveChannels"app【发布时间】:2016-08-1410:29:34【问题描述】:我为HDMI直通输入开发了一个TVInputService。这个应用程序具有系统特... 查看详情

nginx-rtmp直播服务器搭建-obs录制推流-vlc视频流播放

网上关于视频直播的资料还是挺多的,看了一些文章,自己也动手实践了下。主要有三个步骤:(1)NginxRTMP服务器搭建(2)视频录制推流器(3)拉流器(播放器),有了这些就可以开始简单... 查看详情