Nginx+Nginx-rtmp-module搭建RTMP视频直播

mac2024-05-24  40

版本信息

Nginx:1.15.3

Nginx-rtmp-module:1.2.1

系统:CentOS

AndroidStudio:3.5

OBS:24.0.3

Windows:10 1809

Linux操作:

下载nginx

​    wget http://nginx.org/download/nginx-1.15.3.tar.gz

解压

​    tar xvf nginx-1.15.3.tar.gz

下载nginx rtmp模块

​    wget https://codeload.github.com/arut/nginx-rtmp-module/tar.gz/v1.2.1

解压

​    tar xvf v1.2.1  

进入nginx目录

​    cd nginx-1.15.3

执行:

```shell #--add-module 指向rtmp模块目录 ./configure --prefix=./bin --add-module=../nginx-rtmp-module-1.2.1 ```

在这个过程中可能因为环境不同而出现不同错误,比如缺少pcre、openssl等,这时候就需要安装这些库。

参考 https://blog.csdn.net/z920954494/article/details/52132125

编译完成后,安装在当前目录的bin目录下。

cd bin/conf 

vim nginx.conf 修改为:

```nginx 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      8081;         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;         }     } }

```

其实就是从 ` nginx-rtmp-module-1.2.1/test/nginx.conf `中拷贝。

端口占用检查:  lsof -i:8080

需要注意的是目录与端口是否被占用,比如我的8080端口被占用,我改为了8081,然后需要开放端口。

配置了iptables防火墙的翻下前面的资料,如果没安装的阿里云服务器可以进入阿里云控制台开放![阿里云控制台](图片\阿里云控制台.png)

然后点击`配置规则`,在新页面点击添加`安全组规则`,开放8081端口,然后确定,就可以了。

![开放端口](图片\开放端口.png)

配置完成后,就可以启动nginx了

在当前目录 执行  bin/sbin/nginx 即可启动

 bin/sbin/nginx -s  stop 停止

一定要在当前目录启动,因为上面的配置 error_log  logs/error.log debug;  会去执行命令的目录下查找 logs。

如果error_log  改成一个绝对路径 那就没关系了。

在浏览器输入 

【IP】:8081

能访问就表示配置完成了。

 

推流端

推流使用的是OBS Windows版本。

下载并安装OBS。在来源里新增显示器捕获和音频输出捕获。

 

在控件中设置推流地址

推流的服务器应该为:

rtmp://ip:端口/nginx配置文件中rmpt的application名(本文中是myapp)

点击控件的开始推流,即能将流推到服务器中。

 

播放端

使用PotPlayer或者其他支持rtmp播放软件中打开推流地址,即可播放直播。

最新回复(0)