公司项目是直播相关,自己网上搜了搜MAC搭建rtmp服务器,总结一下。
- 1.打开终端,查看是否已经按照了Homebrew,直接终端输入命令
man brew
如果mac已经按照了,会显示一些命令的帮助信息,此时输入Q退出即可,直接进入第二步,反之,如果没有安装,执行命令
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
如果安装后,想卸载
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
- 2.安装nginx
先clone nginx项目到本地
brew tap homebrew/nginx
执行安装
brew install nginx-full --with-rtmp-module
此时,nginx和rtmp模块就安装好了,输入命令
nginx
在浏览器中打开 http://localhost:8080
如果出现下图,则标示安装成功
如果终端提示
nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)
.....
则标示8080端口被占用了,查看端口PID
lsof -i tcp:8080
根据端口PID,kill掉(这儿的9603换成你自己的8080端口的PID)
kill 9603
然后重新执行nginx,打开http://localhost:8080
- 3.配置nginx和rtmp
首先我们查看nginx安装到哪了
brew info nginx-full
如图,找到nginx.conf
文件所在的位置
通过vim
或者点击Finder
->前往
->前往文件夹
->输入/usr/local/etc/nginx/nginx.conf
->用记事本工具(推荐Visual Studio Code
)打开nginx.conf
直接滚到最后一行,在最后一个}
(即最后的空白处,没有任何{}
)后面添加
# 在http节点后面加上rtmp配置:
rtmp {
server {
listen 1935;
application rtmplive {
live on;
record off;
}
}
}
然后重启nginx
(其中的1.12.1
要换成你自己安装的nginx
版本号,查看版本号用nginx -v
命令)
/usr/local/Cellar/nginx-full/1.11.1/bin/nginx -s reload
- 1.安装ffmpeg
执行命令
brew install nginx-full --with-rtmp-module
安装ffmpeg
时间要长一点,如果速度过慢,建议翻墙,在安装的过程中,安装一个支持rtmp
协议的播放器VLC
- ffmpeg推流
以我桌面的一个loginmovie.mp4(自己准备一个视频文件)为例,执行推流命令
- ffmpeg推流
ffmpeg -re -i /Users/sunlin/Desktop/loginmovie.mp4 -vcodec libx264 -acodec aac -strict -2 -f flv rtmp://localhost:1935/rtmplive/room
将视频推流到服务器后,打开VLC,然后file->open network->输入:
效果如图: