Nginx を使用して rtmp ライブ サーバーを実行する方法

Nginx を使用して rtmp ライブ サーバーを実行する方法

今回は、コンピューターや携帯電話用の rtmp ライブ ブロードキャスト サーバーを設定し、ライブ ストリームをサーバーにプッシュすると、コンピューターや携帯電話などの他の端末でライブ ビデオを視聴できるようになります。 ここでは、コンピューター画面録画ソフトウェアを使用して、リアルタイムで録画されたコンピューター画面の画像を他の人にブロードキャストします。全部で 3 つの部分が必要です。まず、画面録画ソフトウェアがコンピューターの画面を録画し、画像ストリームをサーバーに送信します。次に、サーバーの rtmp を設定し、画面録画ソフトウェアによってアップロードされた画像を受信できるようにします。3 番目に、ビデオ プレーヤー クライアントが rtmp サーバーに接続し、rtmp サーバーによってプッシュされたビデオ ストリームを受信できるようにします。これにより、最初の部分の画面録画ソフトウェアのリアルタイム画像をリアルタイムで視聴できるようになります。ここでの核となるのは、2 番目の部分、つまり rtmp サーバーの構築です。

1. nginxをダウンロードする

Nginxは、Tomcatに似たサーバーソフトウェアで、サーバープログラムを公開するために使用されます。

(1)ダウンロードアドレス:Linuxでwget http://nginx.org/download/nginx-1.15.3.tar.gzコマンドを実行し、圧縮パッケージをダウンロードします。

(2)tarコマンドを使用して解凍します:tar xvf nginx-1.15.3.tar.gz

2. nginx rtmpモジュールをダウンロードする

wget https://codeload.github.com/arut/nginx-rtmp-module/tar.gz/v1.2.1 同じtar xvf v1.2.1を解凍します

3. nginxをコンパイルする

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

4. nginx-rtmp-moduleのconfファイルを変更する

cd nginx-rtmp-module-1.2.1 でフォルダーを開き、cd test フォルダーで、nginx.conf ファイルの内容を次のように変更します。

ワーカープロセス 1;
 
error_log ログ/error.log デバッグ;
 
イベント {
    ワーカー接続 1024;
}
 
rtmp {
    サーバー{
        1935年を聴く;
 
        アプリケーション myapp {
            生き続ける;
 
            #キーフレームを記録します。
            #レコードパス /tmp;
            #レコード最大サイズ 128K;
            #記録間隔 30 秒;
            #レコードサフィックス .this.is.flv;
 
            #on_publish http://localhost:8080/publish;
            #on_play http://localhost:8080/play;
            #on_record_done http://localhost:8080/record_done;
        }
    }
}
 
http {
    サーバー{
        8080を聴く;
 
        場所 / 統計 {
            rtmp_stat すべて;
            rtmp_stat_stylesheet 統計.xsl;
        }
 
        場所 /stat.xsl {
            ルート /path/to/nginx-rtmp-module/;
        }
 
        場所 / コントロール {
            rtmp_control すべて;
        }
 
        #場所 /公開 {
        # 201 を返します。
        #}
 
        #場所 /再生{
        # 202 を返します。
        #}
 
        #場所 /記録完了{
        # 203 を返します。
        #}
 
        場所 /rtmp-publisher {
            ルート /path/to/nginx-rtmp-module/test;
        }
 
        位置 / {
            ルート /path/to/nginx-rtmp-module/test/www;
        }
    }
}

ストリーミング アドレスは rtmp://IP:PORT/myapp/{abc} になります。{abc} の abc はオプションで、通常はストリーミング パスワードです。ビデオ ストリームをサーバーにプッシュまたは受信するときに、abc などのパスワードを入力できます。デフォルトの rtmp サーバー ポートは 1935 です。このポートが使用されている場合は、次のコマンドを使用して、このポートを占有しているプロセスを強制終了できます。

kill -9 pid (pid はプロセス ID)。

次に、nginx-1.15.3/bin/confの下のnginx.confをこのconfに置き換えます。

元のファイルを削除せずに元の nginx.conf の名前を変更するには、mv nginx.conf nginx.conf.bak コマンドを実行します。

5. nginxを起動する

nginx-1.15.3をインストールします

nginxフォルダを開く

nginx 1.15.3 のルートディレクトリ

nginxを起動する

6. nginx rtmpストリーミングメディアが正常にデプロイされているかどうかを確認する

起動後、ブラウザから122.112.220.253:8080にアクセスします。

開かない場合は、
1. サーバー上でセキュリティ ルールを作成し、エントリ ルールを開発し、ポート 1935 と 8080 を開き、プロトコルとして TCP を使用します。
2. nginx-1.15.3/bin/conf の下の nginx.conf で、先頭のユーザーを変更します: user root;

