centos7インストールnginx-rtmp

前書き

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
  1. 作業ディレクトリを作成し、そのディレクトリに切り替えます。
mkdir ~/working
cd ~/working
  1. 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
  1. NginxおよびNginx-RTMPソースを抽出します。
tar -xvf nginx-1.9.7.tar.gz
unzip v1.2.1.zip
  1. Nginxディレクトリに切り替えます。
cd nginx-1.9.7
  1. Nginxにコンパイルするモジュールを追加します。 Nginx-RTMPを含みます。
. /configure --add-module=../nginx-rtmp-module-1.2.1/
  1. Nginx-RTMPを使用して、Nginxをコンパイルおよびインストールします。
make
sudo make install
  1. 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
  1. Nginxサービスを開始して有効にします。
sudo systemctl start nginx.service

起動時にNginxサービスを自動的に開始するようにSystemDに指示します。

systemctl enable nginx.service

10. FFmpeg ###をインストールします

epel-releaseをインストールし、システムを更新します。

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-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の例をコピーして貼り付けます。 execFFmpeg行を新しいアプリケーションのアドレスで更新することを忘れないでください。これを行うには、execFFmpeg行の最終RTMPアドレスを変更します。

注:後で*値 -b:vを変更すると、ビデオのビットレートが変更されます。キロビット/秒。後で値 -b:aを変更すると、オーディオのビットレートが変更されます。キロビット/秒。後で値 -sを変更すると、解像度が変更されます。 *

CTRL +を押してファイルXを保存します。

Nginxを再起動します。

sudo service nginx restart

**注:***最高のパフォーマンスを得るには、変換する各ストリームに独自のCPUコアが必要です。たとえば、720Pストリームから2つの高品質の360Pと480Pを作成する場合は、少なくとも2つのCPUコアを備えたVultrインスタンスを使用する必要があります。 *

安全指示###

ファイアウォールを使用している場合は、 TCP1935が許可されていることを確認する必要があります。

現在の構成では、誰でもサーバーにストリーミングできます。この問題は、特定の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 ###を使用するようにソフトウェアを構成します

ストリーミングアプリケーションには通常、情報を接続するための2つのフィールドがあります。通常、最初のフィールドはサーバー情報に使用され、2番目のフィールドはストリーム名またはキーに使用されます。各フィールドに入力する必要のある情報を一覧表示します。ストリーム名またはキーは任意に設定できます。

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

Recommended Posts

centos7インストールnginx-rtmp
Centos6はPython2.7.13をインストールします
Centos7.3はnginxをインストールします
CentOS7.2はMysql5.7.13をインストールします
CentOSはRedmineをインストールします
Centos7はPython3.6をインストールします。
CentOS7はMySQLをインストールします
Centos7インストールprotobuf
CentOS7はDockerをインストールします
CentOS7.4はZabbix3.4をインストールします
CentOS7はDockerをインストールします
Centos6.5はTomcatをインストールします
CentOSはPython3.6をインストールします
VmwareはCentOS6をインストールします
centos7 install docker-ce 18.01.0
CentOS7.2はMariaDBをインストールします
CentOS7はHadoop3.0.0をインストールします
Centos7はPython2.7をインストールします
Centos7.6はseleniuをインストールします
CentOS7.3はZabbix3をインストールします
Centos7はLAMP + PHPmyadminをインストールします
CentOSはopenjdk1.8をインストールします
CENTOS6.5インストールCDH5.12.1(1)
CentOSはPHPをインストールします
CentOS6はmist.ioをインストールします
Centos7はDockerをインストールします
CentOS7インストールmysql
centOsはrabbitMQをインストールします
CentOS7はMySQL5.6をインストールします
Centos7はNginxをインストールします
CentOS6.5はCDH5.13をインストールします
Centos7インストールdocker18
CentosはPython3をインストールします
centos7インストールドッカー
CentOSインストールjdk
CentOS8はMySQL8.0をインストールします
Centos6.3はKVMをインストールします
CentOSはPostgreSQL9.1をインストールします
CentOS7はmysql8をインストールします
CentOS7はJava1.8をインストールします
CentOS8はfastdfs6.06をインストールします
CentOS7はGitlabをインストールします
Centos7はPostgreSQLをインストールします
CentOS7はMySQL8をインストールします
CentOS7はJava1.8をインストールします
CentOS6はDockerをインストールします
centos6.5インストールzabbix4.4
Centos8はDockerをインストールします
CentOS6.8はpython2.7をインストールします
CentOSインストールnodejs8
CentOS6.5はGNS3をインストールします
centos7.5インストールmysql5.7.17
Centos7はMySQL8.0をインストールします-手動
CentOS7はKubernetes1.16.3をインストールします
VirtualBoxインストールcentos7
centos7インストールランプ
centos7をインストールして接続します
Centos7にDockerをインストールする
Centos7インストールdocker-18.xオリジナル
Centos7.4はLNMPをインストールします
Centos7YUMはMariaDB10.0をインストールします