Mac搭建nginx+rtmp服务器

【异常】Nginx报错: [emerg] unknown directive ““ in /usr/local/nginx/nginx.conf:xx Nginx配置报错"[emerg] unknown directive"常见问题摘要:当执行nginx -s reload时出现此错误,通常是由于配置文件中存在多余空格或空行导致的语法问题。错误信息会显示发生问题的具体行号(xx)。解决方法需要仔细检查该行及相邻行的配置内容,删除多余空格或空行后重新保存即可。此类问题多因编辑时不小心多输入字符引起,细心检查重写配置即可解决。 阅读详情

最近因为在学习直播,所以研究了下推流,这篇博客是基于RTMP的视频推流:

开始:

我个人电脑里面很早以前就搭建过nginx+rtmp服务器, 但是昨天在公司电脑上搭建的时候, 手动输入命令的时候, 还是出现了bug(所以, 建议大家直接复制命令, 不要手动输入命令). 所以记录一份详细的搭建步骤, 防止再次跳坑...

1. 打开终端, 查看是否已经安装了Homebrew, 直接终端输入命令

man brew

如果Mac已经安装了, 会显示一些命令的帮助信息. 此时输入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)"

2.安装nginx

先clone nginx项目到本地

brew tap homebrew/nginx

执行安装:

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

此时, nginx和rtmp模块就安装好了
输入命令:

nginx

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

这里写图片描述

如果终端上提示

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

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

lsof -i tcp:8080

根据端口PID, kill掉(这儿的9603换成你自己8080端口的PID)

kill 9603

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


3.配置nginx和ramp

首先我们查看nginx安装到哪了

brew info nginx-full

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

这里写图片描述

通过vim或者点击Finder->前往->前往文件夹->输入/usr/local/etc/nginx/nginx.conf->用记事本工具(推荐Sublime Text)打开nginx.conf.

直接滚到最后一行, 在最后一个}(即最后的空白处, 没有任何{})后面添加

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

然后重启nginx(其中的1.10.1要换成你自己安装的nginx版本号, 查看版本号用nginx -v命令即可)

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

昨天, 就在执行这段命令的时候, 坑出现了.(如果你命令执行成功, 重启成功了, 没有没有任何异常, 请直接跳转到下一步)
执行命令的时候, 报异常

nginx: [emerg] unknown directive “rtmp” in /usr/local/etc/nginx/nginx.conf:119

rtmp成了未知指令. 我赶紧Google, 将其中的答案都试了一遍, 这个bug涛声依旧. 最后实在没办法了, brew list查看所有安装的模块, 才发现是自己手动敲命令的时候, 将nginx-full变成了nginx -full.

上解决方案:

卸载nginx

brew uninstall nginx

再次安装nginx

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

A. 安装ffmpeg

执行命令

brew install ffmpeg

安装ffmpeg时间就要长一点了. 如果速度过慢, 建议翻墙. 不过也才50多M的东西, 耐心一点就好. 等待的时间里, 再安装一个支持rtmp协议的视频播放器VLC

  • ffmpeg推流

    以我桌面的一个loginmovie.mp4(自己准备一个视频文件)为例, 执行推流命令

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

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

rtmp://localhost:1935/rtmplive/room

OK,搞定!


快速集成直播推流

