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 標準に準拠)

推薦する

Linux サーバーで MySQL リモート接続を有効にする方法

序文以前の非MKレコードを再編成するためのMySQLの学習説明する有効になっていない場合、データベー...

MYSQLは継続サインイン機能を実装しており、サインイン後1日経過すると最初から開始します(SQL文)

1. テストテーブルを作成する テーブル `testsign` を作成します ( `userid`...

Reactでカスタムフックを作成する方法を教えます

1. カスタムフックとは何かロジックの再利用簡単に言えば、カスタム フックを使用すると、特定のコンポ...

Vue カスタム オプション時間カレンダー コンポーネント

この記事の例では、参考のためにvueカスタムオプションタイムカレンダーコンポーネントの具体的なコード...

Dockerイメージ内のファイルを表示する方法

Dockerイメージ内のファイルを表示する方法1. すでに実行中の場合すでに実行中のイメージについて...

MySQL並列レプリケーションの簡単な説明

1. 並列レプリケーションの背景まず、並列レプリケーションの概念はなぜ存在するのでしょうか? 1. ...

MySQL 5.6.23 のインストールと設定環境変数のチュートリアル

この記事では、MySQL 5.6.23のインストールと設定のチュートリアルを参考までに紹介します。具...

アイデアを war パッケージにパッケージ化し、tomcat にデプロイしてアクセス パスの問題 (図とテキスト)

Web プロジェクトを war にパッケージ化するアイデアにとって最も重要なことは、アトリフィカを...

読み取り専用と無効の違い

要約すると: Readonly は入力 (テキスト/パスワード) とテキスト領域に対してのみ有効です...

MySQL のインデックス有効条件とインデックス無効条件の結合

目次1. ジョイントインデックスの故障の条件2. インデックス失敗の条件1. ジョイントインデックス...

MySQL での外部キーの作成、制約、削除

序文MySQL バージョン 3.23.44 以降では、InnoDB エンジン タイプのテーブルは外部...

横スクロールウェブサイトデザインの概要

水平スクロールはあらゆる状況に適しているわけではありませんが、適切に行えば、Web サイトを他のサイ...

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

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

WeChatアプレットでラッキーホイールゲームを実装する方法

ここでは主に、WeChat アプレットでラッキーホイール ゲームを開発する方法を紹介します。主に J...

Linux での umask の使用に関する詳細な説明

私は最近 Linux を学び始めました。Ma Ge の umask に関する Linux コースを読...