Mac上搭建Nginx + rtmp
介绍
nginx是非常优秀的开源服务器,用它来做hls或者rtmp流媒体服务器是非常不错的选择,本人在网上整理了安装流程,分享给大家并且作备忘。
安装步骤
1.先安装brew:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
如果要下载brew:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
2.安装Niginx
增加对 nginx
的扩展;也就是从github上下载,home-brew对ngixnx的扩展
brew tap homebrew/nginx
3.安装Nginx服务器和rtmp模块
brew install nginx-full --with-rtmp-module
这个安装,耗时相对来说比较长。通过操作以上步骤nginx和rtmp模块就安装好了,下面开始来配置nginx的rtmp模块。
查看nginx安装路径:
brew info nginx-full
- nginx安装所在位置 /usr/local/Cellar/nginx-full/1.10.1/bin/nginx
- nginx配置文件所在位置 /usr/local/etc/nginx/nginx.conf
- nginx服务器根目录所在位置 /usr/local/var/www
4.启动Nginx
nginx
在浏览器地址栏输入:http://localhost:8080
关闭Nsinx:
nginx -s stop
5.配置RTMP
打开nginx.conf, 找到/usr/local/etc/nginx/nginx.conf
文件
http {……
}
#在http节点下面(也就是文件的尾部)加上rtmp配置:
rtmp {server {listen 1935;application zbcs {live on;record off;}}
}
说明:
- rtmp是协议名称
- server 说明内部中是服务器相关配置
- listen 监听的端口号, rtmp协议的默认端口号是1935
- application 访问的应用路径是 zbcs
- live on; 开启实时
- record off; 不记录数据
5.保存文件后重启Nginx
nginx -s reload
6.安装ffmpeg工具
brew install ffmpeg
7.安装支持RTMP播放的软件
VLC:http://rj.baidu.com/soft/detail/25680.html?ald
8.通过ffmpeg进行推流
ffmpeg -re -i /Users/****/Documents/Document/demo.mp4 -vcodec copy -f flv rtmp://localhost:1935/zbcs/room
这里zbcs是上面的配置文件中,配置的应用的路径名称;后面的room可以随便写
9.在vlc中播放RTMP视频
然后电脑上打开vlc这个播放器软件 点击File---->Open Network 在弹出来的框中选择Network然后输入URL:
rtmp://localhost:1935/zbcs/room
双击播放。
10.配置HLS
打开nginx.conf, 找到/usr/local/etc/nginx/nginx.conf
文件,找到http -> server,在花括号中增加:
server {listen 8080;server_name localhost;#charset koi8-r;#access_log logs/host.access.log main;location / {root html;index index.html index.htm;}#HLS配置开始,这个配置为了`客户端`能够以http协议获取HLS的拉流location /hls {# Serve HLS fragmentstypes {application/vnd.apple.mpegurl m3u8;video/mp2t ts;}root html;add_header Cache-Control no-cache;}#HLS配置结束#error_page 404 /404.html;# redirect server error pages to the static page /50x.html#error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}
找到rtmp下的server,在花括号中增加:
#在http节点下面(也就是文件的尾部)加上rtmp配置:
rtmp {server {listen 1935;application zbcs {live on;record off;}#增加对HLS支持开始application hls {live on;hls on;hls_path /usr/local/var/www/hls;hls_fragment 5s; }#增加对HLS支持结束}
}
说明:
- live on; 开启实时
- hls on; 开启hls
- hls_path; ts文件存放路径
- hls_fragment 5s; 每个TS文件包含5秒的视频内容
11.保存配置文件,重新启动nginx
nginx -s reload
12.利用ffmpeg推流到Nginx
ffmpeg -re -i /Users/jiangys/Documents/Document/demo.mp4 -vcodec copy -f flv rtmp://localhost:1935/hls/movie
然后就可以在/usr/local/var/www/hls(html默认配置文件)路径下看到ts的切片文件和m3u8文件
13.播放hls
通过上面配置,可以通过rtmp和hls两种方式来播放
1)rtmp方式:
用VCL打开:
rtmp://192.168.1.100/hls/movie
2)hls方式:
用VCL或者Safari浏览器:
http://192.168.1.100:8080/hls/movie.m3u8
14.如果想把ts文件存放到指定路径下,比如"/tmp/hls"
application hls {live on;hls on;hls_path /tmp/hls;}
那么,我们也需要在http-->server中对root 路径更改为:/tmp 。要不然,会拉不到流。
10.错误处理
1)ffmepg命令推流的时候,提示连接失败。[tcp @ 0x7ff162504b60] Connection to tcp://localhost:1935 failed (Connection refused), trying next address
出现这个错,是因为配置了nginx.conf后,需要重启nginx。输入命令重启后就没有问题了
nginx -s reload
2)安装完nginx后,在浏览器地址栏输入:http://localhost:8080 显示打不开网页
解决方式:由于安装后nginx服务器,有时需要等上几分钟才生效。如果还不生效,测试下是否能成功启动nginx服务,命令
nginx
Mac上搭建Nginx + rtmp相关推荐
- nginx mac 服务器 html,Mac上搭建 nginx 服务器
因为需要做一个自己的内测分发平台,所以需要搭建一台自己的服务器,于是我选择了使用它 nginx 来搭建服务器,很方便,很简单. 本文主要讲一下如何在 mac 上搭建 nginx 服务器,已经一些简单的 ...
- Windows上搭建Nginx RTMP服务器并使用FFmpeg实现本地视频推流
场景 RTMP RTMP协议 (1)是流媒体协议. (2)RTMP协议是 Adobe 的私有协议,未完全公开. (3)RTMP协议一般传输的是 flv,f4v 格式流. (4)RTMP一般在 TCP ...
- 教你如何在Mac上搭建自己的服务器——Nginx
教你如何在Mac上搭建自己的服务器--Nginx WHAT 本篇主要是基于Nginx在Mac上搭建自己的服务器. 我相信很多朋友肯定是第一次听到Nginx,关于它具有怎样的传奇,这儿肯定说不完也说不透 ...
- mac搭建网站服务器,Mac上搭建Web服务器--Apache
局域网搭建 Web 服务器测试环境,因为Mac OS X 自带了 Apache 和 PHP 环境,我们只需要简单的启动它就行了. 1.命令:sudo apachectl start Apache服务器 ...
- 宝塔 搭建 nginx rtmp 流媒体服务器
宝塔 搭建 nginx rtmp 流媒体服务器 安装环境说明 系统环境: Centos 7 机型: DELL R540 准备工作 nginx 添加模块,编译安装 nginx ,下载 nginx-rtm ...
- 树莓派搭建nginx+rtmp服务器
树莓派搭建nginx+rtmp服务器 http://bbs.eeworld.com.cn/thread-506444-1-1.html 1.安装依赖包 sudo apt-get install bui ...
- [转] 在Mac上搭建React Native开发环境
原文链接: http://blog.csdn.net/xiangzhihong8/article/details/53914336 概述 前面我们介绍过在window环境下开发React Native ...
- Mac上使用nginx访问本地文件夹报403的问题
Mac上使用nginx访问本地文件夹报403的问题 就是没有权限访问你配置的文件夹在 nginx.conf头行加入下面配置 user root wheel; 不过我的电脑在启动nginx访问的时候会发 ...
- python数据分析开发环境_在MAC上搭建python数据分析开发环境
最近工作转型到数据开发领域,想在本地搭建一个数据开发环境.自己有三年python开发经验,马上想到使用numpy.scipy.sklearn.pandas搭建一套数据开发环境. ubuntu的环境,百 ...
最新文章
- 网页、网站规划与设计1
- 小学计算机ppt课教案,小学信息技术公开课教案《让幻灯片变得更加漂亮》教学设计与反思...
- flask接收前台的form数据
- python位运算符_NumPy按位运算符解析和实例详解
- vue函数如何调用其他函数?_编程|如何简单理解函数的传参、返回、调用
- laravel created_at 时间戳_Laravel 单行为控制器设计的魅力
- 2018今日头条春招面试题
- 幽默度识别第一名解决方案代码及说明
- 人工智能机器学习模型构建数据集猫狗数据集(cats_and_dogs_filtered.zip)数据集百度网盘下载地址
- 盒子科技刘恒:聚合支付系统演讲
- oracle共享池使用率,oracle调优之--共享池使用问题(摘自文平书)
- 5分钟学会Python爬虫神器autoscraper——自动化爬虫必备
- 正在通过app store进行鉴定解决方案
- 电脑服务器修改穿越火线不卡,windows10玩穿越火线画面不流畅怎么办
- python安装不了turtle,三种错误都一一解决
- [MySQL/初学者]数据完整性约束
- spring boot 2.1学习笔记【异常】lombok.javac.apt.LombokProcessor could not be initialized
- java验证xml格式是否正确的是_java判断文件是否为xml格式的方法
- 深入理解常见的二十三种设计模式
- 赛况激烈!2022 OceanBase数据库大赛50强诞生