ホームページ  >  記事  >  運用・保守  >  nginx が nginx-rtmp-module モジュールを使用してライブ ブロードキャスト ルーム機能を実装する方法

nginx が nginx-rtmp-module モジュールを使用してライブ ブロードキャスト ルーム機能を実装する方法

WBOY
WBOY転載
2023-05-19 08:13:051512ブラウズ

システム環境

wujianjun@wujianjun-work ~ $ uname -a
linux wujianjun-work 4.10.0-37-generic #41~16.04.1-ubuntu smp fri oct 6 22:42:59 utc 2017 x86_64 x86_64 x86_64 gnu/linux

ソフトウェア環境

obs(オープンブロードキャスターソフトウェア) v20.0.1 (linux)

nginxバージョン: nginx/1.13.6

gcc 5.4.0 20160609 でビルド (ubuntu 5.4.0-6ubuntu1~16.04.5)

openssl 1.0.2g でビルド (2016 年 3 月 1 日)

tls sni サポートが有効になりました

configure 引数: –with-pcre=pcre-8.38 –add-module=nginx-rtmp-module-1.1.11

nginx obs のインストールと構成 インストール obs

wujianjun@wujianjun-work ~ $ sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next
wujianjun@wujianjun-work ~ $ sudo apt-get update && sudo apt-get install ffmpeg
wujianjun@wujianjun-work ~ $ sudo apt-get install obs-studio
wujianjun@wujianjun-work ~ $ sudo add-apt-repository ppa:obsproject/obs-studio
wujianjun@wujianjun-work ~ $ sudo apt-get update && sudo apt-get install obs-studio

nginx は rtmp モジュールをインストールします

nginx-rtmp-module ( )

wujianjun@wujianjun-work ~ $ sudo apt-get install build-essential
wujianjun@wujianjun-work ~ $ wget wget http://nginx.org/download/nginx-1.13.6.tar.gz
wujianjun@wujianjun-work ~/nginx-1.13.6 $ wget https://github.com/arut/nginx-rtmp-module/archive/v1.1.11.tar.gz
wujianjun@wujianjun-work ~/nginx-1.13.6 $ tar -xvf v1.1.11.tar.gz
wujianjun@wujianjun-work ~/nginx-1.13.6 $ wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.38/pcre-8.38.tar.gz
wujianjun@wujianjun-work ~/nginx-1.13.6 $ tar -xvf pcre-8.38.tar.gz
wujianjun@wujianjun-work ~/nginx-1.13.6 $ ls -all
总用量 748
drwxr-xr-x 9 wujianjun wujianjun 4096 10月 15 11:39 .
drwxr-xr-x 63 wujianjun wujianjun 4096 10月 15 11:33 ..
drwxr-xr-x 6 wujianjun wujianjun 4096 10月 15 11:33 auto
-rw-r--r-- 1 wujianjun wujianjun 282456 10月 10 23:22 changes
-rw-r--r-- 1 wujianjun wujianjun 430416 10月 10 23:22 changes.ru
drwxr-xr-x 2 wujianjun wujianjun 4096 10月 15 11:33 conf
-rwxr-xr-x 1 wujianjun wujianjun 2502 10月 10 23:22 configure
drwxr-xr-x 4 wujianjun wujianjun 4096 10月 15 11:33 contrib
drwxr-xr-x 2 wujianjun wujianjun 4096 10月 15 11:33 html
-rw-r--r-- 1 wujianjun wujianjun 1397 10月 10 23:22 license
drwxr-xr-x 2 wujianjun wujianjun 4096 10月 15 11:33 man
drwxrwxr-x 6 wujianjun wujianjun 4096 2月 13 2017 nginx-rtmp-module-1.1.11
drwxr-xr-x 7 wujianjun wujianjun 4096 11月 23 2015 pcre-8.38
-rw-r--r-- 1 wujianjun wujianjun  49 10月 10 23:22 readme
drwxr-xr-x 9 wujianjun wujianjun 4096 10月 15 11:33 src
wujianjun@wujianjun-work ~/nginx-1.13.6 $ ./configure --with-pcre=pcre-8.38 --add-module=nginx-rtmp-module-1.1.11
wujianjun@wujianjun-work ~/nginx-1.13.6 $ make && sudo make install
wujianjun@wujianjun-work ~/nginx-1.13.6 $ ls -all /usr/local/nginx/
总用量 24
drwxr-xr-x 6 root root 4096 10月 15 16:11 .
drwxr-xr-x 11 root root 4096 10月 15 16:11 ..
drwxr-xr-x 2 root root 4096 10月 15 16:11 conf
drwxr-xr-x 2 root root 4096 10月 15 16:11 html
drwxr-xr-x 2 root root 4096 10月 15 16:11 logs
drwxr-xr-x 2 root root 4096 10月 15 16:11 sbin

