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、开始搭建
- 安装依赖库
在编译和安装 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
- 下载nginx-rtmp-module模块
开源的nginx-rtmp-module模块,封装了rtmp server。nginx可以用此模块可以很简单提供RTMP服务。
你可以通过git clone下来nginx-rtmp-module的源码,这里不多讲解。
- 下载nginx源码
可以从 Nginx官方网站下载最新的稳定版本,例如:
wget https://nginx.org/download/nginx-1.24.0.tar.gz
- 编译配置
下载完成后,需要解压并进去源码目录
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的源码目录,每一个人都不一样,切记。
- 开始编译
完成配置后,可以使用以下命令开始编译:
make
安装
编译完成后,可以使用以下命令安装 Nginx:
sudo make install
将 Nginx 可执行文件连接到系统 PATH 中的目录:
sudo ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx
2.3、开始使用
- 简单介绍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
- 配置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、安装
- 推流软件OBS
打开上述链接,然后自行下载安装,这里不多讲述如何安装OBS。
- 拉流软件VLC
打开上述链接,然后自行下载安装,这里同样不多讲述如何安装VLC。
3.2、推流
- 添加数据源
打开OBS软件,其界面如下:
根据上图红色框的提示,点击+进行数据源添加,如下图所示:
这里,数据源有很多种类,建议采用媒体源,如下图:
根据红色框提示,点击确定,然后自己找一个视频添加进去,如下图:
这里,我添加了一个视频,然后点击确定。
- 设置推流地址
点击OBS主界面右下角的设置按钮,跳转到设置界面,如图所示:
接着,点击推流,在推流设置页面中填写服务器和串流密钥
1)服务器地址
服务器地址组成如:rtmp://ip:port/path
- ip:rtmp流服务器安装的linux系统的IP,这里我用的是阿里云主机,所以填写了阿里云主机的公网IP,你根据
自己的情况填写。 - port:rtmp流服务监听的端口号,我们已经配置为8890.
- path:live推流路径,我们已经配置为live
2)串流密钥
串流密钥很简单,自己填写一段数字就可以,这里我填写123.
填写推流配置完成后,点击确定,回到主界面,点击开始推流。
3.3、拉流
-
打开VLC软件,点击媒体选项,显示出来媒体菜单,然后选中打开网络串流.
-
在打开媒体页面中,填写拉流URL,如下图:
其格式就是我们在OBS推流中设置的推流服务器地址加串流密钥,然后点击播放。
- 播放界面
至此,我们的推拉流就完成。
标签:nginx,module,Nginx,rtmp,服务器,推流 From: https://www.cnblogs.com/ydqblogs/p/17970146