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

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

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

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

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

最近、Appleは問題を修正するための補足アップデートであるmacOS Catalina 10.15.4をリリースしましたが、このアップデートにより、Macマシンのブリックにつながる問題がさらに発生しているようです。詳細については、この記事をお読みください

原子力が必ずしも悪ではないことを証明する5つの例

原子力が必ずしも悪ではないことを証明する5つの例

原子力は、過去の出来事のために私たちが決して尊重しないことを常に軽蔑していますが、それは必ずしも悪ではありません。詳細については、投稿をお読みください。

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

これを読んで、人工知能が小規模企業の間でどのように人気を博しているか、そして人工知能がどのように成長し、競合他社に優位に立つ可能性を高めているかを理解してください。

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

私たちのコンピューターは、ジャーナリングファイルシステムと呼ばれる組織化された方法ですべてのデータを保存します。これは、検索を押すとすぐにコンピューターがファイルを検索して表示できるようにする効率的な方法です。https://wethegeek.com/?p = 94116&preview = true

ビッグデータは人工知能をどのように変えていますか?

ビッグデータは人工知能をどのように変えていますか?

ビッグデータと人工知能は流行語ですが、それらがどのように相互に関連しているか知っていますか?さて、この記事を最後まで読んで、同じことを知ってください。

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でNginxをセットアップしてライブHLSビデオをストリーミングする

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

HTTPライブストリーミング(HLS)は、Apple Inc.によって実装された非常に堅牢なストリーミングビデオプロトコルです。HLSは、ファイアウォール、プロキシ、