在CentOS 7上设置Nginx-RTMP

本文详细介绍如何在CentOS7系统上从源码安装Nginx及Nginx-RTMP模块,并配置FFMPEG。包括所需工具的安装、源码下载与编译、配置Nginx服务、以及如何使用FFMPEG进行流媒体处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在CentOS 7上设置Nginx-RTMP

** 这个写的都是从源码安装 **


安装Nginx和Nginx-RTMP

  1. 安装从源代码编译Nginx和Nginx-RTMP所需的工具。
sudo yum install pcre pcre-devel openssl openssl-devel zlib zlib-devel -y
  1. 创建一个临时目录用来下载源码压缩包
mkdir ~/temp
cd ~/temp
  1. 下载Nginx和Nginx-RTMP源代码。
wget http://nginx.org/download/nginx-1.9.9.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
  1. 安装 unzip 包
sudo yum install unzip
  1. 提取源码。
tar -xvf nginx-1.9.9.tar.gz
unzip master.zip
  1. 切换到Nginx目录。
cd nginx-1.9.9
  1. 添加模块以编译成Nginx。添加Nginx-RTMP。

这里./configure 检测你的安装平台的目标特征 可以使用 ./configure --help 查看帮助

./configure --add-module=../nginx-rtmp-module-master/
  1. 编译和安装Nginx。
make
sudo make install
  1. 创建SystemD单元文件
sudo vim /usr/lib/systemd/system/nginx.service

并写入如下

[Unit]
Description=nginx - high performance web server
Documentation=https://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target

ESC输入:wq保存并退出

  1. 启动nginx服务
sudo systemctl start nginx.service

输入以下让系统在启动时就自动启动nginx

systemctl enable nginx.service

现在就可以在浏览器中输入http://*************是你服务器的IP地址
看到了一个页面就证明你的nginx服务已经启动了


安装FFMPEG

  1. 更新系统
sudo yum install epel-release -y
sudo yum update -y
sudo shutdown -r now
  1. 安装Nux 库
sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
  1. 安装ffmpeg 和它的开发库
sudo yum install ffmpeg ffmpeg-devel -y

配置nginx

  1. 打开Nginx配置文件
sudo vim /usr/local/nginx/conf/nginx.conf

在文件最后添加如下:

    rtmp {
        server {
            listen 1935;
            chunk_size 4096;

            application live {
                    live on;
                    record off;
                    allow publish 127.0.0.1;
                    allow publish *.*.*.*;
                    deny publish all;
                    exec ffmpeg -i rtmp://localhost/live/$name -threads 1 -c:v libx264 -profile:v baseline -b:v 350K -s 640x360 -f flv -c:a aac -ac 1 -strict -2 -b:a 56k rtmp://localhost/live360p/$name;
            }
            application live360p {
                    live on;
                    record off;
                    allow publish 127.0.0.1;
                    allow publish *.*.*.*;
                    deny publish all;
        }
    }
}

这里说明一下 其中的 *.*.*.*改为你实际的ip地址,不然谁都能往你的服务器推流。中间的ffmpeg命令将其中一个直播流,视频改用h264压缩,音频改用aac,送至另外一个直播服务流,可以自定义视频比特率,音频比特率和分辨率等设置。

  1. 重启 nginx
sudo service nginx restart

一切都搭建完成,你可以在本地使用ffmpeg 推流至服务器,然后使用vlc拉流进行观看了

推流:使用ffmpeg

ffmpeg -i local.mp4 -c:a aac -c:v libx264 -vpre slow -f flv rtmp://server/live/h264Stream

拉流:直接在vlc中打开串流输入如下

rtmp://*.*.*.*:XXXX/live360p/h264Stream
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值