使用Nginx搭载rtmp直播服务器的方法


Posted in Servers onOctober 16, 2021

       这次我们搭建一个rtmp直播服务器,用于电脑或手机直播推流到服务器,然后其他终端如电脑或手机可以观看直播的视频画面。 我们这里用电脑录屏软件将实时录制的电脑屏幕画面直播给其它人看。总共需要3部分,第一,录屏软件录制电脑屏幕,并传递画面流到服务器; 第二,服务器rtmp搭建,应能接收来自录屏软件上传的画面;第三,视频播放器客户端能连接到rtmp服务器,接收rtmp服务器推送的视频流,从而可实时观看第一部分录屏软件的实时画面。这里最核心的就是第二部分,搭建rtmp服务器。

1. 下载nginx

nginx是一个服务器软件,类似于tomcat,用于发布服务器程序

(1)下载地址:在linux下执行 wget http://nginx.org/download/nginx-1.15.3.tar.gz命令,下载压缩包。

(2)解压,使用tar命令:   tar xvf nginx-1.15.3.tar.gz

2. 下载nginx rtmp模块

​    wget https://codeload.github.com/arut/nginx-rtmp-module/tar.gz/v1.2.1 同样解压tar xvf v1.2.1  

3. 编译nginx

./configure --prefix=./bin --add-module=../nginx-rtmp-module-1.2.1

4. 修改nginx-rtmp-module中的conf文件

cd nginx-rtmp-module-1.2.1打开文件夹,cd test文件夹,修改nginx.conf文件的内容为:

worker_processes  1;
 
error_log  logs/error.log debug;
 
events {
    worker_connections  1024;
}
 
rtmp {
    server {
        listen 1935;
 
        application myapp {
            live on;
 
            #record keyframes;
            #record_path /tmp;
            #record_max_size 128K;
            #record_interval 30s;
            #record_suffix .this.is.flv;
 
            #on_publish http://localhost:8080/publish;
            #on_play http://localhost:8080/play;
            #on_record_done http://localhost:8080/record_done;
        }
    }
}
 
http {
    server {
        listen      8080;
 
        location /stat {
            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl;
        }
 
        location /stat.xsl {
            root /path/to/nginx-rtmp-module/;
        }
 
        location /control {
            rtmp_control all;
        }
 
        #location /publish {
        #    return 201;
        #}
 
        #location /play {
        #    return 202;
        #}
 
        #location /record_done {
        #    return 203;
        #}
 
        location /rtmp-publisher {
            root /path/to/nginx-rtmp-module/test;
        }
 
        location / {
            root /path/to/nginx-rtmp-module/test/www;
        }
    }
}

到时候推流地址就是    rtmp://IP:PORT/myapp/{abc},其中{abc}中的abc是可选的,一般是一个推流密码,往服务器推送或接收视频流时,可填写一个密码,如abc。rtmp默认服务器端口是1935,如果这个端口被占用,可以杀死占用这个端口的进程,使用如下命令:

kill -9  pid  (其中pid是进程id)。

然后用这个conf 替换 nginx-1.15.3/bin/conf下的nginx.conf ,

使用mv nginx.conf nginx.conf.bak命令重命名原来的nginx.conf,可以不用删除原文件。

5. 启动nginx

cd nginx-1.15.3  

打开nginx文件夹

/root/nginx-1.15.3/bin/sbin/nginx 

启动nginx

6. 验证nginx rtmp流媒体是否部署成功

启动后,从浏览器里访问122.112.220.253:8080。

如果打不开,
1.  在服务器上建立安全规则,开发入口规则,把1935,8080这两个端口开启,协议是TCP.
2.   nginx-1.15.3/bin/conf下的nginx.conf里最顶部 修改用户:   user root;

    此时,nginx.conf的内容如下:

user  root;
worker_processes  1;
 
error_log  logs/error.log debug;
 
events {
    worker_connections  1024;
}
 
rtmp {
    server {
        listen 1935;
 
        application myapp {
            live on;
	    drop_idle_publisher 5s;
        }
    }
}
 
http {
    server {
        listen      8082;
 
        location /stat {
            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl;
        }
 
        location /stat.xsl {
            root /root/nginx-rtmp-module-1.2.1/;
        }
 
        location /control {
            rtmp_control all;
        }
 
    
 
        location /rtmp-publisher {
            root /root/nginx-rtmp-module-1.2.1/test;
        }
 
        location / {
            root /root/nginx-rtmp-module-1.2.1/test/www;
        }
    }
}

