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

推薦する

jQueryはテーブル行データのスクロール効果を実現します

この記事の例では、テーブル行データのスクロール効果を実現するためのjQueryの具体的なコードを参考...

mysql 基本操作文コマンドの詳細な説明

1. MySQLに接続するフォーマット: mysql -h ホストアドレス -u ユーザー名 -p ...

docker のインストールが完了し、bridge-nf-call-iptables が無効であると報告される問題を解決します

Centos マシンで docker のインストールが完了したら、docker info コマンドを...

jQueryとCSSを組み合わせてトップに戻る機能を実現

CSS操作 CS $("").css(名前|プロ|[,値|関数]) 位置$(&q...

Linux で gdb を使用してコア ファイルをデバッグする方法

1.コアファイルプログラム実行中にセグメンテーション エラー (コア ダンプ) が発生すると、プログ...

MySQL トランザクション分離レベルとロックメカニズムの問題に関する深い理解

概要データベースは通常、複数のトランザクションを同時に実行します。複数のトランザクションが、同じデー...

ブラウザのCSS、JavaScript、背景画像のキャッシュをクリアする簡単な方法

実際のプロジェクト開発プロセスでは、ページがサーバーにアップロードされます。サーバーへの負荷を軽減し...

Linuxシステムにmsfをインストールするプロセスの詳細な説明

または、インストールプロセスを自分で書き留めてください。私のサーバーシステムはAliyun Linu...

フロントエンドフレームワーク Vue における親子コンポーネントデータの双方向バインディングの実装

目次1. 親コンポーネントと子コンポーネント間の一方向の値転送1. 親から子への値の受け渡し2. 子...

中国における中国語ドメイン名の人気は新たなクライマックスを迎えた

<br />外交部などの中央政府機関、各レベルの地方政府、その他の国家機関や部門が率先し...

MySQLはテーブル内のフィールドを別のテーブル内のフィールドの値と等しくなるように更新します

以下のように表示されます。 table1 を z として更新し、table2 を zb として結合し...

CentOS 7.2 に SuPHP をインストールするための詳細な手順

デフォルトでは、CentOS 7 上の PHP は apache または nobody として実行さ...

HTTP ステータス コード

このステータス コードは、リクエストのステータスに関する情報を提供し、サイトとリクエストされたページ...

Linux に MySQL 8.0.19 をインストールするための詳細な手順と問題解決方法

最近Tencent Cloudサーバーを購入し、環境を構築しました。このメモは、これまで MySQL...

Linux でテキストを表示するためのヒント (非常に実用的!)

序文日常の開発では、サーバー上でさまざまなテキストやログの表示操作を実行する必要があることがよくあり...