使用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动态转换图片大小生成缩略图
Mar 31 Servers
nginx配置ssl实现https的方法示例
Mar 31 Servers
nginx location中多个if里面proxy_pass的方法
Mar 31 Servers
nginx作grpc的反向代理踩坑总结
Jul 07 Servers
Nginx反向代理至go-fastdfs案例讲解
Aug 02 Servers
nginx中proxy_pass各种用法详解
Nov 07 Servers
Linux安装apache服务器的配置过程
Nov 27 Servers
解决xampp安装后Apache无法启动
Mar 21 Servers
教你如何用cmd快速登录服务器
Jun 10 Servers
windows系统安装配置nginx环境
Jun 28 Servers
Apache自带的ab压力测试工具的实现
Jul 23 Servers
Nginx跨域问题解析与解决
Aug 05 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读取CSV大文件导入数据库的实例
2017/07/24 PHP
PHP对象的浅复制与深复制的实例详解
2017/10/26 PHP
js 内存释放问题
2010/04/25 Javascript
JavaScript数组各种常见用法实例分析
2015/08/04 Javascript
jQuery实现悬浮在右上角的网页客服效果代码
2015/10/24 Javascript
JS 日期与时间戮相互转化的简单实例
2016/06/22 Javascript
超详细的JS弹出窗口代码大全
2020/04/18 Javascript
js实现上传文件添加和删除文件选择框
2016/10/24 Javascript
JS中实现隐藏部分姓名或者电话号码的代码
2018/07/17 Javascript
JavaScript实现无限级递归树的示例代码
2019/03/29 Javascript
JavaScript剩余操作符Rest Operator详解
2019/07/20 Javascript
Vue+Koa2 打包后进行线上部署的教程详解
2019/07/31 Javascript
vue实现扫码功能
2020/01/17 Javascript
JS继承定义与使用方法简单示例
2020/02/19 Javascript
如何用JS模拟实现数组的map方法
2020/07/30 Javascript
详解JavaScript中的数据类型,以及检测数据类型的方法
2020/09/17 Javascript
[01:21]DOTA2新纪元-7.0新版本即将开启!
2016/12/11 DOTA
[28:57]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/16 DOTA
Python程序员鲜为人知但你应该知道的17个问题
2014/06/04 Python
Python中__call__用法实例
2014/08/29 Python
实例解析Python的Twisted框架中Deferred对象的用法
2016/05/25 Python
Python 正则表达式入门(初级篇)
2016/12/07 Python
Flask-Mail用法实例分析
2018/07/21 Python
selenium + python 获取table数据的示例讲解
2018/10/13 Python
python 函数内部修改外部变量的方法
2018/12/18 Python
Python和Java的语法对比分析语法简洁上python的确完美胜出
2019/05/10 Python
如何利用Python matplotlib绘制雷达图
2020/12/21 Python
面向对象设计的原则是什么
2013/02/13 面试题
高一地理教学反思
2014/01/18 职场文书
一年级小学生评语
2014/04/22 职场文书
2014机关干部学习“焦裕禄精神”思想汇报
2014/09/19 职场文书
实习生矿工检讨书
2014/10/13 职场文书
2015年小学开学寄语
2015/02/27 职场文书
初中毕业生感言
2015/07/31 职场文书
nginx限制并发连接请求数的方法
2021/04/01 Servers
MySQL 重命名表的操作方法及注意事项
2021/05/21 MySQL