当前位置: 首页 > news >正文

Centos7使用nginx搭建rtmp流媒体服务器

为什么写这篇文章

2023年10月份,公司系统中有个需求,需要使用摄像头记录工程师在维修设备时的工作状态,找到了一家做执法记录仪的厂商,通过厂商发过来的文档了解到该执法记录仪支持通过rtmp协议推流至服务器,第一次接触相关知识,研究了一下午,搞通了,特此记录,以备查阅

所需相关软件下载

https://download.csdn.net/download/qq32933432/88409654

安装nginx

我这里使用的是nginx的模块的方式,也有不依赖于nginx的,自行研究,由于rtmp模块nginx默认是不带的,需要编译自行安装

cd /usr/local
# 下载
wget https://nginx.org/download/nginx-1.9.9.tar.gz# 解压改名
tar zxvf nginx-1.9.9.tar.gz
mv nginx-1.9.9 nginx# 创建nginx安装目录与模块目录
mkdir -p /usr/local/nginx/module# 创建视频数据存放位置
mkdir -p /usr/local/nginx/myapp# 进入到/usr/local/nginx/module目录,下载nginx-rtmp-module,下载后的文件夹名叫nginx-rtmp-module,需要先安装git,也可以自己打开这个地址下载了上传到服务器/usr/local/nginx/module目录
cd /usr/local/nginx/module
git clone https://github.com/arut/nginx-rtmp-module.git# 指定nginx安装目录并且指定了安装的模块
cd /usr/local/nginx/
yum -y install gcc‐c++ pcre pcre‐devel zlib zlib‐devel openssl openssl-devel
./configure --prefix=/usr/local/nginx --add-module=/usr/local/nginx/module/nginx-rtmp-module --conf-path=/usr/local/nginx/nginx.conf# 编译并安装
make && make install# 启动nginx
/usr/local/nginx/sbin/nginx &

浏览器访问服务,可以看到nginx已经启动起来了
在这里插入图片描述

配置nginx与nginx-rtmp-module

在nginx-rtmp-module中带有一个nginx.conf的配置文件,把它覆盖到nginx中的配置文件

cp /usr/local/nginx/module/nginx-rtmp-module/test/nginx.conf /usr/local/nginx/conf

修改这个文件

vi conf/nginx.conf
# rtmp节点下,在myapp下面添加:
hls on;
hls_path /usr/local/nginx/myapp; #视频存放路径# 加vod配置
application vod {play /usr/local/nginx/vod/flvs;
}

在这里插入图片描述
rtmp就是用nginx搭建流媒体的简单配置

关掉nginx重新用这个配置文件启动

cd /usr/local/nginx/sbin
./nginx -s stop
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

测试

安装一个推流的软件一个拉流的软件

推流OBS
下载地址
设置一下推流服务器
在这里插入图片描述
加一个源,然后点击开始直播
在这里插入图片描述
拉流VLC
下载地址
在这里插入图片描述
在这里插入图片描述
可以看到成功了
在这里插入图片描述

参考

https://zhuanlan.zhihu.com/p/636150853?utm_id=0

http://www.lryc.cn/news/189133.html

相关文章:

  • Springboot+vue4S店车辆管理系统(有报告),Javaee项目,springboot vue前后端分离项目。
  • Docker与Serverless计算的集成: Docker容器如何与Serverless计算结合。
  • Linux下kibana的安装与配置
  • LuatOS-SOC接口文档(air780E)-- http - http 客户端
  • 分布式文件服务器——初识MinIO
  • 中国34省级行政区及行政区划代码
  • vue、uniapp实现组件动态切换
  • JVM 虚拟机面试知识脑图 初高级
  • PointRend: 将图像分割视为渲染——PointRend:Image Segmentation as Rendering
  • 【k8s】ingress-nginx通过header路由到不同后端
  • LuatOS-SOC接口文档(air780E)-- httpsrv - http服务端
  • Android Studio: unrecognized Attribute name MODULE
  • 云服务器带宽对上传下载速度的影响
  • 2023/9/28 -- ARM
  • vue原生实现element上传多张图片浏览删除
  • 黑群晖video station评级问题
  • Godot快速精通-从看懂英文文档开始-翻译插件
  • vue项目的学习周报03
  • ES中个别字段属性说明
  • Web前端-Vue2+Vue3基础入门到实战项目-Day3(生命周期, 案例-小黑记账清单, 工程化开发入门)
  • 如何在小程序首页设置标题栏文字
  • CPU性能分析--火焰图使用
  • 微服务10-Sentinel中的隔离和降级
  • python实现UI自动化配置谷歌浏览器驱动
  • AI如何帮助Salesforce从业者找工作?
  • 【Vue面试题十七】、你知道vue中key的原理吗?说说你对它的理解
  • 【数据结构】二叉树--堆排序
  • 项目log日志mysql记录,熟悉python的orm框架
  • 【数据结构-字符串 四】【字符串识别】字符串转为整数、比较版本号
  • React 组件传 children 的各种方案