macOS上搭建Nginx+rtmp服务器

2016-07-14 15:28小小哆iOSDev评论(0)

前言

最近在深圳这边找工作,发现移动端视频直播开发很火,喜欢新技术的我必须来鼓捣鼓捣。下面是我在学(zhe)习(teng)中一些笔记。
要想开发视频直播,必须先有一个rtmp直播流用来测试,所以本文先来说说如何搭建下Nginx+rtmp服务器
本文部分内容参考网络上优秀文章

简介

Nginx是一款轻量级的开源服务器软件,博主也常用它来搭建PHP服务器,强大的Nginx也能搭建rtmp流媒体服务器。

教程

一、安装Homebrow

已经安装了brow的可以直接跳过这一步

查看是否已安装命令:brew -v
安装执行命令:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

如果已经安装后,想要卸载:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

安装成功截图:
QQ20160714-0.png

二、安装Nginx

先glone nginx项目到本地:

brew tap homebrew/nginx

执行安装:

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

安装过程比较缓慢,需耐心等待
通过操作以上步骤nginx和rtmp模块就安装好了
QQ20160714-1.png
我们先来看看nginx安装在哪里了

brew info nginx-full

执行上面的命令后我们可以看到信息
QQ20160714-2.png
nginx安装所在位置

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

nginx配置文件所在位置

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

三、运行nginx

执行下面命令,测试下是否能成功启动nginx服务

nginx

在浏览器地址栏输入:http://localhost:8080
如果出现如下图,则代表nginx安装成功了
QQ20160714-3.png
如果终端上提示

nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)

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

lsof -i tcp:8080

kill掉占用8080端口的PID(下面命令9123为PID)

kill 9123

然后重新执行nginx

nginx常用方法:重新加载配置文件

nginx -s reload

重新加载日志:

nginx -s reopen

停止nginx:

nginx -s stop

退出nginx:

nginx -s quit

四、配置rtmp

接下来修改nginx.conf这个配置文件,配置rtmp
复制nginx配置文件所在位置

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

打开Finder,前往文件夹(Shift + command + G),用记事本工具(推荐Sublime Text、或者Xcode)打开nginx.conf

rtmp {

    server {
        listen 1935;

        #直播流配置
        application rtmplive {
            live on;
            #为 rtmp 引擎设置最大连接数。默认为 off
            max_connections 1024;
        }

        application hls{
            live on;
            hls on;
            hls_path /usr/local/var/www/hls;
            hls_fragment 1s;
        }
    }
}

配置完后,需重启nginx,执行命令

nginx -s reload

五、安装ffmepg工具

brew install ffmpeg

安装这个需要等一段时间等待吧
QQ20160714-4.png
然后准备一个视频文件作为来推流,然后我们在安装一个支持rtmp协议的视频播放器,Mac下可以用VLC

六、ffmpeg推流

在下面位置填入测试视频的路径,执行命令

ffmpeg -re -i /Users/xushuduo/Desktop/test.mp4 -vcodec libx264 -acodec aac -strict -2 -f flv rtmp://localhost:1935/rtmplive/room

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

rtmp://localhost:1935/rtmplive/room

总结

经过上面的步骤,如果你能在VLC通过地址看到测试视频,那么rtmp流媒体服务器就搭建完成了。
我将会在这几天抽空写如何在iOS中播放rtmp流媒体视频
QQ20160714-6.jpg

上一篇 Shadowrocket一款能在iOS上使用ss科学上网的Appijkplayer视频直播框架的编译和集成 下一篇
评论 0
由于之前使用多说插件出现问题,导致以前的评论丢失,在此深表歉意!

站点统计

  • 建站日期:2014-12-06
  • 最后更新:2016-07-23
  • 运行时间:1725 天
  • 文章数量:46 篇