在CentOS 7上设置Nginx-RTMP

在CentOS 7上设置Nginx-RTMP

    • 安装Nginx和Nginx-RTMP
    • 安装FFMPEG
    • 配置nginx

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


安装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

你可能感兴趣的:(server)