mac下搭建nginx+rtmp 直播服务器(转)

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/zcvbnh/article/details/79495285
简介

1.原想用mac中自带的Apache搭建,但是naginx是轻量级的,同样起web 服务,也比apache 占用更少的内存及资源,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能,用它来做hls或者rtmp流媒体服务器是非常不错的选择.

一、Homebrow安装

确认是否已经安装:

man brow
   
   

如果出现下面的代码,证明已经安装过:


   
   
  1. NAME
  2. brew - The missing package manager for macOS
  3. SYNOPSIS
  4. brew --version
  5. brew command [--verbose|-v] [options] [formula] ...

安装命令:

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

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

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

如果不想重装,升级一下brow

brew update
   
   
二、安装nginx

执行克隆命令,github的项目(https://github.com/denji/homebrew-nginx)

brew tap denji/nginx
   
   

注意brew tap homebrew/nginx报下面的错误,homebrew/nginx已经启用.

 报错:Error: homebrew/nginx was deprecated. This tap is now empty as all its formulae were migrated.

执行安装命令:

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

至此nginx和rtmp模块就安装好了,下面开始来配置nginx的rtmp模块

接下来看一下nginx安装在什么地方

brew info nginx-full
   
   

nginx安装所在位置

/usr/local/opt/nginx-full/bin/nginx
   
   

nginx配置文件所在位置

/usr/local/etc/nginx/nginx.conf
   
   
三、运行nginx

启动nginx,执行命令:

nginx
   
   

浏览器地址栏输入:http://localhost:8080


出现以上界面,说明安装成功.

如果终端上提示

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

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

lsof -i tcp:8080
   
   

kill掉占用8080端口的PID

kill 9603(这里替换成占用8080端口的PID)
   
   

重新执行nginx...

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


   
   
nginx -s reload
    
    

重新加载日志:

nginx -s reopen
   
   

停止 nginx:

nginx -s stop
   
   

有序退出 nginx:

nginx -s quit
   
   
四、配置rtmp
修改nginx.conf这个配置文件,配置rtmp
复制nginx配置文件所在位置:
vi /usr/local/etc/nginx/nginx.conf
   
   

执行上面命令直接编辑,或者直接前往当前文件用记事本打开.


   
   
  1. http {
  2. ……
  3. }
在http节点后面加上rtmp配置

   
   

    
    
  1. rtmp {
  2.   server {
  3.       listen 1935;
  4.     #直播流配置
  5.       application rtmplive {
  6.           live on;
  7.       #为 rtmp 引擎设置最大连接数。默认为 off
  8.       max_connections 1024;
  9.        }
  10.       application hls{
  11.     
  12.           live on;
  13.           hls on;
  14.           hls_path /usr/local/var/www/hls;
  15.           hls_fragment 1s;
  16.       }
  17.    }
  18. }

编辑完成之后,执行一下重新加载配置文件命令:

nginx -s reload
   
   

重启nginx:

sudo /usr/local/opt/nginx-full/bin/nginx -s reload
   
   
六、安装ffmepg工具

注:ffmepg转码工具

brew install ffmpeg
   
   

安装完成之后

安装一个支持rtmp协议的视频播放器,Mac下可以用VLC

本地下载一个视频文件路径为 /Users/ailvgo/Downloads/keep.mp4


执行以下命令
ffmpeg -re -i /Users/ailvgo/Downloads/keep.mp4 -vcodec libx264 -acodec aac -strict -2 -f flv rtmp://localhost:1935/rtmplive/room
   
   
用vlc  然后打开 VLC 中 的 file -- Open Network, 直接输入代码中的 url:
rtmp://localhost:1935/rtmplive/room
   
   

然后进行播放

七、FFmpeg常用推流命令
1、桌面录制或者分享
ffmpeg -f avfoundation -i "1" -vcodec libx264 -preset ultrafast -acodec libfaac -f flv rtmp://localhost:1935/rtmplive/room
   
   

2、桌面+麦克风

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

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
   
   
八、手机推流

可以用  LFLiveKit 集成到工程进行推流,只需把localhost:8080换成自己电脑的ip地址即可:

rtmp://10.0.0.17:1935/rtmplive/room
   
   





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值