Nginx搭建RTMP服务器

本篇文章主要是记述了基于Nginx搭建RTMP直播推流服务器。关于安装Nginx的内容可以查看这篇博客 《CentOS7编译安装nginx》 ,下载Nginx源码可以点击这个链接, http://img.zouchanglin.cn/nginx-1.9.9.tar.gz ,下面是Nginx推流模块的代码,可以在Github下载,但是也可以点击这个链接 http://img.zouchanglin.cn/nginx-rtmp-module.zip 。这样在做直播相关的测试的时候就可以用上了。

在编译Nginx的时候需要把nginx-rtmp-module这个模块也带上:

1./configure --prefix=/usr/local/nginx 
2	--with-http_ssl_module --add-module=/root/nginx-rtmp-module

下面是nginx.config的配置:

 1user root;
 2worker_processes 2;
 3
 4events {
 5	worker_connections 1024;
 6}
 7
 8http {
 9    include mime.types;
10    default_type application/octet-stream;
11
12    sendfile on;
13    keepalive_timeout 65;
14
15    server {
16		server_name localhost;
17		listen 8080;
18		
19		location /stat {
20			rtmp_stat all;
21			rtmp_stat_stylesheet stat.xsl;
22		}
23        
24		# 路径根据实际位置配置
25		location /stat.xsl {
26			root /usr/local/nginx/nginx-rtmp-module/;
27		}
28
29		location /control {
30			rtmp_control all;
31		}
32        
33		# 路径根据实际位置配置
34		location /rtmp-publisher {
35			root /usr/local/nginx/nginx-rtmp-module/test;
36		}
37        
38		# 路径根据实际位置配置
39		location / {
40			root /usr/local/nginx/nginx-rtmp-module/test/www;
41		}
42    }
43}
44
45rtmp {
46	server {
47		listen 1935;
48		chunk_size 4000;       
49		application live {
50			live on;
51			hls on;
52			hls_path /tmp/hls; # rtmp推流文件存放路径
53			hls_fragment 5s; # 每个TS文件包含5秒的视频内容
54		}
55	}
56}

接下来启动Nginx即可,但是在启动之前先建立文件存放的文件夹:

1mkdir /tmp/hls
2/usr/local/nginx/sbin/nginx

只要没报错,而且可以访问到Nginx的默认页面并且无报错就说明没问题了:

使用BOS开始推流,推流服务器选择自定义URL:rtmp://192.168.199.102/live,如果OBStudio不显示图像源的话可以在系统中做如下设置:

已经可以成功推流,那么如何接收这种直播流呢?可以使用VLC,打开网络串流:rtmp://192.168.199.102/live,这样通过Nginx作为RTMP直播推流服务器已经实现了。