rtmp プロトコル構成を追加します

wujianjun@wujianjun-work ~/nginx-1.13.6 $ sudo vi /usr/local/nginx/conf/nginx.conf

次の rtmp プロトコルを nginx の最後に追加します。 conf ファイルの構成

rtmp {
 server {
  listen 1935;
  chunk_size 4096;

  application live {
   live on;
   record off;
  }
 }
}

開始とテスト

Start nginx

wujianjun@wujianjun-work ~/nginx-1.13.6 $ sudo /usr/local/nginx/sbin/nginx

Start obs

インストールしたばかりの obs ソフトウェアを開きます。ソースで 画像のプッシュ ソースを設定し (ここではウィンドウ キャプチャを選択します)、右下隅の [設定] をクリックして、以下に示すようにストリーム プッシュ アドレスを設定します。 ##設定が完了したら、「Start Push」Stream をクリックします。

ネットワーク ストリーム再生をサポートするビデオ プレーヤーを開始します (デモでは vlc プレーヤーを使用します)nginx が nginx-rtmp-module モジュールを使用してライブ ブロードキャスト ルーム機能を実装する方法

ネットワーク ストリーム再生のアドレスを設定します

「再生」をクリックした後、数秒待つと、プレーヤーに obs によってキャプチャされた画像が表示されます。

nginx が nginx-rtmp-module モジュールを使用してライブ ブロードキャスト ルーム機能を実装する方法

ビデオ ストリームはネットワーク経由で送信する必要があるため、ライブ画像には数秒の遅延が発生します。

http ライブ ビデオにアクセスしますnginx が nginx-rtmp-module モジュールを使用してライブ ブロードキャスト ルーム機能を実装する方法

1. nginx.conf の設定を変更し、hls 設定を追加して (hls はストリーミング メディア サーバーにストリーミング メディアを保存するために使用されるフォルダーです)、再入力します。 hls が置かれているディレクトリ http プロトコルを設定してディレクトリにアクセスするだけです 変更された構成は次のとおりです:

rtmp {
 server {
  listen 1935;
  chunk_size 4096;

  application live {
   live on;
   hls on;
   hls_path /usr/share/nginx/html/hls;
   hls_fragment 5s;
  }
 }
}

http {
 server {
 listen 80;
 .....
 location / {
   #root html;
   root /usr/share/nginx/html;
   index index.html index.htm;
 }
 .....
 }
}

注: hls が置かれているディレクトリの nginx のユーザーは書き込み権限を持っている必要があります。

2. Obs ソフトウェアは録画ストリーム名を設定します

obs プッシュ ストリーム URL の設定の下に「ストリーム名」を設定する場所があります。任意の名前を入力できます。 (ここに例を入力します) "test")

3. nginx と obs ソフトウェアを再起動します。モバイル ブラウザに http://ip/hls/test.m3u8 と入力して、ライブ ビデオを再生できます。携帯電話。 (生放送の遅延が少し大きいので記事は後ほど最適化します)

以上がnginx が nginx-rtmp-module モジュールを使用してライブ ブロードキャスト ルーム機能を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。