Ubuntu 14.04でNginx-RTMPをセットアップする

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

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

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

sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev

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

mkdir ~/working
cd ~/working

NginxおよびNginx-RTMPソースをダウンロードします。

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

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

sudo apt-get install unzip

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

tar -zxvf nginx-1.7.5.tar.gz
unzip master.zip

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

cd nginx-1.7.5

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

./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master

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

make
sudo make install

Nginx initスクリプトをインストールします。

sudo wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx
sudo chmod +x /etc/init.d/nginx
sudo update-rc.d nginx defaults

Nginxを起動および停止して、構成ファイルを生成します。

sudo service nginx start
sudo service nginx stop

FFmpegのインストール

FFmpeg PPAを追加します。

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next

パッケージリストを更新します。

sudo apt-get update

FFmpegをインストールします。

sudo apt-get install ffmpeg

注:apt-add-repositoryコマンドがインストールされていない場合があります。インストールするには、を実行しsudo apt-get install software-properties-commonます。

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を変更すると、解像度が変更されます。

Controlキーと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;
        }
    }
}

Controlキーと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

Webサイトにライブビデオを表示するようにプレーヤーを設定することは、このガイドの範囲を超えています。「RTMP Webプレーヤー」という用語を検索すると役立つ場合があります。



Leave a Comment

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

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

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

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

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

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

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartは、PHP、jQuery、およびHTML 5で記述された無料のオープンソースのショッピングカートプラットフォームです。シンプルで軽量、使いやすいeコマースソフトウォー

DebianでNFS共有をセットアップする

DebianでNFS共有をセットアップする

NFSはネットワークベースのファイルシステムであり、コンピューターはコンピューターネットワークを介してファイルにアクセスできます。このガイドでは、NFを介してフォルダーを公開する方法について説明します

Fedora 28にMatomo Analyticsをインストールする方法

Fedora 28にMatomo Analyticsをインストールする方法

別のシステムを使用していますか?Matomo(旧Piwik)は、Google Analyticsのオープンな代替手段であるオープンソースの分析プラットフォームです。Matomoのソースはoでホストされています

Ubuntu 14.10へのMcMyAdminのインストール

Ubuntu 14.10へのMcMyAdminのインストール

McMyAdminは、サーバーの管理に使用されるMinecraftサーバーコントロールパネルです。McMyAdminは無料ですが、複数のエディションがあり、一部はパイです

LinuxでTeamTalk Serverをセットアップする

LinuxでTeamTalk Serverをセットアップする

TeamTalkは、ユーザーが高品質のオーディオ/ビデオ会話、テキストチャット、ファイルの転送、および画面の共有を可能にする会議システムです。それは

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

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

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

Ubuntu 17.04でRbenv、Rails、MariaDB、Nginx、SSL、およびPassengerを使用してRubyをインストールおよび構成する方法

Ubuntu 17.04でRbenv、Rails、MariaDB、Nginx、SSL、およびPassengerを使用してRubyをインストールおよび構成する方法

Ruby on Railsは、プログラマーの生産性を向上させるために開発されたRubyの人気のあるWebフレームワークです。ただし、さまざまな宝石と依存関係を取得する

Vultr VPSにアクセスする方法

Vultr VPSにアクセスする方法

Vultrは、VPSにアクセスして構成、インストール、および使用するためのいくつかの異なる方法を提供します。アクセス認証情報VPS arのデフォルトのアクセス認証情報

CentOS 7、Ubuntu 16.04、Debian 9にGolang 1.8.3をインストールする方法

CentOS 7、Ubuntu 16.04、Debian 9にGolang 1.8.3をインストールする方法

GolangはGoogleが開発したプログラミング言語です。汎用性、シンプルさ、信頼性のおかげで、Golangは最も人気のあるものの1つになりました

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

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

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

Ubuntu 16.04 LTSにDokuWikiをインストールする方法

Ubuntu 16.04 LTSにDokuWikiをインストールする方法

別のシステムを使用していますか?DokuWikiは、データベースを必要としないPHPで記述されたオープンソースのWikiプログラムです。データをテキストファイルに保存します。ドクウィク

DebianでのChrootのセットアップ

DebianでのChrootのセットアップ

この記事では、Debianでchroot jailをセットアップする方法を説明します。私はあなたがDebian 7.xを使っていると思います。Debian 6または8を実行している場合、これは機能する可能性があります、bu

DebianにPiVPNをインストールする方法

DebianにPiVPNをインストールする方法

はじめにDebianでVPNサーバーを設定する簡単な方法は、PiVPNを使用することです。PiVPNは、OpenVPNのインストーラーおよびラッパーです。それはあなたのための簡単なコマンドを作成します

Ubuntu 18.04 LTSにCyber​​Panelをインストールして構成する方法

Ubuntu 18.04 LTSにCyber​​Panelをインストールして構成する方法

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

Ubuntu 16.04 LAMP VPSにBigTree CMSをインストールする方法

Ubuntu 16.04 LAMP VPSにBigTree CMSをインストールする方法

別のシステムを使用していますか?BigTree CMS 4.2は、高速で軽量な無料のオープンソースのエンタープライズグレードのコンテンツ管理システム(CMS)であり、

Debian 9でソースからBrotliをビルドする方法

Debian 9でソースからBrotliをビルドする方法

別のシステムを使用していますか?Brotliは、Gzipよりも圧縮率が高い新しい圧縮方法です。そのソースコードはGithubで公開されています。ティ

PleskサーバーでHTTP / 2を有効にする方法

PleskサーバーでHTTP / 2を有効にする方法

PleskはネイティブのHTTP / 2サポートを備えています。PleskでのHTTP / 2のロールアウトは、他のコンポーネントに比べてはるかに簡単ですが、その導入プロセスには慎重な計画が必要です

FreeBSD 12にosTicketをインストールする方法

FreeBSD 12にosTicketをインストールする方法

別のシステムを使用していますか?osTicketは、オープンソースのカスタマーサポートチケットシステムです。osTicketのソースコードはGithubで公開されています。このチュートリアルでは

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の未来は、日々成長を続けています。