nginx官网:https://nginx.org/en/download.html
可以复制连接后使用wget进行下载:
wget https://nginx.org/download/nginx-1.28.0.tar.gz
rtmp:https://github.com/arut/nginx-rtmp-module
在右侧releases tag找到相关发版的软件包进行下载
一样使用wget下载:
wget https://github.com/arut/nginx-rtmp-module/archive/refs/tags/v1.2.2.tar.gz
因为下载的都是tar.gz的软件包,使用tar命令进行解压。
tar -zxvf nginx-1.28.0.tar.gz
tar -zxvf v1.2.2.tar.gz
解压后得到

cd进入nginx主目录进行编译安装,可以使用prefix指定需要安装的目录,或者采用其默认的安装目录。这里采用默认的目录,直接加上需要编译的模块即可。
./configure --add-module=../nginx-rtmp-module-1.2.2
make
make install
cd到安装目录/usr/local/nginx/conf,进行配置,建议在进行配置前进行备份。
添加rtmp配置,更多使用说明可查看该项目在github上的说明。
rtmp {
server {
listen 1935;
chunk_size 4000;
application mytv {
live on;
#以下可根据实际情况进行添加需要回调的地址
#on_publish http://localhost:8080/publish;
#on_play http://localhost:8080/play;
#on_done http://localhost:8080/done;
}
}
}
如需要查看rtmp的状态,可在http中添加
server {
listen 8080;
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
root /usr/local/nginx/html/;
}
}
注意:要通过http查看rtmp的状态,需要一个关键的文件“stat.xsl”,在这里我把这个文件拷贝到/usr/local/nginx/html/下,该文件在一开始解压的nginx-rtmp-module目录可以找到。
启动nginx,访问对应的地址即可看到流服务器的状态。

要先设置服务器的防火墙打开1935端口,这里服务器配置不进行赘述。OBS打开一个视频文件,进行播放。
进行OBS推流设置。
注意服务器处的填写,端口后面的mytv为nginx中设置的application的名称,推流码可以自己设定。

设置完成后开始直播。

这时再去访问查看状态的服务。可以看到有一个流正在流入

媒体->打开网络串流

填入我们的视频流的地址

点击播放,即可观看由OBS直播的视频了。

至此,nginx+rtmp实现流服务器完成。