用nginx Rtmp Module自建直播服务器

Posted 晨峰说

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用nginx Rtmp Module自建直播服务器相关的知识,希望对你有一定的参考价值。

下载源码

首先准备好源码和常用编译工具(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

以上是关于用nginx Rtmp Module自建直播服务器的主要内容,如果未能解决你的问题,请参考以下文章

「自己开发直播」rtmp-nginx-module实现直播状态观看人数控制

RTMP直播系统

obs nginx-rtmp-module搭建流媒体服务器实现直播 ding

Linux nginx+rtmp服务器配置实现直播点播

nginx + nginx-rtmp-module + springboot 搭建直播流服务器实现推流拉流实时直播功能

Linux nginx+rtmp服务器配置实现直播点播