nginx-rtmp-module搭建带推流验证的RTMP+HLS直播服务器
来源:互联网 发布:pix飞控调参软件下载 编辑:程序博客网 时间:2024/04/30 22:47
1.开源类型:red5,crtmpserver,erlyvideo,haXevideo,FluorineFX,simple rtmp server(SRS),还有nginx-rtmp,Cumulus Server,Mistserver
2.商业软件:wowza media server,slyseal,fms(ams),helix,Evostream media server
rtmp server与播放器的交互就性能来说,nginx算是最强大的之一了,wowza3的内存和cpu都是一坨屎,red5直接就低了两个级别,FMS性能确实不错,傻瓜式安装也挺好,就是....
环境:centos 6.7 64位
目的:使Nginx支持Rtmp协议推流,并支持HLS分发功能及FFmpeg转码多码率功能。
#tar xzvf yasm-1.2.0.tar.gz
#tar xzvf lame-3.99.5.tar.gz
#wget http://downloads.sourceforge.net ... .7/faad2-2.7.tar.gz
wget http://downloads.sourceforge.net ... 28/faac-1.28.tar.gz
2.安装git
3.下载所需的软件包
17
18
19
20
21
22
23
24
25
<?php
// ?user=user&pass=pass
$user = isset($_GET['user']) ? $_GET['user'] : '';
$pass = isset($_GET['pass']) ? $_GET['pass'] : '';
if (empty($user) || empty($pass)) {
echo "wrong query input";
header('HTTP/1.0 404 Not Found');
exit();
}
$saveuser = user;
$savepass = pass;
if (strcmp($user, $saveuser) == 0 && strcmp($pass, $savepass) == 0) {
echo "Username and Password OK";
} else {
echo "Username or Password wrong";
header('HTTP/1.0 404 Not Found');
exit();
}
?>
修改nginx的配置文件如下:
然后自己安装php-fpm去HI吧,记得把PHP和NGINX加入开机启动
测试:
rtmp服务器设置:rtmp://你的服务器IP/boardcast
视频流名字:test?user=user&pass=pass
播放端设置:rtmp://你的服务器IP/boardcast/test
或者http://你的服务器IP/hls/test.m3u8
二、安装Nginx相关模块
1.环境准备
yum install –y pcre pcre-devel
yum install –y zlib zlib-devel
2.下载nginx及rtmp模块
wget http://nginx.org/download/nginx-1.6.2.tar.gz
tar xzvf nginx_1.6.2.tar.gz
git clone git://github.com/arut/nginx-rtmp-module.git
3.编译nginx-rtmp
./configure --prefix=/usr/local/nginx --add-module=../nginx-rtmp-module --with-http_stub_status_module 或者添加了统计功能的:
./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
make
make install
人数统计:
01.<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
02.
03.<xsl:output method="html"/>
04.
05.<xsl:param name="app"/>
06.<xsl:param name="name"/>
07.
08.<xsl:template match="/">
09. <xsl:value-of select="count(//application[name=$app]/live/stream[name=$name]/client[not(publishing) and flashver])"/>
10.</xsl:template>
11.
12.</xsl:stylesheet>
location /stat {
02. rtmp_stat all;
03. allow 127.0.0.1;
04.}
05.location /nclients {
06. proxy_pass http://127.0.0.1/stat;
07. xslt_stylesheet /home/www/nclients.xsl app='$arg_app' name='$arg_name';
08. add_header Refresh "3; $request_uri";
09.}
http://blog.csdn.net/wutong_login/article/details/42292787
你的 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?01.<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
02.
03.<xsl:output method="html"/>
04.
05.<xsl:param name="app"/>
06.<xsl:param name="name"/>
07.
08.<xsl:template match="/">
09. <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
print?01.location /stat {
02. rtmp_stat all;
03. allow 127.0.0.1;
04.}
05.location /nclients {
06. proxy_pass http://127.0.0.1/stat;
07. xslt_stylesheet /home/www/nclients.xsl app='$arg_app' name='$arg_name';
08. add_header Refresh "3; $request_uri";
09.}
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-rt ... mber-of-subscribers。
原文地址:http://bbs.u.zhbit.com/forum.php?mod=viewthread&tid=618
- nginx-rtmp-module搭建带推流验证的RTMP+HLS直播服务器
- 利用nginx-rtmp-module搭建hls直播流媒体服务器
- 使用Nginx-rtmp-module搭建hls直播
- rtmp与hls流媒体服务器搭建:ubuntu下Nginx搭建初探与rtmp-module的添加
- 利用nginx搭建RTMP视频点播、直播、HLS服务器
- nginx rtmp & hls 直播流服务器搭建+防盗链
- 利用nginx搭建RTMP视频点播、直播、HLS服务器
- 利用nginx搭建RTMP视频点播、直播、HLS服务器
- 利用nginx搭建RTMP视频点播、直播、HLS服务器
- 使用Nginx+nginx-rtmp-module搭建直播服务器
- Linux平台下使用nginx与nginx-rtmp-module搭建RTMP+HLS流媒体服务器
- 分享一下最近对直播的研究red5 nginx-rtmp-module rtmp hls m3u8 ts
- nginx 搭建rtmp直播服务器
- NGINX配置rtmp服务器实现rtmp以及hls直播
- NGINX配置rtmp服务器实现rtmp以及hls直播
- nginx-rtmp-module搭建流媒体服务器实现直播
- obs nginx-rtmp-module搭建流媒体服务器实现直播 ding
- nginx+nginx-rtmp-module部署直播服务器
- C++第四次实验-实验报告
- 图像压缩
- Linux服务器相关配置
- 扩展iServer数据服务REST资源实现点靠近线、打断线(三)
- Qt之高级网络操作(HTTP/FTP快速上手)
- nginx-rtmp-module搭建带推流验证的RTMP+HLS直播服务器
- 管理容器和混合IT:云初创企业更在行
- 我的工作笔记
- jquery 网页截屏保存图片
- SQL客户端的配置与应用
- Android App包瘦身优化实践
- 软考——系统架构设计师工作日志
- 用st-link v2烧写程序的4中方法
- 图像压缩编码