3. 重启nginx,再次访问122.112.220.253:8082,成功。

使用Nginx搭载rtmp直播服务器的方法

下次我们就用一个录屏软件录制电脑屏幕,使用rtmp协议向服务器上推送电脑屏幕画面,同时用播放器来播放服务器上的rtmp直播流。

到此这篇关于使用Nginx搭载rtmp直播服务器的文章就介绍到这了,更多相关rtmp直播服务器内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Servers 相关文章推荐
Nginx设置日志打印post请求参数的方法
Mar 31 Servers
Nginx四层负载均衡的配置指南
Jun 11 Servers
centos8安装nginx1.9.1的详细过程
Aug 02 Servers
从零开始在Centos7上部署SpringBoot项目
Apr 07 Servers
Tomcat执行startup.bat出现闪退的原因及解决办法
Apr 20 Servers
Nginx利用Logrotate实现日志分割
May 20 Servers
Nginx限流和黑名单配置
May 20 Servers
阿里云服务器Ubuntu 20.04上安装Odoo 15
May 20 Servers
Windows Server 2022 超融合部署(图文教程)
Jun 25 Servers
git stash(储藏)的用法总结
Jun 25 Servers
腾讯云服务器部署前后分离项目之前端部署
Jun 28 Servers
Nginx如何配置多个服务域名解析共用80端口详解
Sep 23 Servers
详解Nginx 被动检查服务器的存活状态
Oct 16 #Servers
教你利用Nginx 服务搭建子域环境提升二维地图加载性能的步骤
Sep 25 #Servers
Nginx进程调度问题详解
解决使用了nginx获取IP地址都是127.0.0.1 的问题
Sep 25 #Servers
关于nginx 实现jira反向代理的问题
Windows下用Nginx配置https服务器及反向代理的问题
Sep 25 #Servers
nginx安装以及配置的详细过程记录
Sep 15 #Servers
You might like
PHP IN_ARRAY 函数使用注意事项
2010/07/24 PHP
PHP全概率运算函数(优化版) Webgame开发必备
2011/07/04 PHP
不支持fsockopen但支持culr环境下下ucenter与modoer通讯问题
2011/08/12 PHP
关于ob_get_contents(),ob_end_clean(),ob_start(),的具体用法详解
2013/06/24 PHP
php自定义函数截取汉字长度
2014/05/15 PHP
php输出xml必须header的解决方法
2014/10/17 PHP
Yii2验证器(Validator)用法分析
2016/07/23 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
Javascript 面向对象编程(coolshell)
2012/03/18 Javascript
jquery实现excel导出的方法
2013/04/04 Javascript
了不起的node.js读书笔记之node.js中的特性
2014/12/22 Javascript
JQuery动态添加和删除表格行的方法
2015/03/09 Javascript
JavaScript中this详解
2015/09/01 Javascript
基于jQuery实现的扇形定时器附源码下载
2015/10/20 Javascript
js简单实现网页换肤功能
2017/04/07 Javascript
JavaScript实现删除数组重复元素的5种常用高效算法总结
2018/01/18 Javascript
Angular5中调用第三方js插件的方法
2018/02/26 Javascript
Angular学习教程之RouterLink花式跳转
2018/05/03 Javascript
JS判断数组是否包含某元素实现方法汇总
2020/06/24 Javascript
vant 时间选择器--开始时间和结束时间实例
2020/11/04 Javascript
400多行Python代码实现了一个FTP服务器
2012/05/10 Python
Django1.7+python 2.78+pycharm配置mysql数据库教程
2014/11/18 Python
对python中的 os.mkdir和os.mkdirs详解
2018/10/16 Python
深入浅析python3中的unicode和bytes问题
2019/07/03 Python
pygame实现烟雨蒙蒙下彩虹雨
2019/11/11 Python
python词云库wordCloud使用方法详解(解决中文乱码)
2020/02/17 Python
Python实现企业微信机器人每天定时发消息实例
2020/02/25 Python
django 实现手动存储文件到model的FileField
2020/03/30 Python
党员岗位承诺书
2014/03/25 职场文书
装修协议书范本
2014/04/21 职场文书
革命英雄事迹演讲稿
2014/09/13 职场文书
公司地址变更通知
2015/04/25 职场文书
2016年12月份红领巾广播稿
2015/12/21 职场文书
php+laravel 扫码二维码签到功能
2021/05/15 PHP
springboot集成flyway自动创表的详细配置
2021/06/26 Java/Android
windows系统搭建WEB服务器详细教程
2022/08/05 Servers