使用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 相关文章推荐
Windows下使用Nginx+Tomcat做负载均衡的完整步骤
Mar 31 Servers
Vertica集成Apache Hudi重磅使用指南
Mar 31 Servers
阿里云日志过滤器配置日志服务
Apr 09 Servers
Mac电脑OS系统下安装Nginx的详细教程
Apr 14 Servers
nginx设置资源请求目录的方式详解
May 30 Servers
linux目录管理方法介绍
Jun 01 Servers
CentOS7环境下MySQL8常用命令小结
Jun 10 Servers
Windows Server 修改远程桌面端口的实现
Jun 25 Servers
nginx代理实现静态资源访问的示例代码
Jul 07 Servers
nginx静态资源的服务器配置方法
Jul 07 Servers
nginx七层负载均衡配置详解
Jul 15 Servers
源码安装apache脚本部署过程详解
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
SESSION信息保存在哪个文件目录下以及能够用来保存什么类型的数据
2012/06/17 PHP
PHP Switch 语句之学习笔记
2013/09/21 PHP
php5.3 不支持 session_register() 此函数已启用的解决方法
2013/11/12 PHP
php7连接MySQL实现简易查询程序的方法
2020/10/13 PHP
基于jQuery捕获超链接事件进行局部刷新代码
2012/05/10 Javascript
JS解析json数据并将json字符串转化为数组的实现方法
2012/12/25 Javascript
js单例模式详解实例
2013/11/21 Javascript
jquery判断至少有一个checkbox被选中的方法
2015/06/05 Javascript
JavaScript实现数组随机排序的方法
2015/06/26 Javascript
基于jquery实现即时检查格式是否正确的表单
2016/05/06 Javascript
基于javascript实现最简单的选项卡切换效果
2016/05/16 Javascript
jQuery+正则+文本框只能输入数字的实现方法
2016/10/07 Javascript
BootStrap 弹出层代码
2017/02/09 Javascript
js 作用域和变量详解
2017/02/16 Javascript
extjs简介_动力节点Java学院整理
2017/07/17 Javascript
Bootstrap滚动监听组件scrollspy.js使用方法详解
2017/07/20 Javascript
AngularJS的$location使用方法详解
2017/10/19 Javascript
快速处理vue渲染前的显示问题
2018/03/05 Javascript
Jquery实现无缝向上循环滚动列表的特效
2019/02/13 jQuery
layui(1.0.9)文件上传upload,前后端的实例代码
2019/09/26 Javascript
学习 Vue.js 遇到的那些坑
2021/02/02 Vue.js
基于wxpython实现的windows GUI程序实例
2015/05/30 Python
Python基础语法(Python基础知识点)
2016/02/28 Python
Python操作mongodb数据库的方法详解
2018/12/08 Python
Python QQBot库的QQ聊天机器人
2019/06/19 Python
详解Selenium+PhantomJS+python简单实现爬虫的功能
2019/07/14 Python
python操作ini类型配置文件的实例教程
2020/10/30 Python
h5使用canvas画布实现手势解锁
2019/01/04 HTML / CSS
校园网站的创业计划书范文
2013/12/30 职场文书
拾金不昧的表扬信
2014/01/16 职场文书
爱我中华演讲稿
2014/05/20 职场文书
工程负责人任命书
2014/06/06 职场文书
人代会标语
2014/06/30 职场文书
2014年乡镇妇联工作总结
2014/12/02 职场文书
庆祝教师节新闻稿
2015/07/17 职场文书
Netty分布式客户端接入流程初始化源码分析
2022/03/25 Java/Android