硬件
macOS m1
备注:其它操作系统的安装主流程都一样,即 "nginx如何加载外部模块"
软件
1)安装nginx
打开 "终端", 输入如下命令
brew install nginx
注意: 如果安装比较慢,最好对 brew 进行镜像设置,具体方法自查
2)验证nginx
打开 "终端", 输入如下命令
nginx -V
出现如下字样,证明安装成功。备注:出现的数字是版本号
`nginx version: nginx/1.27.5
built by clang 16.0.0 (clang-1600.0.26.6)
built with OpenSSL 3.5.0 8 Apr 2025`
3) 复制自己机器上的 nginx 源码
3.1) 源码压缩包路径
/opt/homebrew/Cellar/nginx/1.27.5/share/nginx
3.2) 复制到自己的文件
假如文件夹名为 : temp_nginx_module
3.3) 解压缩
解压缩完成后,nginx 源码会出现在 src 文件下边, 即:temp_nginx_module/src
3.4) 改名
这一步纯粹为了好看,将 src 文件夹名称修改为 brew_nginx_1.27.5, 这个新修改的文件夹名称可以由自己随意定义
4) 克隆 nginx-rtmp-module
这里将 nginx-rtmp-module 源码克隆到 temp_nginx_module 文件夹下
git clone https://github.com/arut/nginx-rtmp-module.git
备注:如果克隆失败,可以考虑 github 镜像地址,帮助文档自查
5) 添加 nginx-rtmp-module 源码到 nginx 源码中
5.1) 查看 nginx 当前已有的模块配置
在 “终端” 中,输入如下命令
ngnix -V
在结果中找关键词 "configure arguments:" , 这个词之后的内容(假设整体叫: MyNginxContent)都保存下来
5.2) 添加 nginx-rtmp-module 源码模块
通过 "终端" 进入 ”temp_nginx_module/brew_nginx_1.27.5“ 文件夹中
执行如下命令:
./configue MyNginxContent --add-module=nginx-rtmp-module源码文件夹所在的位置
MyNginxContent : 5.1) 中保存下来的内容
nginx-rtmp-module源码文件夹所在的位置 : xxx/temp_nginx_module/nginx-rtmp-module
xxx : 代表temp_nginx_module的父文件夹路径
5.3) 编译 nginx 源码
通过 "终端",在”temp_nginx_module/brew_nginx_1.27.5“ 文件夹下输入如下命令
make
5.4) 安装 通过 "终端",在”temp_nginx_module/brew_nginx_1.27.5“ 文件夹下输入如下命令
make install
5.5) 验证 通过 "终端",输入如下命令
nginx -V
不出意外的话,会出现 nginx-rtmp-module 字样
6) 配置 rtmp
在 “/opt/homebrew/etc/nginx” 路径下,打开 nginx.conf 文件
打开文件后,拉到最末端,添加如下文字命令,然后保存。
注意: 最后手动敲上去,喜欢对齐的,必须用空格
rtmp {
server { # 标识为一个服务
listen 1935; # rtmp流服务器监听的端口号
chunk_size 4000; # 流复用块的大小,值越大cpu消耗越低
application live{ # live是推拉流的路径名字
live on; # 开始实时直播
}
}
}
检查配置文件是否有问题,在 “终端” 中,输入如下命令
nginx -t
如果语法格式正确的话,会出现如下字样
nginx: the configuration file /opt/homebrew/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /opt/homebrew/etc/nginx/nginx.conf test is successful
7) 启动 nginx 在 "终端" 中,输入如下命令
brew services start nginx
8) 通过 OBS 软件,验证推流
打开OBS软件,从菜单栏进入OBS 设置 菜单
在 控制按钮 模块中,选择 “开始直播”
如果成功,“开始直播” 按钮会变为 “停止直播”
总结
耐心一点,应该会成功,祝你好运
From harvey_fly。