Mac nginx + rtmp服务器安装

一.Homebrew
1、打开终端, 查看是否已经安装了Homebrew, 直接终端输入命令
man brew
如果已经安装就会显示帮助信息,如下

image.png

如果没有安装homebrew,在终端执行以下命令
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
成功后,输入下面命令
brew update

二.nginx
1、安装 nginx(依次在终端执行)
brew tap denji/homebrew-nginx 先clone nginx项目到本地
brew install nginx-full --with-rtmp-module 执行安装
nginx 启动
在Safari浏览器里打开http://localhost:8080
如果出现下图, 则表示安装成功

image.png

2、配置RTMP
执行安装命令结束后,在过程中找到图中配置文件的路径/opt/homebrew/etc/nginx/nginx.conf
image.png

Finder->前往->前往文件夹->输入/opt/homebrew/etc/nginx/nginx.conf->打开nginx.conf
image.png

将下面的配置复制粘贴在nginx.conf最后空白处

rtmp {
    server {
        listen 1935;
        application rtmplive {
            live on;
            record off;
        }
    }
}

说明:
rtmp是协议名称
server 说明内部中是服务器相关配置
listen 监听的端口号, rtmp协议的默认端口号是1935
application 访问的应用路径是 rtmplive
live on; 开启实时
record off; 不记录数据

3、重启nginx
当前版本为上图标记的/opt/homebrew/Cellar/nginx-full/1.19.10
/opt/homebrew/Cellar/nginx-full/1.19.10/bin/nginx -s reload 重启

4、问题记录
(1)nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)

image.png
无法访问,因为端口有冲突
处理方案
sudo nginx -s stop 关闭
nginx 在开启

三、ffmpeg
1、安装ffmpeg,终端输入以下命令:
brew install ffmpeg
报错

image.png

处理方案:删除进程、更新镜像源(下面命令依次执行)
ps -aux | grep "Homebrew" 输出所有“ Homebrew”进程 x:Mac的用户名
kill -9 pid 删除进程 pid:进程号
export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.ustc.edu.cn/brew.git"
brew update

出现下图,说明更新成功


image.png

再次执行
brew install ffmpeg 安装ffmpeg

这里基本完成本地的nginx +rtmp服务器安装

四:VLC测试,支持rtmp协议
下载地址:https://gitee.com/xu_sheng_jie/vlc-player.git
1、打开网络

image.png

2、添加rtmp
地址:rtmp://localhost:1935/rtmplive/mp4
image.png

localhost:可以替换成Mac的ip地址
rtmplive:rtmp中的application 访问的应用路径
1935: rtmp协议的端口号

image.png

3、推流到服务器
ffmpeg -re -i /Users/xuchengjie/Downloads/55.mp4 -vcodec libx264 -acodec aac -strict -2 -f flv -flvflags no_duration_filesize rtmp://localhost:1935/rtmplive/mp4
/Users/xuchengjie/Downloads/55.mp4:视频的绝对路径
rtmp://localhost:1935/rtmplive/mp4:VCL上的rtmp地址
报错
image.png

原因:之前的推流客户端断开时,TCP链接不能够被正常关闭,publishing会一直存在导致的。(强行断开)
处理方案:终止所有1935的端口号的进程
ps -aux | grep "1935" x:Mac的用户名
kill -9 pid 删除进程 pid:进程号

再次执行
ffmpeg -re -i /Users/xuchengjie/Downloads/55.mp4 -vcodec libx264 -acodec aac -strict -2 -f flv -flvflags no_duration_filesize rtmp://localhost:1935/rtmplive/mp4

一会就能看到VCL播放器弹出窗口播放视频了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容