最近APP需要加入一个播放RTMP格式视频流的功能,因为硬件那边不能时时的推流,所以需要自己在Mac上自己搭建一个RTMP服务器,所以就百度了一些文章,最后搭建成功了,并且能够正常运行。现在来记录下我在搭建过程中出现的问题。希望以后可以少走弯路。
废话不多说,下面是具体的实现过程
1、先安装Homebrew
Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等功能。简单的一条命令就可以实现包管理,而不用担心各种依赖和文件路径的情况,十分方便。
安装Homebrew命令
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
移除Homebrew命令
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
2、安装Nginx服务器
增加Nginx的扩展
brew tap homebrew/nginx
3、安装Nginx服务器和RTMP模块
brew install nginx-full --with-rtmp-module
在这一步中,我们会得到关于Nginx的相关信息:
#nginx的安装位置
/usr/local/Cellar/nginx-full/1.12.2/bin/nginx //这里1.12.2是相应的版本,根据实际情况在变动
#nginx配置文件所在位置
/usr/local/etc/nginx/nginx.conf
#nginx服务器根目录所在位置
/usr/local/var/www
还会得到相应的Nginx操作,reload,reopen,stop,quit
- Tips -
Run port 80:
$ sudo chown root:wheel /usr/local/opt/nginx-full/bin/nginx
$ sudo chmod u+s /usr/local/opt/nginx-full/bin/nginx
Reload config:
$ nginx -s reload
Reopen Logfile:
$ nginx -s reopen
Stop process:
$ nginx -s stop
Waiting on exit process
$ nginx -s quit
4、通过下面命令,查看Nginx的信息
brew info nginx-full
这时在浏览器中输入http://localhost:8080
如果看到如下截图的内容,那么就安装成功了
5、配置RTMP
我们需要在Nginx的配置文件中进行数据修改
open /usr/local/etc/nginx
打开路径下的nginx文件夹,然后找到nginx.conf这个文件,右键用Xcode打开。在底部添加代码
rtmp { //协议名称
server { //说明内部中是服务器相关配置
listen 1935; //监听的端口号, rtmp协议的默认端口号是1935
application zbcs { //访问的应用路径是 zbcs
live on; //开启实时
record off; //不记录数据
}
}
}
如果在HTTP节点下面这些代码,那么就将listen后面的数字改成1935,application后面改成zbcs。
关闭文件,执行下面命令!!!!!
关闭文件,执行下面命令!!!!!
关闭文件,执行下面命令!!!!!
nginx -s reload //这一步必须执行,重启Nginx
****在执行这里时我遇到了一个问题,终端中一直提示我下面的信息****
nginx: [error] open() "/usr/local/var/run/nginx.pid" failed (2: No such file or directory)
提示nginx.pid丢失,这里的具体原因我没有找到,但是百度和google后找到了解决办法,就是在终端中输入Nginx的安装位置 -c Nginx配置文件所在的位置,如果执行后没有任何提示证明就成功了,在我电脑中的执行操作是这样的
/usr/local/Cellar/nginx-full/1.12.2/bin/nginx -c /usr/local/etc/nginx/nginx.conf
之后再执行nginx -s reload命令就没问题了,不会再提示任何信息
6、安装ffmpeg工具
brew install ffmpeg
安装过程入下图
7、如果安装完成后,就可以找一个mp4格式的视频进行推流了
有一点需要注意,路径必须是视频文件的绝对路径
有一点需要注意,路径必须是视频文件的绝对路径
有一点需要注意,路径必须是视频文件的绝对路径
/users/lover/desktop/文件名
ffmpeg -re -i /users/lover/desktop/Demo.mp4 -vcodec copy -f flv rtmp://localhost:1935/zbcs/PlugFlowTest
PlugFlowTest这个名字可以随意设置
执行后,电脑就作为一个推流工具在运行了。
如果想看效果,可以打开VLC这个播放工具,然后file--open network---输入rtmp://localhost:1935/zbcs/PlugFlowTest
完成。
如果出现其他问题,欢迎一起讨论,关于前面说的几个没有弄明白的问题,如果找到答案,我会时时的更新。
出现的问题:
1、Connection to tcp://localhost:1935 failed (Connection refused), trying next address
出现这个错误是因为,配置了nginx.conf后需要重启nginx,输入这一行命令就可以了
nginx -s reload
--------------------------------------分割线----------------------------------------
最后,参考了大神的文章:http://www.cnblogs.com/jys509/p/5649066.html
感谢