この時点で、nginx.conf の内容は次のようになります。

ユーザー root;
ワーカープロセス 1;
 
error_log ログ/error.log デバッグ;
 
イベント {
    ワーカー接続 1024;
}
 
rtmp {
    サーバー{
        1935年を聴く;
 
        アプリケーション myapp {
            生き続ける;
	    drop_idle_publisher 5秒;
        }
    }
}
 
http {
    サーバー{
        聞く 8082;
 
        場所 / 統計 {
            rtmp_stat すべて;
            rtmp_stat_stylesheet 統計.xsl;
        }
 
        場所 /stat.xsl {
            ルート /root/nginx-rtmp-module-1.2.1/;
        }
 
        場所 / コントロール {
            rtmp_control すべて;
        }
 
    
 
        場所 /rtmp-publisher {
            ルート /root/nginx-rtmp-module-1.2.1/test;
        }
 
        位置 / {
            ルート /root/nginx-rtmp-module-1.2.1/test/www;
        }
    }
}

3. nginx を再起動し、122.112.220.253:8082 に再度アクセスします。成功しました。

次回は、画面録画ソフトウェアを使用してコンピューターの画面を録画し、rtmp プロトコルを使用してコンピューターの画面イメージをサーバーにプッシュし、プレーヤーを使用してサーバー上で rtmp ライブ ストリームを再生します。

Nginx を使用して rtmp ライブ ブロードキャスト サーバーを配信する方法に関するこの記事はこれで終わりです。より関連性の高い rtmp ライブ ブロードキャスト サーバー コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Nginx は rtmp ライブ サーバーの実装コードを構築します
  • Ubuntu 18.04 で Nginx+RTMP+HLS+HTTPFLV サーバーを構成してオンデマンド/ライブ ブロードキャスト/録画機能を実現する方法の詳細説明
  • Mac で nginx+rtmp ライブ サーバーを構築するための詳細な手順

<<:  MySQL の自動インクリメント主キーが連続していないのはなぜですか?

>>:  Div CSS 命名標準 CSS クラスの命名規則 (SEO 標準に準拠)

推薦する

MySQL 8.0.22 winx64 のインストールと設定方法のグラフィックチュートリアル

MySQL-8.0.22-winx64のデータベースインストールチュートリアルは参考になります。具体...

Vueは移動可能なフローティングボタンを実装します

この記事の例では、どこにでも移動できるフローティングボタンを実現するためのVueの具体的なコードを共...

海外のウェブページのカラーマッチング事例20選共有

この記事では、優れた Web ページのカラー マッチングの事例を 20 件集めて紹介します。これらの...

VMware kali仮想マシン環境の設定方法

1|0 カーネルをコンパイルする(1)uname -rコマンドを実行してカーネルバージョンを表示しま...

nacos が mysql に接続できない場合の解決策

理由nacos の pom が依存する mysql バージョンが、mysql バージョンと一致してい...

DockerコンテナはホストのMySQL操作にアクセスする

背景:インターフェイスを提供する Flask プロジェクトがあり、これは Docker コンテナを使...

Nodejs のグローバル変数とグローバルオブジェクトの知識ポイントと使用方法の詳細

1. グローバルオブジェクトすべてのモジュールは呼び出すことができます1) global: ブラウザ...

最適なウェブページ幅とその互換性のある実装方法

1. Web ページをデザインするときに、幅を決定するのは非常に面倒な作業です。 jb51.net ...

Vue フロントエンドの Excel ファイルのエクスポートの詳細な実装計画

目次1. 技術の選択2. 技術的な実装vue-json-excelプラグインを使用して実装1. vu...

MySQL 文字列連結関数 GROUP_CONCAT の詳細な説明

前回の記事では、クロステーブル更新について書きました。自分が書いた SQL を見たとき、自分がバカみ...

Linux での Docker のインストールと展開の例

以下の記事を読んだ後、プロジェクトをサーバーにデプロイできます。Tomcat、JDK、MySQL な...

3つの簡単な調整でMySQLを最適化する

私は熟練した DBA になるつもりはありませんが、MySQL を最適化するときは、いくつかの構成を調...

NFS サーバーの原理と、その構築、構成、展開の手順を簡単に分析します。

目次NFS サービスの概要NFS とは何ですか? NFS マウントの原則NFS サーバーはデータ転送...

CSSのclip-pathプロパティを使用して不規則なグラフィックを表示する

clip-path CSS プロパティはクリッピングを使用して要素の表示可能領域を作成します。領域内...