首页 > 系统相关 >利用nginx搭建rtmp流服务器

利用nginx搭建rtmp流服务器

时间:2024-01-17 17:48:32浏览次数:27  
标签:nginx module Nginx rtmp 服务器 推流

1、RTMP介绍

RTMP全程Real Time Protocal(实时小时传输协议)。

该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS、RTMPE等多种变种协议。

RTMP是是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流

媒体/交互服务器之间进行音视频和数据通信。支持该协议的软件包括Adobe Media

Server/Ultrant Media Server/red5等。

2、nginx rtmp流服务器的搭建和使用

本次此处使用Ubuntu22.04LTS系统,通过源码编译安装的方式安装nginx rtmp流服务器。

2.1、什么是nginx?

nginx是一款优秀的反向代理工具,通过nginx可以实现搭建高可用的轻量级web服务器,除此之外,通

过Nginx自带的rtmp模块,也可以实现rtmp服务器的搭建。当我们想基于nginx搭建RTMP流服务器时,

需要加载ninx-rtmp-module模块。

2.2、开始搭建

  1. 安装依赖库
    在编译和安装 Nginx 前,需要确保系统中已经安装了以下依赖项:

GNU C 和 C++ 编译器

PCRE (Perl Compatible Regular Expressions) 库

zlib 压缩库

OpenSSL 库

可以使用以下命令在 Ubuntu 系统中安装以上依赖项:

sudo apt-get update
sudo apt-get install build-essential libpcre3-dev zlib1g-dev libssl-dev
  1. 下载nginx-rtmp-module模块

开源的nginx-rtmp-module模块,封装了rtmp server。nginx可以用此模块可以很简单提供RTMP服务。

链接:nginx-rtmp-module

你可以通过git clone下来nginx-rtmp-module的源码,这里不多讲解。

  1. 下载nginx源码

可以从 Nginx官方网站下载最新的稳定版本,例如:

wget https://nginx.org/download/nginx-1.24.0.tar.gz
  1. 编译配置

下载完成后,需要解压并进去源码目录

tar -zxvf nginx-1.24.0.tar.gz
cd nginx-1.24.0

使用以下命令进行编译配置:

./configure \
 --with-threads \
 --with-http_stub_status_module \
 --with-http_ssl_module \
 --with-http_realip_module \
 --with-stream \
 --with-stream_ssl_module \
 --add-module=/home/nginx/nginx-rtmp-module

注意,配置命令中--add-module=/home/nginx/nginx-rtmp-module中/home/nginx/nginx-rtmp-module

是你通过git clone下来的nginx-rtmp-module的源码目录,每一个人都不一样,切记。

  1. 开始编译

完成配置后,可以使用以下命令开始编译:

make

安装

编译完成后,可以使用以下命令安装 Nginx:

sudo make install

将 Nginx 可执行文件连接到系统 PATH 中的目录:

sudo ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx

2.3、开始使用

  1. 简单介绍nginx使用命令

Nginx 的配置文件默认位于 /usr/local/nginx/conf/nginx.conf,将本页的配置示例添加到文件末尾即可。Nginx 基本操作命令如下:

检查配置文件:

sudo nginx -t

如果 Nginx 配置文件验证成功,则可以启动 Nginx:

sudo nginx

重新加载正在运行的 Nginx 并应用新配置,建议在操作前检查配置是否无误:

sudo nginx -s reload

停止 Nginx:

sudo nginx -s stop
  1. 配置rtmp流服务

通过vim命令打开nginx的配置文件

vim /usr/local/nginx/conf/nginx.conf

接着在配置的最后面加上rtmp流服务器的配置,配置如下。

rtmp {
    server {                   # 标识为一个服务
        listen 8890            # rtmp流服务器监听的端口号
        so_keepalive=2s:1:2;   # 
        chunk_size 4000;       # 流复用块的大小,值越大cpu消耗越低
        application live {     # live是推拉流的路径名字
            live on;           # 开始实时直播
        }
    }
}

配置完成之后,输入:wq,然后进行启动nginx。

sudo nginx -t
sudo nginx

此时,rtmp流服务器就搭建完成。

3、推拉流验证

3.1、安装

  1. 推流软件OBS

OBS下载地址

打开上述链接,然后自行下载安装,这里不多讲述如何安装OBS。

  1. 拉流软件VLC

VLC下载地址

打开上述链接,然后自行下载安装,这里同样不多讲述如何安装VLC。

3.2、推流

  1. 添加数据源

打开OBS软件,其界面如下:

根据上图红色框的提示,点击+进行数据源添加,如下图所示:

这里,数据源有很多种类,建议采用媒体源,如下图:

根据红色框提示,点击确定,然后自己找一个视频添加进去,如下图:

这里,我添加了一个视频,然后点击确定。

  1. 设置推流地址

点击OBS主界面右下角的设置按钮,跳转到设置界面,如图所示:

接着,点击推流,在推流设置页面中填写服务器串流密钥

