iOS直播app之Mac搭建nginx+rtmp服务器

前言 今年移动直播行业的兴起,很多公司都在做直播,转眼间过了大半年了,直播的各种技术相对成熟了起来。今天我们公司也追赶潮流,索性我也转战直播,下面从第一步开始,Mac环境下如何搭建nginx+rtmp服务器。 nginx是非常优秀的开源服务器,用它来做hls或者rtmp流媒体服务器是非常不错的选择。

一、安装Homebrew 打开终端, 查看是否已经安装了Homebrew, 直接终端输入命令。如果对Homebrew不熟悉,可以移步这里

man brew

Paste_Image.png

根据上图所示,如果Mac环境下安装了Homebrew,则会显示一些命令的帮助信息,此时输入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)"

二、安装nginx 先把nginx下载到本地

brew tap homebrew/nginx

执行安装

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

Paste_Image.png

此时, nginx和rtmp就安装好了,输入命令,检测是否安装成功

nginx

在浏览器里打开http://localhost:8080如果出现下图, 则表示安装成功

Paste_Image.png

三、配置nginx和rtmp 配置nginx的rtmp,输入命令

brew info nginx-full

Paste_Image.png

通过上图可以看出,nginx.conf文件在:

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

nginx完整路径:

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

通过vim或者点击Finder ->前往 ->前往文件夹 ->输入/usr/local/etc/nginx/nginx.conf ->用Atom打开nginx.conf配置文件来配置

Paste_Image.png

直接滚动到最后一行,以就是在http {} 之后:

# 在http节点后面加上rtmp配置:
rtmp {    
    server {        
        listen 2016;        
        application rtmplive {            
            live on;            
            record off;        
        }    
    }
}

说明: rtmp是协议名称 server 说明内部中是服务器相关配置 listen 监听的端口号, rtmp协议的默认端口号是1935 application 访问的应用路径是 zbcs live on; 开启实时 record off; 不记录数据

保存文件后,重新加载nginx的配置文件这一步很重要

nginx -s reload

重启nginx:

sudo /usr/local/Cellar/nginx-full/1.10.0/bin/nginx -s reload

执行命令的时候, 报异常

Paste_Image.png

Paste_Image.png

大概意思就是配置nginx.conf的时候,在123行犯了一个愚蠢的错误,手动输入application rtmplive的时候,应该有个空格。 重启nginx:

sudo /usr/local/Cellar/nginx-full/1.10.0/bin/nginx -s reload

Paste_Image.png

四、安装ffmpeg 对于ffmpeg不熟悉的,可以移步这里 输入以下命令来安装ffmpeg:

brew install ffmpeg

安装ffmpeg时间就要长一点了 安装一个支持rtmp协议的视频播放器,Mac下可以用VLC

五、验证视频 首先自己准备一个视频文件, 也可以用我github项目中的视频文件,执行命令

ffmpeg -re -i /Users/sunjinshuai/Desktop/keep.mp4 -vcodec libx264 -acodec aac -f flv rtmp://localhost:2016/rtmplive/room

Paste_Image.png

然后电脑上打开vlc这个播放器软件 点击File---->Open Network 在弹出来的框中选择Network然后输入URL: rtmp://localhost:1935/zbcs/room

Paste_Image.png

右击play,ffmepg 安装完成后可以开始推流了。

ps:

六、报错处理 1、ffmepg命令推流的时候,提示连接失败。

Paste_Image.png

出现这个错,是因为配置了nginx.conf后,需要重启nginx。输入命令重启后就没有问题了

nginx -s reload

七、FFmpeg常用推流命令 1、桌面录制或者分享

ffmpeg -f avfoundation -i "1" -vcodec libx264 -preset ultrafast -acodec libfaac -f flv rtmp://localhost:2016/rtmplive/room

未命名.gif

2、桌面+麦克风

ffmpeg -f avfoundation -i "1:0" -vcodec libx264 -preset ultrafast -acodec libmp3lame -ar 44100 -ac 1 -f flv rtmp://localhost:2016/rtmplive/room

未命名.gif

3、桌面+麦克风,并且还要摄像头拍摄到自己

ffmpeg -f avfoundation -framerate 30 -i "1:0" \-f avfoundation -framerate 30 -video_size 640x480 -i "0" \-c:v libx264 -preset ultrafast \-filter_complex 'overlay=main_w-overlay_w-10:main_h-overlay_h-10' -acodec libmp3lame -ar 44100 -ac 1 -f flv rtmp://localhost:2016/rtmplive/room

未命名.gif

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏喵了个咪的博客空间

原 EMQ百万级MQTT消息服务(分布式集群)

在强大的单机也比不上集群,EMQ的集群模式很粗暴,只需要把EMQ服务关联在一起然后负载均衡就可以达到集群的效果,这样就算面对1000CK问题也迎刃而解 附上: ...

69080
来自专栏张善友的专栏

Event Store 2.0发布,带来了安全支持和测试版Projections库

Event Store 2.0版本于上周发布,它带来了安全支持允许锁定Event Store和在事件流上设置访问控制列表。其主要新特性包括: HTTP和TCP之...

204100
来自专栏QQ音乐技术团队的专栏

全民K歌后台编译优化:从40分钟到30秒

编者注 :全民K歌上线1年半的从0发展到1.5亿,用户越来越多,后台代码库越来越大,编译速度也与日俱慢,编译一下整个工程需要30-40分钟,如何实现秒编至关重要...

42570
来自专栏编程坑太多

『高级篇』docker之了解kubernetes(31)

PS:(梳理概念)pod里面包括N个容器,service里面包括pod,Deployment可能包括service或者是pod。

16640
来自专栏腾讯大讲堂的专栏

全民K歌后台编译优化:从40分钟到30秒

编者注 全民K歌上线1年半的从0发展到1.5亿,用户越来越多,后台代码库越来越大,编译速度也与日俱慢,编译一下整个工程需要30-40分钟,如何实现秒编至关重要。...

41550
来自专栏木头编程 - moTzxx

ThinkCMF 初次见面/折腾一下

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/de...

27620
来自专栏月色的自留地

Unix程序员的Win10二三事

16650
来自专栏FreeBuf

DLINK DCS-5020L无线云摄像机远程代码执行漏洞分析

本文主要是向大家演示,如何找到物联网(IOT)设备中的漏洞。查找以下命令注入的过程可以分为3个步骤,有点类似于100 point CTF challenge:下...

13950
来自专栏张戈的专栏

纯64位版浏览器:Waterfox水狐浏览器

近期博主将自己的本本的内存从 2G 升级到 4G,勉勉强强实现了不正规双通道(CPU-Z 检测成功)。为了最大程度地发挥这 6G 的性能,博主又将系统升级到了 ...

42280
来自专栏互扯程序

抓包神器之Charles,常用功能都在这里了

KS Knowledge Sharing 知识分享 现在是资源共享的时代,同样也是知识分享的时代,如果你觉得本文能学到知识,请把知识与别人分...

2.1K70

扫码关注云+社区

领取腾讯云代金券