使用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 相关文章推荐
destoon在各个服务器下设置URL Rewrite(伪静态)的方法
Jun 21 Servers
Nginx访问日志及错误日志参数说明
Mar 31 Servers
Nginx 502 Bad Gateway错误原因及解决方案
Mar 31 Servers
nginx限制并发连接请求数的方法
Apr 01 Servers
关于Nginx中虚拟主机的一些冷门知识小结
Mar 03 Servers
OpenStack虚拟机快照和增量备份实现方法
Apr 04 Servers
Nginx反向代理、重定向
Apr 13 Servers
Nginx 安装SSL证书完成HTTPS部署
Apr 28 Servers
Nginx限流和黑名单配置
May 20 Servers
netty 实现tomcat的示例代码
Jun 05 Servers
使用 DataAnt 监控 Apache APISIX的原理解析
Jul 07 Servers
Nginx如何获取自定义请求header头和URL参数详解
Jul 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学习 计数器实例代码
2008/06/15 PHP
ThinkPHP独立分组使用的注意事项
2014/11/25 PHP
php字符集转换
2017/01/23 PHP
微信公众平台开发教程①获取用户Openid及个人信息图文详解
2019/04/10 PHP
multiSteps 基于Jquery的多步骤滑动切换插件
2011/07/22 Javascript
用js的for循环获取radio选中的值
2013/10/21 Javascript
JavaScript中for-in遍历方式示例介绍
2014/02/11 Javascript
JavaScript实现信用卡校验方法
2015/04/07 Javascript
JavaScript程序开发之JS代码放置的位置
2016/01/15 Javascript
Javascript中的数组常用方法解析
2016/06/17 Javascript
JS把内容动态插入到DIV的实现方法
2016/07/19 Javascript
jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数
2017/06/13 jQuery
详解vue-router2.0动态路由获取参数
2017/06/14 Javascript
vue的一个分页组件的示例代码
2017/12/25 Javascript
Vuex 入门教程
2018/01/10 Javascript
基于Vue实现可以拖拽的树形表格实例详解
2018/10/18 Javascript
浅谈React碰到v-if
2018/11/04 Javascript
js replace替换字符串同时替换多个方法
2018/11/27 Javascript
详解keep-alive + vuex 让缓存的页面灵活起来
2019/04/19 Javascript
layui前端时间戳转化实例
2019/11/15 Javascript
JavaScript 替换所有匹配内容及正则替换方法
2020/02/12 Javascript
在Webpack中用url-loader处理图片和字体的问题
2020/04/28 Javascript
在vue-cli3.0 中使用预处理器 (Sass/Less/Stylus) 配置全局变量操作
2020/08/10 Javascript
关于better-scroll插件的无法滑动bug(2021通过插件解决)
2021/03/01 Javascript
[09:37]DOTA2卡尔工作室 英雄介绍圣堂刺客篇
2013/06/13 DOTA
Python中列表和元组的使用方法和区别详解
2020/12/30 Python
详解Django的CSRF认证实现
2018/10/09 Python
解决Django Static内容不能加载显示的问题
2019/07/28 Python
python创建ArcGIS shape文件的实现
2019/12/06 Python
中专毕业生自我鉴定
2013/11/21 职场文书
缓刑人员的思想汇报
2014/01/11 职场文书
服装电子商务创业计划书
2014/01/30 职场文书
送餐员岗位职责范本
2014/02/21 职场文书
高一课前三分钟演讲稿
2014/09/13 职场文书
安全月宣传标语
2014/10/07 职场文书
教师旷工检讨书
2015/08/15 职场文书