系统相关
首页 > 系统相关> > Mac上搭建直播服务器 nginx + rtmp

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

作者:互联网

石头, 质地, 岩石, 材料, 坚硬的

直播技术介绍

直播技术涵盖很广,现如今广泛了解的有视频网站的个人直播、手机直播、安防方面的摄像头监控等会使用到直播的技术。

绍直播流程中的各个技术环节。可以理解分为采集端、流媒体服务器以及播放端;还需要了解什么是推流,什么是拉流。
img

既然需要推流和拉流, 就必然涉及到视频流的传输,所以接下来介绍常用的流媒体传输协议 常用的流媒体传输协议有RTMP,RTSP,HLS,HTTP-FLV

1. 安装 Homebrow

Homebrew简称brew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件。

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

卸载命令:

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

2. 安装 Nginx 服务器

brew tap homebrew/nginx

3. 安装 Nginx 服务器和 rtmp 模块

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

查看 nginx 信息

brew info nginx-full

执行上面的命令后我们可以看到信息

在这里插入图片描述

执行命令 ,启动nginx服务

nginx

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

img

出现Welcome to nginx , 代表nginx安装成功了。

4. 配置 rtmp

编辑 nginx.conf 文件
在这里插入图片描述

cd /opt/homebrew/etc/nginx/
vim nginx.conf

配置下面两个字段

server {
        listen       8080;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
        }

        location /hls {
            types{
               application/vnd.apple.mpegurl m3u8;
               video/mp2t ts;
            }
            root /usr/local/var/www;
            add_header Cache-Control no-cache;
        }
}        
rtmp{
    server {
      listen 1935;
      chunk_size 4000;
  
      application rtmplive {
         live on;
         max_connections 1024;
        }
      application zbcs {
         live on;
         record off;
        }
  
      application hls{
         live on;
         hls on;
            hls_path/usr/local/var/www/hls;
         hls_fragment 5s;
        }
    }
}

rtmp是协议名称

server 说明内部中是服务器相关配置

listen 监听的端口号, rtmp协议的默认端口号是1935

application 访问的应用路径是 zbcs``

live on; 开启实时

record off; 不记录数据

5. 保存文件后,重新加载nginx的配置文件

nginx -s reload

6. 安装ffmepg工具

brew install ffmpeg

7. 安装 VLC

直接在浏览器上搜索 VLC,下载安装即可

8. 安装 node-media-server

NodeMediaServer支持:以rtmp,rtsp,hls协议拉进行推流,支持http-flv,ws-flv来进行拉流,也就是支持浏览器端使用http或websocket传输flv格式的视频流进行播放。

npm install node-media-server

新建app.js

const NodeMediaServer= require('node-media-server');

const config = {
  rtmp: {
    port: 1935,
    chunk_size: 60000,
    gop_cache: true,
    ping: 60,
    ping_timeout: 30
  },
  http: {
    port: 8000,
    allow_origin: '*',
  }
};
 
var nms = new NodeMediaServer(config)
nms.run();

运行 app.js

访问localhost:8000/admin地址,访问node-media-server的管理端界面
在这里插入图片描述

9. 使用 FFmpeg 命令推送地址

推流摄像头

ffmpeg -f avfoundation -framerate 30 -video_size 1280x720 -i  "0"  -vcodec libx264 -acodec libfaac -f flv  rtmp://localhost:1935/zbcs/room

推流桌面 - 只有桌面内容

ffmpeg -f avfoundation -pixel_format uyvy422 -i "1" -f flv rtmp://localhost:1935/zbcs/room

只推流麦克风

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

10. 验证视频

打开vlc这个播放器软件 点击File---->Open Network 在弹出来的框中选择Network然后输入URL:

rtmp://localhost:1935/zbcs/room

在这里插入图片描述

双击播放

img

播放界面

在这里插入图片描述

参考文章:

前端如何实现整套视频直播技术流程

使用node-media-server搭建一个简易的流媒体服务器

mac下面用ffmpeg抓取桌面以及摄像头推流进行直播

标签:播放,server,nginx,Mac,直播,rtmp,flv
来源: https://blog.csdn.net/qq_43477721/article/details/120931952