1)服务器地址
服务器地址组成如:rtmp://ip:port/path

  1. ip:rtmp流服务器安装的linux系统的IP,这里我用的是阿里云主机,所以填写了阿里云主机的公网IP,你根据
    自己的情况填写。
  2. port:rtmp流服务监听的端口号,我们已经配置为8890.
  3. path:live推流路径,我们已经配置为live

2)串流密钥
串流密钥很简单,自己填写一段数字就可以,这里我填写123.

填写推流配置完成后,点击确定,回到主界面,点击开始推流。

3.3、拉流

  1. 打开VLC软件,点击媒体选项,显示出来媒体菜单,然后选中打开网络串流.

  2. 在打开媒体页面中,填写拉流URL,如下图:

其格式就是我们在OBS推流中设置的推流服务器地址串流密钥,然后点击播放。

  1. 播放界面

至此,我们的推拉流就完成。

标签:nginx,module,Nginx,rtmp,服务器,推流
From: https://www.cnblogs.com/ydqblogs/p/17970146

相关文章

  • 微软用它取代了`Nginx`吞吐量提升了百分之八十!
    微软用它取代了`Nginx`吞吐量提升了百分之八十! Azure应用服务用YARP取代了Nginx,获得了80%以上的吞吐量。他们每天处理160B多个请求(1.9mRPS)。这是微软的一项了不起的技术创新。首先我们来介绍一下什么是YarpYarp是什么?YARP(YetAnotherReverseProxy)是一个开源的、高......
  • 【云原生】Docker入门 -- 阿里云服务器环境下安装Docker
    【云原生】Docker入门--阿里云服务器环境下安装Docker:https://wanghuichen.blog.csdn.net/article/details/125139901?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-125139901-blog-132249920.235%5Ev40%5Ep......
  • nginx的https证书自动续期
    nginx的https证书自动续期本文讲述nginx的https证书如何自动续期。顺便讲述如何手动续期,如何方便地管理所有域名证书。有很多实现方案,包括收费方案和免费方案,本文采用的是acme.sh方案。1.安装acme客户端需要将系统环境切换到root用户下执行,否则安装证书时可能会失败......
  • 16、nginx缓存机制
    1.proxy_cache相关指令Nginx的Web缓存服务主要由proxy_cache相关指令集和fastcgi关指令集构成,前者用于反向代理时,对后端内容源服务器进行缓存,后者主要用于对FastCGI的动态程序进行缓存。1.1proxy_cache指令语法:proxy_cachezone_name;默认值:None使用环境:http......
  • MobaXterm上传下载文件、文件夹到服务器上的操作方法
    首先通过SSH与服务器建立连接,可参考https://www.cnblogs.com/mercury-cheng/p/17969225。1、上传下载文件可以在命令输入窗口,无需输入命令,按ctrl单击的同时鼠标右键出现以下左图,选择receivefileusingZ-modem或者sendfile usingZ-modem来上传或者下载文件。也可以通过mob......
  • 变电站电力设备数据采集联网对接API转发存储数据库服务器技术方案
    DL_FileData_CJDC文件上海致达智能科技windows/linux/arm解析本地txt和xls文件DL_ABB_API_OLE 网络 ABBDCS windows ABBDCSOLE采集,本地采集DL_KRS_TCP 网络 台山核电 windows/linux/arm 台山核电KRS系统数据采集DL_Xinhua_ASDPU_UDP 网络 新华ASDPU协议 windows/linux/arm ......
  • 使用Go语言编写HTTP代理服务器
    在Go语言中,编写一个HTTP代理服务器相对简单且直观。代理服务器的主要职责是接收客户端的请求,然后将请求转发到目标服务器,再将目标服务器的响应返回给客户端。下面是一个简单的示例,展示如何使用Go语言编写一个基本的HTTP代理服务器:go复制代码package mainimport ("io" "log" "......
  • 本地连接远程服务器上的jupyter notebook
    1.服务端安装jupyternotebookpipinstalljupytercondainstallnotebook2.服务端启动jupyternotebookjupyternotebook--no-browser--port=<PORT>是你指定的端口号,比如99983.在本地连接服务器jupyternotebook打开powershell,输入#<PORT>就是你在服务器端输入的端......
  • 商业应用算力全球新标杆!浪潮信息八路服务器创SAP SD评测最高性能
    1月15日,据全球领先的企业应用软件提供商SAP发布的最新SAPSD评测结果,浪潮信息TS860G7服务器创下1,659,970 SAPS的最高性能成绩,成为商业应用算力的全球新标杆。TS860G7是浪潮信息最新一代的企业级八路服务器,其取得的最新成绩也成功超越了16路小型机系统保持的性能纪录。SAPSD是SAP......
  • 一机三芯! 中国服务器“销冠”NF5280G7率先支持
    近日,国际数据公司(IDC)数据显示,2023年前三季度,浪潮信息双路2U服务器夺得中国市场服务器全型号的销售冠军。作为浪潮信息双路2U服务器的旗舰产品NF5280G7,在业界率先以创新的系统架构支持三大处理器平台,包括IntelSapphireRapids/EmeraldRapids、AMDEPYC™及AmpereOne™,实现在AI大模......