为什么写这篇文章
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
下载地址
可以看到成功了