macos nginx rtmp


原文链接: macos nginx rtmp
  1. 从github下载home-brew对nginx的扩展:
    安装 Nginx服务器 和 RTMP模块:

    brew tap denji/nginx
    brew install nginx-full --with-rtmp-module
    
#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
#brew 卸载软件
brew uninstall nginx

#查看安装信息(经常用到, 比如查看安装目录等):
brew info nginx

#查看已经安装的软件:
brew list

4.安装信息,附带启动信息:

==> nginx-full
Docroot is: /usr/local/var/www
The default port has been set in /usr/local/etc/nginx/nginx.conf to 8080 so that
nginx can run without sudo.
nginx will load all files in /usr/local/etc/nginx/servers/.

- 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

To have launchd start denji/nginx/nginx-full now and restart at login:
  brew services start denji/nginx/nginx-full
Or, if you don't want/need a background service you can just run:
  nginx
  1. 配置RTMP服务:

我们需要在Nginx的配置文件中进行数据修改
打开 open /usr/local/etc/nginx/nginx.conf ,在http节点下面(即文件尾部)加上rtmp配置。
打开路径下的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

#配置rtmp server
rtmp {
        server {
                listen        1935;
                chunk_size    4000;

                #配置了一个叫live的应用
                application live {
                        live       on;       #保持开启
                        record     off;      #停止录制
                        allow play all;      #允许所有请求
                }
        }
}

检测rtmp服务有没有启动:

netstat -an |grep 1935

tcp4       0      0  *.1935                 *.*                    LISTEN

先clone nginx项目到本地:

brew tap homebrew/nginx

执行安装

brew install nginx-full --with-rtmp-module

以上步骤nginx和rtmp模块就安装好了,下面开始来配置nginx的rtmp模块

首先找到nginx安装位置

brew info nginx-full

执行上面的命令后我们可以看到终端信息

nginx安装.png

nginx安装所在位置

/usr/local/Cellar/nginx-full/1.10.2/bin/nginx

nginx配置文件所在位置

/usr/local/etc/nginx/nginx.conf

三、启动nginx服务

nginx

信息如下:

nginx.png

在浏览器里打开http://localhost:8080

如果出现下图, 则表示安装成功

test.png

如果终端上提示

tips.png

则表示8080端口被占用了, 查看端口PID

lsof -i tcp:8080

根据端口PID, kill掉9603换成自己8080端口的PID

kill 9603

然后重新执行nginx, 打开http://localhost:8080

四、配置ramp
首先我们查看nginx安装到哪了

brew info nginx-full

如图找到nginx.conf配置文件所在位置

location.png

打开Finder Shift + command + G前往,用记事本工具打开nginx.conf
在http节点后面加上rtmp配置:

config.png

然后重启配置文件

nginx -s reload

五、安装ffmepg工具

brew install ffmpeg

安装ffmpeg时间就要长一点了. 如果速度过慢, 可以尝试翻墙。等待的过程中, 再安装一个支持rtmp协议的视频播放器VLC

VLC.png

终端显示如下信息表示ffmepg安装成功

ffmpeg.png

六、ffmpeg推流
这里操作的是mac桌面的一个test.mp4视频为例, 执行推流命令

ffmpeg -re -i /Users/maying/Desktop/test.mp4 -vcodec copy -f flv rtmp://localhost:1935/rtmplive/room

ps:

ffmpeg -re -i 你的视频文件的绝对路径 -vcodec copy -f flv rtmp://localhost:1935/rtmplive/room

推流终端信息如下

推流.png

推流tip.png

推流tip2.png

将视频推流到服务器后,打开VLC,然后File->open network->输入:

rtmp://localhost:1935/rtmplive/room

video.png

就可以查看视频了。

video.png

ps:
终端错误信息处理:

error.png

1.上面这个是修改配置文件后需要重新加载nginx -s reload;
2.输入命令行的时候需要注意,可能会出错。

`