使用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性能的一些建议
Mar 31 Servers
nginx部署多前端项目的几种方法
May 25 Servers
nginx配置文件使用环境变量的操作方法
Jun 02 Servers
Nginx配置之实现多台服务器负载均衡
Aug 02 Servers
Nginx反向代理至go-fastdfs案例讲解
Aug 02 Servers
Apache Pulsar集群搭建部署详细过程
Feb 12 Servers
Nginx速查手册及常见问题
Apr 07 Servers
IIS服务器中设置HTTP重定向访问HTTPS
Apr 29 Servers
Zabbix对Kafka topic积压数据监控的解决方案
Jul 07 Servers
ubuntu20.04虚拟机无法上网的问题及解决
Dec 24 Servers
码云(gitee)通过git自动同步到阿里云服务器
Dec 24 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文件
2007/01/04 PHP
php park、unpark、ord 函数使用方法(二进制流接口应用实例)
2010/10/19 PHP
PHP数组对比函数,存在交集则返回真,否则返回假
2011/02/03 PHP
php 数据库字段复用的基本原理与示例
2011/07/22 PHP
PHP检测用户是否关闭浏览器的方法
2016/02/14 PHP
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
2017/03/02 PHP
js判断样式className同时增加class或删除class
2013/01/30 Javascript
页面装载js及性能分析方法介绍
2014/03/21 Javascript
js函数参数设置默认值的一种变通实现方法
2014/05/26 Javascript
Jquery easyui 实现动态树
2015/11/17 Javascript
jQuery基于muipicker实现仿ios时间选择
2016/02/22 Javascript
基于Bootstrap实现Material Design风格表单插件 附源码下载
2016/04/18 Javascript
使用jQuery中的wrap()函数操作HTML元素的教程
2016/05/24 Javascript
AngularJS模块详解及示例代码
2016/08/17 Javascript
关于express与koa的使用对比详解
2018/01/25 Javascript
详解javascript中的babel到底是什么
2018/06/21 Javascript
vue2.0使用v-for循环制作多级嵌套菜单栏
2018/06/25 Javascript
Webpack之tree-starking 解析
2018/09/11 Javascript
vue axios重复点击取消上一次请求封装的方法
2019/06/19 Javascript
三步实现ionic3点击退出app程序
2019/09/17 Javascript
[01:25]DOTA2自定义游戏灵园鬼域等你踏足
2015/10/30 DOTA
对json字符串与python字符串的不同之处详解
2018/12/19 Python
详解python编译器和解释器的区别
2019/06/24 Python
flask框架路由常用定义方式总结
2019/07/23 Python
在OpenCV里使用特征匹配和单映射变换的代码详解
2019/10/23 Python
Pandas把dataframe或series转换成list的方法
2020/06/14 Python
Python Charles抓包配置实现流程图解
2020/09/29 Python
Python为何不支持switch语句原理详解
2020/10/21 Python
python3爬虫中多线程进行解锁操作实例
2020/11/25 Python
Pytorch 图像变换函数集合小结
2021/02/01 Python
学生会竞聘书范文
2014/03/31 职场文书
2016年师德师风学习心得体会
2016/01/12 职场文书
确保减税降费落地生根,用实实在在措施
2019/07/19 职场文书
三种方式清除vue路由跳转router-link的历史记录
2022/04/10 Vue.js
Django中celery的使用项目实例
2022/07/07 Python
Redis sentinel哨兵集群的实现步骤
2022/07/15 Redis