Centos7 搭建Nginx+rtmp+hls直播推流服务器
1 准备工具
使用yum安装git
[root~]# yum -y install git
下载nginx-rtmp-module,官方github地址
// 通过git clone 的方式下载到服务器上
[root~]# git clone https://github.com/arut/nginx-rtmp-module.git
yum 安装 openssl
[root~]# yum -y install openssl openssl-devel
2 安装Nginx服务器,官方网址
下载Nginx解压,并添加rtmp和openssl支持
如果需要nginx监控模块 下面倒数第二行后面添加
--with-http_stub_status_module
//这里我安装的是 nginx-1.10.3 版本
[root~]# wget http://nginx.org/download/nginx-1.10.3.tar.gz
[root~]# tar -zxvf nginx-1.10.3.tar.gz
[root~]# cd nginx-1.10.3
//添加rtmp和openssl支持
[root~]# ./configure --add-module=/替换为自己的安装路径(path/to)/nginx-rtmp-module --with-http_ssl_module
[root~]# make && make install
如果已经安装过Nginx,只需要找到Nginx源码目录添加rtmp的支持即可
1.查看当前安装的Nginx版本
[root~]# /usr/local/nginx/sbin/nginx -v
查询结果:nginx version: nginx/1.10.3
2.再使用find命令查找其位置
[root~]# find / -name nginx-1.10.3
查询结果:/root/nginx-1.10.3
3.cd到查询到的源目录
[root~]# cd /root/nginx-1.10.3
4.添加rtmp的支持(如果看到一个绿色的 configure 文件就说明查找对了)
[root~]# ./configure --add-module=/替换为自己的安装路径(path/to)/nginx-rtmp-module
[root~]# make && make install
5.启动nignx
[root~]# /usr/local/nginx/sbin/nginx
3 修改Nginx配置文件nginx.conf
使用vi命令打开 nginx.conf,输入 i 进入编辑状态
[root~]# vi /usr/local/nginx/conf/nginx.conf
# 在http节点同级加上rtmp配置:
rtmp {
server {
listen 1935;
chunk_size 2048;
drop_idle_publisher 10s; #指定的时间内丢弃空闲的publisher application rtmplive {
live on;
record off; notify_method get; # 跳转的时候,默认以POST方式传输参数,修改成GET方式(权限验证url参数方式用)
on_publish http://127.0.0.1/on_publish; # 推流权限验证地址(可选)
#转推流
push rtmp://****;
}
}
}
# HLS 配置(可选)
application hls {
live on;
hls on;
hls_path /tmp/hls; #需要手动创建路径
hls_continuous on; #切片编号从上一次结束开始
}
}
}
#http配置 简单权限验证 HLS配置
http {
server {
listen 8080;
# 推流权限验证
location /on_publish {
default_type text/html;
if ( $args ~ pass=1234 ) { # 如果url参数包括 pass=1234
return 200;
}
return 404;
}
# This URL provides RTMP statistics in XML
location /stat {
rtmp_stat all;
# Use this stylesheet to view XML as web page
# in browser
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
# XML stylesheet to view RTMP stats.
# Copy stat.xsl wherever you want
# and put the full directory path here
root /path/to/stat.xsl/;
}
# HLS(可选)
location /hls {
# Serve HLS fragments
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root /tmp; #root path
add_header Cache-Control no-cache;
}
}
}
nginx状态监控页面(需前面安装http_stub_status_module)
# nginx状态监控页面
location /status {
# Turn on nginx stats
stub_status on;
# I do not need logs for stats
access_log off;
# Security: Only allow access from 192.168.1.100 IP #
#allow 192.168.1.100;
# Send rest of the world to /dev/null #
#deny all
}
重启nginx
[root~]# nginx -s reload
开机启动
# vi /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target [Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx reload
ExecStop=/usr/local/nginx/sbin/nginx quit
PrivateTmp=true [Install]
WantedBy=multi-user.target
# systemctl enable nginx.service
systemctl start nginx.service 启动nginx
systemctl stop nginx.service 结束nginx
systemctl restart nginx.service 重启nginx
4 推流
使用obs推流
url填写 rtmp://[服务器ip]:[端口]/[nginx配置中rtmp的application名称],如 rtmp://10.129.0.100:1935/hls
如配置HLS,需填写串流码,名称随意,如 demo,这个名称在HLS方式拉流时会用到
如配置url验证,在url后面添加验证参数,如 rtmp://10.129.0.100:1935/hls?pass=1234,“?pass=1234”可以放在串码流中

5 拉流
使用vlc拉流
填写网络URL 如 http://10.129.0.100:8080/hls/demo.m3u8
注意m3u8的文件名与推流时填的串流码一致
或者填写rtmp链接,如 rtmp://10.129.0.100:1935/hls

