专栏首页iOS 开发杂谈iOS直播app之Mac搭建nginx+rtmp服务器

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 条评论
登录 后参与评论

相关文章

  • HTTP协议详解

    HTTP协议,即超文本传输协议(Hypertext transfer protocol)。

    s_在路上
  • iOS RunTime之三:消息发送

    由上面一章中,我们了解了什么是RunTime的数据结构,下面了解一下Runtime的消息发送。

    s_在路上
  • iOS RunTime之二:数据结构

    由上面一章中,我们了解了什么是RunTime,RunTime用来做什么,下面了解一下Runtime数据结构。

    s_在路上
  • nginx反向代理+http user 认证访问 私有registry

    利用nginx做反向代理,从而实现对registry的访问;而nginx作为反向代理来使用在实际情况中非常多见,并且还支持基本的用户权限认证。 本节讲述如何用...

    qsjs
  • Nginx认识与实践(二) 转

    =================Nginx反向代理+负载均衡 实现 start===================

    wuweixiang
  • 02 . Nginx平滑升级和虚拟主机

    常见_youmen
  • Nginx 五大常见应用场景,Linux运维请收藏~

    Nginx 是一个很强大的高性能 Web 和反向代理服务,它具有很多非常优越的特性,在连接高并发的情况下,Nginx 是 Apache 服务不错的替代品。其特点...

    杰哥的IT之旅
  • Nginx 五大常见应用场景,Linux运维请收藏~

    Nginx 是一个很强大的高性能 Web 和反向代理服务,它具有很多非常优越的特性,在连接高并发的情况下,Nginx 是 Apache 服务不错的替代品。其特点...

    范蠡
  • Ubuntu安装设置nginx和nohup常用操作

    nginx安装 Ubuntu直接从常规源中安装 apt-get install nginx 安装的目录 配置文件:/etc/nginx/ 主程序文件:/usr/...

    Java中文社群-磊哥
  • nginx启动bug记录

    出现问题: nginx: [emerg] open() "/var/run/nginx/nginx.pid" failed (2: No such file o...

    布衣骇客

扫码关注云+社区

领取腾讯云代金券