Nginx搭建RTMP服务器
本篇文章主要是记述了基于Nginx搭建RTMP直播推流服务器。关于安装Nginx的内容可以查看这篇博客 《CentOS7编译安装nginx》 ,下载Nginx源码可以点击这个链接, http://img.zouchanglin.cn/50fdfa08e93ead7a111cba5a5f5735af.gz ,下面是Nginx推流模块的代码,可以在Github下载,但是也可以点击这个链接 http://img.zouchanglin.cn/75ac12aa7dcbdcb065c7004546b7b941.zip 。这样在做直播相关的测试的时候就可以用上了。
在编译Nginx的时候需要把nginx-rtmp-module这个模块也带上:
./configure --prefix=/usr/local/nginx
--with-http_ssl_module --add-module=/root/nginx-rtmp-module
下面是nginx.config的配置:
user root;
worker_processes 2;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
server_name localhost;
listen 8080;
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
# 路径根据实际位置配置
location /stat.xsl {
root /usr/local/nginx/nginx-rtmp-module/;
}
location /control {
rtmp_control all;
}
# 路径根据实际位置配置
location /rtmp-publisher {
root /usr/local/nginx/nginx-rtmp-module/test;
}
# 路径根据实际位置配置
location / {
root /usr/local/nginx/nginx-rtmp-module/test/www;
}
}
}
rtmp {
server {
listen 1935;
chunk_size 4000;
application live {
live on;
hls on;
hls_path /tmp/hls; # rtmp推流文件存放路径
hls_fragment 5s; # 每个TS文件包含5秒的视频内容
}
}
}
接下来启动Nginx即可,但是在启动之前先建立文件存放的文件夹:
mkdir /tmp/hls
/usr/local/nginx/sbin/nginx
只要没报错,而且可以访问到Nginx的默认页面并且无报错就说明没问题了:
使用BOS开始推流,推流服务器选择自定义URL:rtmp://192.168.199.102/live
,如果OBStudio不显示图像源的话可以在系统中做如下设置:
已经可以成功推流,那么如何接收这种直播流呢?可以使用VLC,打开网络串流:rtmp://192.168.199.102/live
,这样通过Nginx作为RTMP直播推流服务器已经实现了。