使用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中break与last的区别详析
Mar 31 Servers
Nginx设置日志打印post请求参数的方法
Mar 31 Servers
浅谈Nginx 中的两种限流方式
Mar 31 Servers
nginx服务器的下载安装与使用详解
Aug 02 Servers
nginx共享内存的机制详解
Mar 21 Servers
阿里云k8s服务升级时502错误 springboot项目应用
Apr 09 Servers
微信告警的zabbix监控系统 监控整个NGINX集群
Apr 18 Servers
Tomcat弱口令复现及利用
May 06 Servers
nginx 配置指令之location使用详解
May 25 Servers
利用nginx搭建RTMP视频点播、直播、HLS服务器
May 25 Servers
Linux下搭建SFTP服务器的命令详解
Jun 25 Servers
Nginx报404错误的详细解决方法
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
解析左右值无限分类的实现算法
2013/06/20 PHP
2014最热门的24个php类库汇总
2014/12/18 PHP
示例详解Laravel的注册重构
2016/08/14 PHP
关于ThinkPHP中的异常处理详解
2018/05/11 PHP
Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解
2020/04/06 PHP
javascript面向对象之Javascript 继承
2010/05/04 Javascript
JS操作Cookies的小例子
2013/10/15 Javascript
JS根据变量保存方法名并执行方法示例
2014/04/04 Javascript
JavaScript中的迭代器和生成器详解
2014/10/29 Javascript
js+css实现tab菜单切换效果的方法
2015/01/20 Javascript
jQuery 移动端artEditor富文本编辑器
2016/01/11 Javascript
javascript九宫格图片随机打乱位置的实现方法
2017/03/15 Javascript
写给小白看的JavaScript异步
2017/11/29 Javascript
解决Linux无法正常安装与卸载Node.js的方法
2018/01/19 Javascript
微信小程序实现带参数的分享功能(两种方法)
2019/05/17 Javascript
jQuery实现小火箭返回顶部特效
2020/02/03 jQuery
jQuery实现点击滚动到指定元素上的方法分析
2020/03/19 jQuery
Python本地与全局命名空间用法实例
2015/06/16 Python
如何高效使用Python字典的方法详解
2017/08/31 Python
python使用 zip 同时迭代多个序列示例
2019/07/06 Python
使用 PyTorch 实现 MLP 并在 MNIST 数据集上验证方式
2020/01/08 Python
python 项目目录结构设置
2020/02/14 Python
浅谈Python 钉钉报警必备知识系统讲解
2020/08/17 Python
CSS3中31种选择器使用方法教程
2013/12/05 HTML / CSS
英国最专业的健身器材供应商之一:Best Gym Equipment
2017/12/22 全球购物
美国高级音响品牌:Master&Dynamic
2018/07/05 全球购物
莫斯科高科技在线商店:KremlinStore
2019/03/13 全球购物
文科生自我鉴定
2014/02/15 职场文书
转让协议书范本
2014/04/15 职场文书
分公司任命书
2014/06/06 职场文书
12.4全国法制宣传日活动方案
2014/11/02 职场文书
MBA推荐信怎么写
2015/03/25 职场文书
2015年环保局工作总结
2015/05/22 职场文书
浅谈Nginx 中的两种限流方式
2021/03/31 Servers
Oracle11g R2 安装教程完整版
2021/06/04 Oracle
Java实战之课程信息管理系统的实现
2022/04/01 Java/Android