文章目录
- 基于Nginx搭建RTMP流媒体服务器
- 安装Nginx-RTMP
- Nginx 配置文件
- 视频无法保存
基于Nginx搭建RTMP流媒体服务器
安装Nginx-RTMP
要实现RTMP流媒体服务器需要安装Nginx-RTMP模块
已有Nginx安装Nginx-RTMP模块
sudo apt update
sudo apt install libnginx-mod-rtmp
可能会存在版本不兼容的问题,建议还是重新下载Nginx和Nginx-RTMP然后一起编译安装
安装Nginx和nginx-rtmp-module
下载Nginx 官网:https://nginx.org/en/download.html
wget http://nginx.org/download/nginx-1.26.0.tar.gz
# 解压缩
tar -xvf nginx-1.26.0.tar.gz
下载nginx-rtmp-module模块
git clone https://github.com/arut/nginx-rtmp-module
将两者放入同一个文件下
添加配置
cd nginx-1.26.0
./configure --add-module=../nginx-rtmp-module --with-http_ssl_module
安装
make
make install
Nginx 配置文件
在文件最后添加
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
hls on;
hls_path /var/www/html/live;
hls_fragment 3;
recorder all{
record all; # 开启视频保存
record_path /var/www/html/recordings/; # 视频保存的位置
record_suffix -%Y-%m-%d-%H-%M.flv; # 设置文件后缀
}
}
}
视频无法保存
遇到Nginx RTMP 服务无法保存视频的情况,问题排查步骤如下
- 首先查看自己的配置文件的内容是否正确,是否开启视频保存的配置
- 查看nginx的日志文件,根据日志中的信息定位自己无法保存视频的原因
Nginx日志默认存储的位置
vim /usr/local/nginx/logs/error.log
打开日志查看日志内容,可以发现无法保存的原因是因为没有对应文件的权限
为对应的文件添加权限
# 最简单的方式就是开通所有权限,也可以根据自己的具体需求修改指定的用户
chmod 777 /var/www/html/recordings
修改以后可以再次尝试直播,查看对应文件下视频缓存是否存在
视频缓存成功