使用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里的rewrite跳转的实现
Mar 31 Servers
Nginx 过滤静态资源文件的访问日志的实现
Mar 31 Servers
Nginx下配置Https证书详细过程
Apr 01 Servers
Nginx使用Lua模块实现WAF的原理解析
Sep 04 Servers
Ubuntu Server 安装Tomcat并配置systemctl
Apr 28 Servers
Windows Server 2012 R2 磁盘分区教程
Apr 29 Servers
Nginx利用Logrotate实现日志分割
May 20 Servers
利用nginx搭建RTMP视频点播、直播、HLS服务器
May 25 Servers
V Rising 服务器搭建图文教程
Jun 16 Servers
win server2012 r2服务器共享文件夹如何设置
Jun 21 Servers
ubuntu端向日葵键盘输入卡顿问题及解决
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&&mysql)五
2006/10/09 PHP
打造计数器DIY三步曲(中)
2006/10/09 PHP
php中strtotime函数用法详解
2014/11/15 PHP
PHP+AJAX实现投票功能的方法
2015/09/28 PHP
CI框架中$this->load->library()用法分析
2016/05/18 PHP
PHP实现生成模糊图片的方法示例
2017/12/21 PHP
用javascript实现读取txt文档的脚本
2007/07/20 Javascript
jQuery Validation插件remote验证方式的Bug解决
2010/07/01 Javascript
使用Jquery搭建最佳用户体验的登录页面之记住密码自动登录功能(含后台代码)
2011/07/10 Javascript
js在输入框屏蔽按键,只能键入数字的示例代码
2014/01/03 Javascript
js中的json对象详细介绍
2014/10/29 Javascript
nodejs实现获取某宝商品分类
2015/05/28 NodeJs
jquery实现鼠标悬浮停止轮播特效
2020/08/20 Javascript
提升jQuery的性能需要做好七件事
2016/01/11 Javascript
图文详解JavaScript的原型对象及原型链
2016/08/02 Javascript
jquery删除table当前行的实例代码
2016/10/07 Javascript
详解@angular/cli 改变默认启动端口两种方式
2018/11/29 Javascript
VUE引入第三方js包及调用方法讲解
2019/03/01 Javascript
js实现登录时记住密码的方法分析
2020/04/05 Javascript
antd配置config-overrides.js文件的操作
2020/10/31 Javascript
[42:50]NB vs VP 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python复制文件代码实现
2013/12/23 Python
Python 实现随机数详解及实例代码
2017/04/15 Python
python 弹窗提示警告框MessageBox的实例
2019/06/18 Python
python+selenium+chromedriver实现爬虫示例代码
2020/04/10 Python
利用Python如何实时检测自身内存占用
2020/05/09 Python
浅谈Python程序的错误:变量未定义
2020/06/02 Python
完美解决pycharm 不显示代码提示问题
2020/06/02 Python
HTML5为输入框添加语音输入功能的实现方法
2017/02/06 HTML / CSS
HTML5跳转小程序wx-open-launch-weapp的示例代码
2020/07/16 HTML / CSS
自荐信不宜过于夸大
2013/11/06 职场文书
2014年领导班子工作总结
2014/12/11 职场文书
世界环境日活动总结
2015/02/11 职场文书
小升初自荐信范文
2015/03/05 职场文书
在项目中使用redis做缓存的一些思路
2021/09/14 Redis
python数字图像处理之图像自动阈值分割示例
2022/06/28 Python