一.Homebrew
1、打开终端, 查看是否已经安装了Homebrew, 直接终端输入命令
man brew
如果已经安装就会显示帮助信息,如下
如果没有安装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
如果出现下图, 则表示安装成功
2、配置RTMP
执行安装命令结束后,在过程中找到图中配置文件的路径/opt/homebrew/etc/nginx/nginx.conf
Finder->前往->前往文件夹->输入/opt/homebrew/etc/nginx/nginx.conf->打开nginx.conf
将下面的配置复制粘贴在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)
处理方案
sudo nginx -s stop
关闭nginx
在开启
三、ffmpeg
1、安装ffmpeg,终端输入以下命令:
brew install ffmpeg
报错
处理方案:删除进程、更新镜像源(下面命令依次执行)
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
出现下图,说明更新成功
再次执行
brew install ffmpeg
安装ffmpeg
这里基本完成本地的nginx +rtmp服务器安装
四:VLC测试,支持rtmp协议
下载地址:https://gitee.com/xu_sheng_jie/vlc-player.git
1、打开网络
2、添加rtmp
地址:rtmp://localhost:1935/rtmplive/mp4
localhost:可以替换成Mac的ip地址
rtmplive:rtmp中的application 访问的应用路径
1935: rtmp协议的端口号
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地址
报错
原因:之前的推流客户端断开时,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播放器弹出窗口播放视频了。