首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >centos7安装nginx-rtmp

centos7安装nginx-rtmp

作者头像
菲宇
发布2020-03-20 10:53:03
3K1
发布2020-03-20 10:53:03
举报
文章被收录于专栏:菲宇菲宇

简介

RTMP流媒体协议是 一套 Adobe 开发的音频视频实时传输协议;nginx-rtmp 是一个基于nginx的 RTMP服务模块,开源,免费

https://github.com/arut/nginx-rtmp-module

安装nginx和nginx-rtmp

1.安装从源代码编译Nginx和Nginx-RTMP所需的工具。

sudo yum install pcre pcre-devel openssl openssl-devel zlib zlib-devel -y

2.创建一个工作目录并切换到该目录。

mkdir ~/working
cd ~/working

3.下载Nginx和Nginx-RTMP源。

wget http://nginx.org/download/nginx-1.9.7.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip

安装解压缩包。

sudo yum install unzip

4.提取Nginx和Nginx-RTMP源。

tar -xvf nginx-1.9.7.tar.gz
unzip v1.2.1.zip

5.切换到Nginx目录。

cd nginx-1.9.7

6.添加模块以编译到Nginx中。包括Nginx-RTMP。

./configure --add-module=../nginx-rtmp-module-1.2.1/

7.使用Nginx-RTMP编译并安装Nginx。

make
sudo make install

8.为Nginx创建一个SystemD单元文件。

sudo nano /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

9.启动并启用Nginx服务。

sudo systemctl start nginx.service

告诉SystemD在启动时自动启动Nginx服务。

systemctl enable nginx.service

10.安装FFmpeg

安装epel-release和更新系统。

sudo yum install epel-release -y
sudo yum update -y
sudo shutdown -r now

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

12.安装FFmpeg及其开发包。

sudo yum install ffmpeg ffmpeg-devel -y

配置Nginx-RTMP和FFmpeg

打开Nginx配置文件。

sudo nano /usr/local/nginx/conf/nginx.conf

将以下内容添加到配置中。

    rtmp {
        server {
            listen 1935;
            chunk_size 4096;

            application live {
                    live on;
                    record off;
                    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;
        }
    }
}

添加该配置文本后,您可以自定义设置,例如视频比特率,音频比特率和分辨率。这些更改将仅应用于质量较低的流。要添加更多质量,请复制并粘贴exec FFmpeg行并更改设置。您还需要创建一个新的应用程序。您可以通过复制并粘贴已包含的live360示例来执行此操作。不要忘记用新应用程序的地址更新exec FFmpeg行。您可以通过更改exec FFmpeg行中的最终RTMP地址来执行此操作。

注意:之后 更改值-b:v将更改视频比特率。以千比特/秒为单位。之后更改值-b:a将更改音频比特率。以千比特/秒为单位。之后更改值-s将更改分辨率。

按CTRL+ 保存文件X。

重新启动Nginx。

sudo service nginx restart

注意: 为了获得最佳性能,每个要转换的流都应具有自己的CPU内核。例如,如果要从720P流创建两种品质360P和480P,则应使用具有至少两个CPU内核的Vultr实例。

安全须知

如果您使用的是防火墙,则需要确保TCP 1935已允许。

当前配置允许任何人流式传输到您的服务器。我们可以通过仅授予某些IP地址发布权限来解决此问题。打开Nginx配置。

sudo nano /usr/local/nginx/conf/nginx.conf

查找以下行。

live on;
record off;

将以下内容添加到上述各行中。更改0.0.0.0为您的实际IP地址。

allow publish 127.0.0.1;
allow publish 0.0.0.0;
deny publish all;

现在,配置将如下所示。

rtmp {
    server {
        listen 1935;
        chunk_size 4096;

        application live {
                live on;
                record off;
                allow publish 127.0.0.1;
                allow publish 0.0.0.0;
                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 0.0.0.0;
                deny publish all;
        }
    }
}

按CTRL+ 保存文件X。

重新启动Nginx。

sudo service nginx restart

配置软件以使用Nginx-RTMP

流应用程序通常具有两个用于连接信息的字段。第一个字段通常用于服务器信息,第二个字段通常用于流名称或键。列出了您应放置在每个字段中的信息。流名称或键可以设置为任何内容。

Field 1: rtmp://your.vultr.ip/live/
Field 2: stream-key-you-set

要查看流,请在支持RTMP的播放器中打开以下链接。

rtmp://your.vultr.ip/live/stream-key-you-set
rtmp://your.vultr.ip/live360p/stream-key-you-set

https://www.vultr.com/docs/setup-nginx-rtmp-on-centos-7

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 10.安装FFmpeg
  • 配置Nginx-RTMP和FFmpeg
  • 安全须知
  • 配置软件以使用Nginx-RTMP
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档