博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
流媒体技术学习笔记之(三)Nginx-Rtmp-Module统计某频道在线观看流的客户数
阅读量:5102 次
发布时间:2019-06-13

本文共 4647 字,大约阅读时间需要 15 分钟。

 获得订阅者人数,可以方便地显示观看流的客户数。

查看已经安装好的模块

/usr/local/nginx/sbin/nginx -V

安装从源编译Nginx和Nginx-RTMP所需的工具

sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev

下载Nginx和Nginx-RTMP源码

wget http://nginx.org/download/nginx-1.7.5.tar.gzwget https://github.com/arut/nginx-rtmp-module/archive/master.zip

提取Nginx和Nginx-RTMP源

tar -zxvf nginx-1.7.5.tar.gzunzip master.zip

切换到Nginx目录

cd nginx-1.7.5

添加Nginx将编译的模块,包括Nginx-RTMP

./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_xslt_module --with-http_flv_module --with-debug --with-http_gzip_static_module --add-module=../nginx-rtmp-module-master

提示错误:

./configure: error: the HTTP XSLT module requires the libxml2/libxsltlibraries. You can either do not enable the module or install the libraries.

配置 --with-http_xslt_module 时提示 the HTTP XSLT module requires the libxml2/libxslt libraries:安装一下扩展

sudo apt-get install libxml2 libxml2-dev libxslt-dev

编译和安装Nginx与Nginx-RTMP。

makesudo make install

安装Nginx初始化脚本

sudo wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginxsudo chmod +x /etc/init.d/nginxsudo update-rc.d nginx defaults

启动和停止Nginx生成配置文件

sudo service nginx startsudo service nginx stop

观看安装是否成功:

/usr/local/nginx/sbin/nginx -V

安装结果

configure arguments: --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_xslt_module --with-http_flv_module --with-debug --with-http_gzip_static_module --add-module=../nginx-rtmp-module-master

修改Nginx 配置文件添加一下信息,在位置设置统计信息页面

location /stat {    rtmp_stat all;    allow 127.0.0.1;}

创建一个简单的xsl样式表nclients.xsl提取流用户数

设置一个返回订阅者数量的位置

location /nclients {    proxy_pass http://127.0.0.1/stat;    xslt_stylesheet /home/www/nclients.xsl app='$arg_app' name='$arg_name';    add_header Refresh "3; $request_uri";}

Nginx.config 完整配置:

user www www;worker_processes  1;error_log  logs/error.log  debug;#pid        logs/nginx.pid;events {    worker_connections  65535;}http {    include       mime.types;    default_type  application/octet-stream;    log_format  main  '[$time_local][$remote_addr][$http_x_forwarded_for] $status "$request" "$http_referer" "$http_user_agent"';    access_log  logs/access.log  main;    sendfile        on;    keepalive_timeout  65;    server {                set  $wwwroot  /home/www/node/html;        listen       80;        server_name  localhost;        index        index.html;        root         $wwwroot;        access_log   logs/node.access.log  main;        error_log    logs/error.log debug;                        location /rtmp/stat {            rtmp_stat all;            rtmp_stat_stylesheet rtmpstat.xsl;        }                location /rtmpstat.xsl {        }                location /rtmp/control {            rtmp_control all;        }            location /stat {                rtmp_stat all;                allow 127.0.0.1;        }        location /nclients {            proxy_pass http://127.0.0.1/stat;            xslt_stylesheet /home/www/nclients.xsl app='$arg_app' name='$arg_name';            add_header Refresh "3; $request_uri";        }                location ~* /hls/.*\.m3u8$ {            types {                application/vnd.apple.mpegurl m3u8;            }            root /tmp;            add_header Cache-Control no-cache;            add_header Access-Control-Allow-Origin *;        }        location ~* /hls/.*\.ts$ {            types {                video/mp2t ts;            }            root /tmp;            expires    1m;            add_header Cache-Control public;            add_header Access-Control-Allow-Origin *;        }        #error_page  404              /404.html;        error_page   500 502 503 504  /50x.html;        location = /50x.html {            root   html;        }          location / {                    }            }}rtmp {    server {        listen 1935;        chunk_size 4096;        application live {        live on;        record off;          }        }}

重启Nginx

root@iZ239kcyg8rZ:/usr/local/nginx/conf# service nginx restart * Stopping Nginx Server...                                                                                                                                                           [ OK ]  * Starting Nginx Server...                                                                                                                                                           [ OK ] root@iZ239kcyg8rZ:/usr/local/nginx/conf#

根据直播频道访问以下地址:

http://你的推流服务器IP/nclients?app=live&name=4001482820358

客户端打开三个播放测试:

打开2个VLC播放流:

 

 查看在线人数:

 

 

 

 结束。

 

转载于:https://www.cnblogs.com/tinywan/p/6226320.html

你可能感兴趣的文章
7.26
查看>>
dll--二进制层面的复用
查看>>
linux 压缩/解压缩/打包命令
查看>>
守护进程
查看>>
CLR 关于强命名程序集 .
查看>>
[BZOJ 3489] A simple rmq problem 【可持久化树套树】
查看>>
idea 导入eclipse play1.2.7项目
查看>>
Jersey客户端API调用REST风格的Web服务
查看>>
Windows10更新提示语言不同不能保留程序和设置
查看>>
PHP动态生成select标签
查看>>
Laravel 日志权限问题
查看>>
Laravel Carbon获取 某个时间后N个月的时间
查看>>
Laravel 指定日志生成目录
查看>>
layui 表格点击图片放大
查看>>
there is no permission with id `12`
查看>>
Laravel使用EasyWechat 进行微信支付
查看>>
我的大二学年总结
查看>>
WEB SERVER调优
查看>>
Linux中的线程与进程以及调度
查看>>
Jetty性能调优
查看>>