使用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 相关文章推荐
小程序后台PHP版本部署运行 LNMP+WNMP
Apr 01 Servers
Nginx解决403 forbidden的完整步骤
Apr 01 Servers
apache基于端口创建虚拟主机的示例
Apr 22 Servers
Z-Order加速Hudi大规模数据集方案分析
Mar 31 Servers
iSCSI服务器CHAP双向认证配置
Apr 01 Servers
Kubernetes部署实例并配置Deployment、网络映射、副本集
Apr 01 Servers
阿里云ECS云服务器快照的概念以及如何使用
Apr 21 Servers
Linux中各个目录的作用与内容
Jun 28 Servers
Linux中sftp常用命令整理
Jun 28 Servers
设置IIS Express并发数
Jul 07 Servers
Nginx跨域问题解析与解决
Aug 05 Servers
windows server2012 R2下安装PaddleOCR服务的的详细步骤
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连接MYSQL成功与否的代码
2013/08/16 PHP
PHP数组相关函数汇总
2015/03/24 PHP
5款适合PHP使用的HTML编辑器推荐
2015/07/03 PHP
wampserver改变默认网站目录的办法
2015/08/05 PHP
php基于openssl的rsa加密解密示例
2016/07/11 PHP
javascript客户端解决方案 缓存提供程序
2010/07/14 Javascript
悬浮数字的实现案例
2014/02/19 Javascript
Nodejs中自定义事件实例
2014/06/20 NodeJs
Nodejs学习笔记之Stream模块
2015/01/13 NodeJs
创建你的第一个AngularJS应用的方法
2015/06/16 Javascript
由ReactJS的Hello world说开来
2015/07/02 Javascript
JavaScript事件类型中UI事件详解
2016/01/14 Javascript
JQuery ztree 异步加载实例讲解
2016/02/25 Javascript
JavaScript_object基础入门(必看篇)
2016/06/13 Javascript
JavaScript实现的鼠标响应颜色渐变效果完整实例
2017/02/18 Javascript
nodejs集成sqlite使用示例
2017/06/05 NodeJs
用webpack4开发小程序的实现方法
2019/06/04 Javascript
layui 动态设置checbox 选中状态的例子
2019/09/02 Javascript
微信小程序实现左侧滑动导航栏
2020/04/08 Javascript
[05:03]2018DOTA2亚洲邀请赛主赛事首日回顾
2018/04/04 DOTA
基于Python打造账号共享浏览器功能
2019/05/30 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
2019/12/09 Python
全球知名提供各类营养保健品的零售商:Vitamin Shoppe
2016/10/09 全球购物
加拿大最大的书店:Indigo
2017/01/01 全球购物
Timberland德国官网:靴子、鞋子、衣服、夹克及配件
2019/12/10 全球购物
工程总经理工作职责
2013/12/09 职场文书
寒假思想汇报
2014/01/10 职场文书
电脑专业个人求职信范文
2014/02/04 职场文书
幼儿园消防演练方案
2014/02/13 职场文书
农民工讨薪标语
2014/06/26 职场文书
教师党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
六查六看自查报告
2014/10/14 职场文书
安全保证书怎么写
2015/02/28 职场文书
求职信如何撰写?
2019/05/22 职场文书
详解Vue slot插槽
2021/11/20 Vue.js
微信小程序APP的事件绑定以及传递参数时的冒泡和捕获
2022/04/19 Javascript