原先准备自己实现一下直播推流,但是今天在技术群聊的时候, 有朋友推荐了优酷土豆旗下来疯直播前不久开源的iOS推流框架[LFLiveKit](https://github.com/LaiFengiOS/LFLiveKit). 是用OC写的, 很适合学习(我也准备深入研究一下这个框架, 有什么疑问大家可以一起探讨), 集成也非常简单, 几句代码就OK了.

下载好项目后, 在Xcode左下方直接搜索ShowTimeViewController, 进入ShowTimeViewController.m. 搜索- (IBAction)living:(UIButton *)sender, 将里面的stream.url替换成你自己的rtmp地址即可.

tip: LFLiveKit已经集成了GPUImage, 如果项目中有集成GPUImage, 需要将之前的移除掉. 且集成LFLiveKit需要关闭Bitcode.
捷联惯导总结--初始对准,位置标定,INS姿态更新,GPS/INS组合 惯导及组合导航回顾  2018.09.16 今天和17系的同学一起把惯导的流程捋了一遍,为了加深自己的记忆,这里在前面把心得大致列出来。 我们这里只考虑捷联式惯导及松组合 首先拿到惯性传感器(加速度计和陀螺仪)需要对其进行标定,是为了求出零偏,比例因子,交轴耦合这些误差。这些误差有的虽然在出厂时会给出,但是考虑到实际环境不同,还是要做标定。一般采用的是六位置旋转法,针对加速度计和陀螺仪同时... 阅读详情

相关推荐

深度学习初探 - 入门 DL 主流框架

这个课程主要是引导大家入门TensorFlow、Theano、Keras 及 Caffe 几个主流的深度学习框架。在课程中有关各种算法的详细推导及思想我们不会做过多的陈诉,旨在通过让同学们动手操作搭建自己的神经网络模型,了解如何使用这些框架解决实际问题。课程会基于每个框架的官方文档,先带大家熟悉框架中基本的定义语法及常用函数(可看成深度模型的小零件),每个实验最后都会综合这些零件搭建一个简易的神经深度网络模型。这个项目十分适合具有一定python编程基础,对人工智能、深度学习感兴趣的同学。Theano。

2401_86435672的博客 1235

在Mac上安装nginx+rtmp 本地服务器

Users/mengxianjin/Downloads/test.mp4 测试视频的绝对路径。rtmp://localhost:1935/rtmplive/test 是VCL上的rtmp地址。listen 监听的端口号, rtmp协议的默认端口号是1935。application 访问的应用路径是 rtmplive。2、重启 nginx, 我当前的版本是 1.25.4。这是在VCL上就可以看到推流的视频了。record off;至此,本地的服务器基本安装完成。nginx 再次开启。

iOSbird的博客 1754

【物联网】探索NE555:一款经典的集成电路(超详细)

NE555是一种集成电路,其内部结构包括比较器、RS触发器、电压比较器和输出级三个主要功能模块,外部引脚则提供了与其他电路元件进行连接的接口。NE555的设计目的是为了提供一种简单方便的定时器解决方案,它广泛应用于模拟和数字电路中。NE555作为一款经典的集成电路,具备设计简单、易于使用和稳定可靠的特点,在电子领域发展了广泛的应用。从单稳态模式到多稳态模式,再到振荡器模式,NE555可以满足不同的需求,并且可以与其他电路元件灵活组合,扩展其功能。然而,需要注意的是NE555也有一些限制。

Goforyouqp的博客 6万+

unknown directive “rtmp“ in /usr/local/nginx/conf/nginx.conf:10

unknown directive "rtmp" in /usr/local/nginx/conf/nginx.conf:10

weixin_54514751的博客 1919

【STM32】IEC60730 Class B软件安全实现 Part2:自检库实战指南

本文是STM32 IEC60730 Class B软件安全实现的实战指南,详细介绍了如何将X-CUBE-CLASSB自检库集成到用户项目中。内容涵盖软件包解构、内存划分、启动与运行时自检的集成步骤、关键代码示例及调试技巧,并阐述了为最终通过安全认证所需的文档与流程准备,帮助开发者高效实现MCU功能安全。

weixin_29185167的博客 91

彻底禁用有道云笔记自动更新:手动修改配置文件的终极方案

本文详细介绍了如何通过修改配置文件彻底禁用有道云笔记的自动更新功能,解决v7.2.8版本的兼容性问题。通过定位并修改`app-update.yml`文件,用户可以一劳永逸地阻止强制更新,保持稳定的v7.2.7版本。文章还提供了常见问题排查和进阶防护措施,确保操作的有效性和安全性。

weixin_29258297的博客 463

nginx: [emerg] unknown directive “rtmp“ in ./../conf/nginx.conf:16

nginx: [emerg] unknown directive "rtmp" in ./../conf/nginx.conf:16

weixin_46935110的博客 1万+

目标检测数据集 第069期-基于yolo标注格式的玻璃清洁状态检测数据集(含免费分享)

但这类技术的落地,离不开大量标注规范、场景丰富的数据集作为算法训练的支撑,玻璃清洁状态检测数据集的出现,正是为了满足这一市场与技术需求。在高校与科研机构的计算机视觉研究中,该数据集可作为基础研究素材,用于探索物体状态识别的算法优化方向,比如针对玻璃这类透明物体的检测算法改进,或是小样本场景下的状态识别研究。通过摄像头采集车窗、挡风玻璃的图像,算法自动检测玻璃清洁度,若识别到脏污影响视线,及时提醒运维人员清洁,避免因玻璃脏污引发的安全事故,提升交通出行的安全性。

深度学习算法工程师,专注于前沿算法研究与实战应用。在这里,我将分享深度学习领域的实战经验、优质数据集资源以及最新论文解读与精度分析,旨在与广大技术爱好者共同探索人工智能的奥秘,助力技术成长与创新。 128

CentOS搭建nginx+rtmp服务报错unknown directive “rtmp“

CentOS搭建nginx+rtmp服务

lvjun_的博客 3680

华为[ENSP]—— 实验二、三层交换和ARP的工作原理

华为[ENSP]三层交换和ARP的工作原理

weixin_62594100的博客 6411

unity 腾讯地图sdk移动和缩放代码

unity 腾讯地图sdk 实现移动端 缩放 和 移动

。。。。。 1283

Mac上搭建直播服务器 nginx + rtmp

直播技术介绍 直播技术涵盖很广,现如今广泛了解的有视频网站的个人直播、手机直播、安防方面的摄像头监控等会使用到直播的技术。 绍直播流程中的各个技术环节。可以理解分为采集端、流媒体服务器以及播放端;还需要了解什么是推流,什么是拉流。 采集端:顾名思义是视频的源头,视频的采集一般都是从真实的摄像头中得到的。例如移动端设别、PC端设备的摄像头以及一些摄像头设备 流媒体服务器:流媒体服务器是整个直播技术框架的非常重要的一环,它需要接收从采集端推上来的视频流,然后将该视频流再推送到播放端 播放端:播放端就是各种.

qq_43477721的博客 5208

Android功耗系列专题分析之四:待机概率性功耗高的失效分析

本文分析了Android设备待机功耗异常高的问题。通过日志发现系统休眠失败,原因是PowerManagerService.Display唤醒锁未被释放。进一步排查发现,指纹解锁功能在灭屏时未正确释放屏幕锁定,导致DisplayReady状态异常。解决方案是将指纹功能的背光控制与DisplayReady状态控制分离,使用两个变量独立管理。经验表明,快速定位问题比解决问题更重要,修改原生流程时需谨慎评估风险。

451

MAC搭建基于RTMP的本地Nginx服务器

MAC搭建基于RTMP的本地Nginx服务器,实现电脑上视频推流。 文章目录MAC搭建基于RTMP的本地Nginx服务器,实现电脑上视频推流。1、先安装homeView2、安装Nginx服务器增加对nginx的扩展;也就是从github上下载,home-brew对ngixnx的扩展homebrew/nginx的git路径变了(貌似是2018年3月更新)3、安装Nginx服务器和rtmp模块4、查...

Mark_CHYL的博客 755

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Mac上搭建nginx+rtmp直播服务器

Mac上搭建nginx+rtmp直播服务器

u013134119的专栏 554

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Mac上搭建直播服务器Nginx+rtmp

转载地址:http://www.cnblogs.com/jys509/p/5649066.html Mac上搭建直播服务器Nginx+rtmp 2016-07-07 12:15 by jiangys, 4974 阅读, 10 评论, 收藏,  编辑 简介 nginx是非常优秀的开源服务器,用它来做hls或者rtmp流媒体服务器是非常不错的选择,本人在网上整理了安

l_215851356的专栏 548

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

mac下Nginx搭建RTMP服务器

下载nginx wget wget http://nginx.org/download/nginx-1.15.3.tar.gz 解压 tar xvf nginx-1.15.3.tar.gz 下载nginx rtmp模块 wget https://codeload.github.com/arut/nginx-rtmp-module/tar...

wangchao1412的博客 435

Mac搭建nginx服务器搭建 +rtmp

最近因为在学习直播,前面遇到一个坑多的博客,坑了一天, 后面看到这个博客一下就解决掉了 渣渣博客害死人。 开始: 我个人电脑里面很早以前就搭建过nginx+rtmp服务器, 但是昨天在公司电脑上搭建的时候, 手动输入命令的时候, 还是出现了bug(所以, 建议大家直接复制命令, 不要手动输入命令). 所以记录一份详细的搭建步骤, 防止再次跳坑... 1212 1. 打开终端, 查

sunjie886的博客 1884

iOS简单直播实现(一:创建本地rtmp服务器)Mac上搭建直播服务器Nginx+rtmp

简介 nginx是非常优秀的开源服务器,用它来做hls或者rtmp流媒体服务器是非常不错的选择,本人在网上整理了安装流程,分享给大家并且作备忘。 步骤安装 1、安装Homebrow Homebrew简称brew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件,可以说Homebrew就是mac下的apt-get、yum神器 /usr/bin/

越越博客 5188
上一篇: 手把手教你快速拿到iOS应用中所有图片资源
下一篇: 详解KVO底层实现
Levilly
博客等级 码龄10年 6粉丝 20原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值