用nginx Rtmp Module自建直播服务器

社会主义新天地 提交于 2020-03-12 11:59:37

下载源码

首先准备好源码和常用编译工具(gcc之类的)

mkdir /opt/git # 这里我偷懒直接把源码下载到这了,大家自行找地方
cd /opt/git
git clone https://github.com/arut/nginx-rtmp-module.git # 下载 nginx-rtmp-module
wget http://nginx.org/download/nginx-1.17.7.tar.gz # 下载nginx,这里用的最新测试版,推荐大家用稳定版
tar -zxvf nginx-1.17.7.tar.gz
cd nginx-1.17.7/
./configure --prefix=/opt/nginx1.17 --add-module=/opt/git/nginx-rtmp-module # 这里是重点,添加了一个mod
make && make install # 编译安装
cd /opt/nginx1.17/
vim /opt/nginx1.17/conf/nginx.conf # 开始配置
# 全部注释或删除 /opt/nginx1.17/conf/nginx.conf 中的配置
# 在配置的最高层,可以是开头或结尾,添加下面的包含
include rtmp.conf

编辑rtmp配置文件

vim /opt/nginx1.17/conf/rtmp.conf

添加如下配置

rtmp {
    server {
        listen 8883;  # 我使用的自定义端口,而不是标准的1935

        application vod {
            play /opt/nginx1.17/video;
        }

        application live{ #第一处添加的直播字段,添加了一个live应用,里面可以有很多直播间
            live on;
        }
    }
}

http {
    #include      mime.types;
    #default_type  application/octet-stream;
    #sendfile        on;
    #keepalive_timeout  65;
    server {
        listen      8884; #用于查看直播状态和观看直播的web页面
        server_name  localhost;

        location /stat { # 状态查看页面实例
            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl;
        }

        location /stat.xsl {
           root /opt/git/nginx-rtmp-module/;
        }
	
	location /control {
            rtmp_control all;
        }

	location /rtmp-publisher {
            root /opt/git/nginx-rtmp-module/test;
        }
	
	location / { # 直播观看页面实例
            root /opt/git/nginx-rtmp-module/test/www;
        }

        error_page  500 502 503 504  /50x.html;
        location = /50x.html {
            root  html;
        }
    }
}

开启防火墙

firewall-cmd --add-port=8883/tcp
firewall-cmd --add-port=8883/udp
firewall-cmd --add-port=8884/tcp
firewall-cmd --add-port=8884/udp

至此服务器搭建完成

使用

obs推流到 rtmp://【ip地址】:8883/live

在网页上查看推流情况 http://【ip地址】:8884/stat

点播视频放在服务器的 /opt/nginx1.17/video 中

vnc查看流,打开网络URL rtmp://【ip地址】:8883/live

网页查看推流和点播视频,但是不会用 http://【ip地址】:8884

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!