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データベースイベントスケジュール実行タスクの詳細な説明

1. 背景プロジェクトの業務が進むにつれて、データベース テーブルの数がどんどん大きくなり、ハードデ...

Vue3でアイコンを使用する2つの例

目次1. SVGを使用する2. fontAwesomeを使用する3 ソース4 結論テクノロジースタッ...

クラウドデータ移行サービスの観点から見たMySQLの大規模テーブル抽出モードの原理分析

概要: MySQL JDBC 抽出にはどのような方法を使用すればよいでしょうか? その方法を説明しま...

30分でReact Hooksを包括的に理解できます

目次概要1. 使用状態1.1 3つの概念に関する質問1.2 例1.3 注記2. リデューサーを使用す...

Dockerコンテナレイヤーの概念の詳細な説明

目次01 コンテナの一貫性02 レイヤーの概念03 レイヤードデザインの利点今日はコンテナ レイヤー...

MySQL で誤って削除したテーブル データを回復する方法 (必読)

バックアップがあれば、非常に簡単です。最新のバックアップ データを生成し、mysqlbinlog を...

Dockerのデフォルトネットワークセグメントを変更する実装方法の分析

背景同社のサーバーはすべて Alibaba Cloud ECS ホストを購入しています。デフォルトの...

sqlとmysqlの違いは何ですか?

SQL とは何ですか? SQL はデータベースを操作するために使用される言語です。 SQL はすべ...

Centos7 での Mysql5.7.19 の詳細なインストールチュートリアル

1. ダウンロード公式サイトからmysql-5.7.19-linux-glibc2.12-x86_6...

Windows 上で Zookeeper サーバーを構築するチュートリアル

インストールと設定Apacheの公式ウェブサイトには多くのミラーダウンロードアドレスが用意されており...

CSS マルチレベルメニュー実装コード

これは、Web ページを Windows のスタート メニューなどのデスクトップ プログラムのように...

CSS変数var()の使い方を理解する必要があります

Web プロジェクトがどんどん大きくなると、CSS は天文学的な大きさと複雑さを増します。この問題を...

HTML 名 ID とクラスの違い_PowerNode Java アカデミー

名前タグの名前を指定します。形式 <input type="text" n...