CentOS 7でNginx-RTMPをセットアップする

RTMPはライブコンテンツの配信に最適です。RTMPをFFmpegとペアにすると、ストリームをさまざまな品質に変換できます。Vultrは高速で専用のCPUパフォーマンスを提供するため、これらのアプリケーションに最適です。Vultrのグローバルネットワークでは、遅延を最小限に抑えて高品質のライブコンテンツを配信することもできます。始めましょう!

NginxおよびNginx-RTMPのインストール

ソースからNginxおよびNginx-RTMPをコンパイルするために必要なツールをインストールします。

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

作業ディレクトリを作成し、それに切り替えます。

mkdir ~/working
cd ~/working

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

unzipパッケージをインストールします。

sudo yum install unzip

NginxおよびNginx-RTMPソースを抽出します。

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

Nginxディレクトリに切り替えます。

cd nginx-1.9.7

Nginxにコンパイルするモジュールを追加します。Nginx-RTMPが含まれています。

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

Nginx-RTMPを使用してNginxをコンパイルおよびインストールします。

make
sudo make install

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

Nginxサービスを開始して有効にします。

sudo systemctl start nginx.service

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

systemctl enable nginx.service

FFmpegのインストール

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

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

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

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の2つの品質を作成する場合、少なくとも2つの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で動作するようにソフトウェアを構成する

ストリーミングアプリケーションには通常、接続情報用の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


Leave a Comment

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

CentOS 7サーバーにCyber​​Panelをインストールして構成する方法

CentOS 7サーバーにCyber​​Panelをインストールして構成する方法

別のシステムを使用していますか?はじめにCyber​​Panelは、オープンソースでありOpenLiteSpeedを使用する市場で最初のコントロールパネルの1つです。なんてこった

Debian、CentOS、およびFreeBSDでSudoを使用する方法

Debian、CentOS、およびFreeBSDでSudoを使用する方法

LinuxおよびUnixのシステム管理者の間では、sudoユーザーを使用してサーバーにアクセスし、コマンドをルートレベルで実行することは非常に一般的です。sudの使用

CentOS 7へのNetdataのインストール

CentOS 7へのNetdataのインストール

別のシステムを使用していますか?Netdataは、リアルタイムのシステムメトリックモニタリングの分野における新星です。同じ種類の他のツールと比較すると、Netdata:

CentOS 7にJust Cause 2(JC2-MP)サーバーをインストールする方法

CentOS 7にJust Cause 2(JC2-MP)サーバーをインストールする方法

このチュートリアルでは、Just Cause 2マルチプレイヤーサーバーのセットアップ方法をよく学びます。前提条件開始する前に、システムが完全に更新されていることを確認してください

CentOS 7にStarbound Serverをインストールする方法

CentOS 7にStarbound Serverをインストールする方法

別のシステムを使用していますか?このチュートリアルでは、CentOS 7でStarboundサーバーをセットアップする方法を説明します。前提条件このゲームを所有している必要があります。

CentOS 8、Ubuntu 18.04、Debian 10、Fedora 31にGolang 1.13をインストールする方法

CentOS 8、Ubuntu 18.04、Debian 10、Fedora 31にGolang 1.13をインストールする方法

Go(Golangとも呼ばれます)は、静的に型付けされ、コンパイルされた、Cのようなプログラミング言語で、Googleによって開発されました。シンプルさと多用途性により、b

CentOS 7にDjangoをインストールする方法

CentOS 7にDjangoをインストールする方法

Djangoは、Webアプリケーションを作成するための一般的なPythonフレームワークです。Djangoを使用すると、ホイールを再発明することなく、アプリケーションをより速く構築できます。あなたが望むなら

CentOS 7 LAMP VPSにTextPattern CMSをインストールする方法

CentOS 7 LAMP VPSにTextPattern CMSをインストールする方法

別のシステムを使用していますか?TextPattern CMS 4.6.2はシンプルで柔軟な無料のオープンソースコンテンツ管理システム(CMS)であり、Webデザイナーが

CentOS 7にElggをインストールする

CentOS 7にElggをインストールする

別のシステムを使用していますか?Elggはオープンソースのソーシャルネットワーキングエンジンであり、キャンパスのソーシャルネットワークや

CentOS 7にFroxlor Server Management Panelをインストールする方法

CentOS 7にFroxlor Server Management Panelをインストールする方法

Froxlorは、オープンソースの無料で軽量かつ強力なサーバー管理パネルであり、Webホスティングサービスの確立と管理に最適です。ティ

CentOS 7でMatrix SynapseとRiotを使用してチャットサーバーを作成する

CentOS 7でMatrix SynapseとRiotを使用してチャットサーバーを作成する

Matrixは、分散型リアルタイム通信用のオープンスタンダードの通信プロトコルです。マトリックスは、上記に分散されているホームサーバーとして実装されています

CentOS 7にVtiger CRM Open Source Editionをインストールする方法

CentOS 7にVtiger CRM Open Source Editionをインストールする方法

Vtiger CRMは、企業が売り上げを伸ばし、顧客サービスを提供し、利益を増やすのに役立つ人気の顧客関係管理アプリケーションです。私

CentOS 7にPufferPanel(無料のMinecraftコントロールパネル)をインストールする方法

CentOS 7にPufferPanel(無料のMinecraftコントロールパネル)をインストールする方法

はじめにこのチュートリアルでは、Vultr VPSにPufferPanelをインストールしてください。PufferPanelは、オープンソースで自由に使用できるコントロールパネルで、あなたを管理します

PHPを5から7に更新する方法(NGINX / Apache、CentOS 7)

PHPを5から7に更新する方法(NGINX / Apache、CentOS 7)

はじめにこのチュートリアルでは、NGINXまたはApacheを使用してPHP 5 *を7に更新する方法について説明します。前提条件始める前に、リポジトリを追加する必要があります

CentOS 7にMoinMoinをインストールする方法

CentOS 7にMoinMoinをインストールする方法

MoinMoinは、Pythonで書かれたオープンソースのファイルシステムベースのWikiエンジンです。今日、MoinMoinはオープンソースコミュニティで広く使用されています。多くのベンダー

CentOS 7にSonarQubeをインストールする方法

CentOS 7にSonarQubeをインストールする方法

別のシステムを使用していますか?SonarQubeは、品質システム開発のためのオープンソースツールです。Javaで書かれており、複数のデータベースをサポートしています。それは提供します

CentOS 7へのPritunlのインストール

CentOS 7へのPritunlのインストール

PritunlはOpenVPNのオープンソース管理インターフェイスです。プライベートネットワークが可能で、ネイティブIPv6サポートがあり、使用方法は比較的簡単です。ター

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。