附:
nginx默认路径:/usr/local/nginx/html
centos7 搭建rtmp+hls直播流服务器及rtmp转hls直播流(nginx+nginx-rtmp-module-master+obs)
nginx nginx-rtmp-module 基于rtmp协议实现公网推流拉流
【官方文档】Nginx模块Nginx-Rtmp-Module学习笔记(二)HLS 指令详解
「自己开发直播」实现nginx-rtmp-module多频道输入输出与权限控制
Centos7 搭建Nginx+rtmp+hls直播推流服务器的更多相关文章
- 三、直播整体流程 五、搭建Nginx+Rtmp直播流服务
HTML5实现视频直播功能思路详解_html5教程技巧_脚本之家 https://m.jb51.net/html5/587215.html 三.直播整体流程 直播整体流程大致可分为: 视频采集端:可以 ...
- [SRS流媒体]RTMP/HLS 直播服务器simple-rtmp-server安装
一个采用MIT协议授权的国产的简单的RTMP/HLS 直播服务器,其核心的价值理念在于简单高效. 使用方法: tep 1: build srs tar xf simple-rtmp-server-*. ...
- EasyDarwin如何支持点播和RTMP/HLS直播?EasyDSS!
2017年很长很长一段时间没有更新EasyDarwin开源项目了,虽然心里有很多EasyDarwin功能扩展的计划:比如同步录像.同步RTMP/HLS直播输出.拉模式转发优化.Onvif接入.GB28 ...
- 用nginx搭建http/rtmp/hls协议的MP4/FLV流媒体服务器
前前后后搭建了两三个星期,终于可以告一段落,nginx实在是有点强大.写一篇笔记来记录一下这个过程中的思路和解决方案. 一.搭建nginx平台: 基本是基于http://blog.csdn.net/x ...
- Android中直播视频技术探究之---视频直播服务端环境搭建(Nginx+RTMP)
一.前言 前面介绍了Android中视频直播中的一个重要类ByteBuffer,不了解的同学可以 点击查看 到这里开始,我们开始动手开发了,因为我们后续肯定是需要直播视频功能,然后把视频推流到服务端, ...
- 转: 基于nginx的hls直播系统
转自:http://blog.csdn.net/cjsafty/article/details/9108587 看点: 1. 详细解解答了 nginx rtmp配置过程. 前写了一篇基于nginx的h ...
- 如何使用Weave以及Docker搭建Nginx反向代理/负载均衡服务器
Hi, 今天我们将会学习如何使用 Weave 和 Docker 搭建 Nginx 的反向代理/负载均衡服务器.Weave 可以创建一个虚拟网络将 Docker 容器彼此连接在一起,支持跨主机部署及自动 ...
- EasyNVR H5直播流媒体解决方案前端构建之:如何播放自动适配RTMP/HLS直播播放
之前在进行EasyNVR多屏开发的时候,由于多屏功能不需要在手机端展示出来(pc多播放为RTMP,手机端播放为HLS),因此只注意到了引用videojs来进行rtmp的播放.由于不同项目需求不同,对h ...
- Centos7搭建nginx并提供外网访问
搭建nginx之后,80端口,其他机器无法访问 查询端口是否开启 firewall-cmd --query-port=80/tcp 永久开放80端口 firewall-cmd --permanent ...
随机推荐
- utraedit不小心把打开文件列表弄得不显示的处理办法
视图->视图/列表->打开文件标签
- [CPP] 智能指针
介绍 C++ 的智能指针 (Smart Pointers) 相关 API. C++ 中的智能指针是为了解决内存泄漏.重复释放等问题而提出的,它基于 RAII (Resource Acquisition ...
- 【Linux】snmp在message中报错: /etc/snmp/snmpd.conf: line 311: Error: ERROR: This output format has been de
Apr 17 17:36:17 localhost snmpd[2810]: /etc/snmp/snmpd.conf: line 311: Error: ERROR: This output for ...
- Pandas 常见操作详解
Pandas 常见操作详解 很多人有误解,总以为Pandas跟熊猫有点关系,跟gui叔创建Python一样觉得Pandas是某某奇葩程序员喜欢熊猫就以此命名,简单介绍一下,Pandas的命名来自于面板 ...
- ABAP关键字和ABAP词汇
下表为ABAP的词汇概览(包括关键字): ABAP-SOURCE ABBREVIATED ABS ABSTRACT ACCEPT ACCEPTING ACCORDING ACOS ACTIVATION ...
- vue-cli3x4x修改本地端口port
一.推荐方法 "scripts": { "serve": "vue-cli-service serve --port 3000", &quo ...
- QTextEdit字符串的高亮显示问题
20130222 鬼猫猫 整理 http://www.cnblogs.com/muyr/ 解决方法的原始地址 http://www.qtcn.org/bbs/read.php?tid=20335 背景 ...
- Flask源码流程分析(一)
Flask源码流程分析: 1.项目启动: 1.实例化Flask对象 1. 重要的加载项: * url_rule_class = Rule * url_map_class = Map * session ...
- C#+Layui开发后台管理系统
我是笑林新记,分享一下我一套C#开发的后台管理系统,希望对大家有帮助!欢迎关注微信公众号:笑林新记 后台开发语言:C# 前端框架:layui 前天用毛笔笔画制作了一个毛笔字效果的Logo,主 ...
- Python攻城——查看,生成幫助文檔
1. python在控制台中查看文檔 1 python -m pydoc 模塊名 2. pydoc生成HTML文檔 1 python -m pydoc -w 模塊名 1 python -m pydoc ...