nginx を使用して仮想マシン CentOS 7.0 上に http-flv ライブ ストリーミング メディア サーバーを構築する

参考文献

nginx による http-flv ベースのライブ ストリーミング メディア サーバーの構築
CentOS 7 のインストールと構成 git
VMwear のインストール Centos7 の超詳細なプロセス
nginx +rtmp+nginx-http-flv-module 環境の構築
CentOS7 の表示とファイアウォールの終了

上記資料を参照する際にいくつか落とし穴に遭遇したので、落とし穴のない箇所(上記資料を直接参照)は省略し、落とし穴や違う箇所がある場合は詳しく説明します。

基本的なワークフロー

  1. ビデオ ソース (コンピューター、携帯電話、ウェブカメラなどのライブ ブロードキャスト用のデバイスを含む) は、ストリーミング サーバー上の特定の (ポート + アドレス) にビデオ データを「プッシュ」します。
  2. ビデオ レシーバーは別の (ポート + アドレス) 経由でビデオ データを「プル」し、ライブ コンテンツを視聴します。

この例では:

文章

フローメディアサービス

VMware と CentOS 7.0 をインストールする

VMware と CentOS 7.0 をダウンロードしてインストールします。手順は上記の参考資料を参照してください。サインアップして自分で実行してください。

インストール プロセス中にネットワーク カードをオンにした後、取得した IP アドレスを書き留める必要があります (インストール完了後に確認することもできます)。これは後で使用します。

この方法でインストールした CentOS 7.0 にはいくつかの機能 (主に C コンパイラ) が欠けていることに注意してください。root としてログインした後、次のコマンドを実行します。

yum -y install unzip
yum -y install gcc-c++ 
yum -y install pcre pcre-devel  
yum -y install zlib zlib-devel 
yum -y install openssl openssl-devel

gitをインストールする

上記を参考に、設定情報のユーザー名とメールアドレスをご自身のものに変更してください。

Nginx および nginx-http-flv-module のソース コードをダウンロードする

すべてのソースコードを一時フォルダーに配置する必要があります。一時フォルダーに入ります。

cd /tmp

nginx-http-flv-module ソース コードのクローンを作成する

git clone https://github.com/winshining/nginx-http-flv-module.git

Nginxのソースコードをダウンロードする

wget https://nginx.org/download/nginx-1.19.9.tar.gz

nginx のバージョン番号はここで更新される可能性があることに注意してください (上記のリンクを参照)、自分で決定し、将来に関わるバージョン番号は一貫している必要があります

tar -xzf nginx-1.19.9.tar.gz
cd nginx-1.19.9

コンパイルしてインストールする

nginxフォルダ内で順次実行

./configure --add-module=/tmp/nginx-http-flv-module --with-http_ssl_module
make
make install

実行後、nginxは/usr/local/nginxにインストールされます

nginx設定ファイルを変更する

この例では、CentOS はグラフィカル インターフェイスを使用してインストールされていますが、この手順ではグラフィカル インターフェイスを使用することをお勧めします。

root ユーザーとしてログインし、/usr/local/nginx/conf /nginx.conf ファイルを開き、コンテンツの編集についてはリファレンスの最初のリンクを参照してください。

デフォルト設定から変更した部分は、

追加した

rtmp {
    
    
    server {
    
    
        listen 9999;  # 接受推流的端口号
        chunk_size 8192; # 单一推流数据包的最大容量

        application myapp {
    
     # myapp 模块,可以自行更换名字
            live on; # 打开直播
            meta off; # 为了兼容网页前端的 flv.js,设置为 off 可以避免报错
            gop_cache on; # 支持GOP缓存,以减少首屏时间
            allow play all; # 允许来自任何 ip 的人拉流
        }
    }
}

http/server のリッスン ポートを 8080 に変更し、http/server の下に追加します。

location /live {
    
     # 拉流时的 uri ,可以自行修改
            flv_live on; # 打开 http-flv 服务
            chunked_transfer_encoding on;
            add_header 'Access-Control-Allow-Origin' '*'; # 允许跨域
            add_header 'Access-Control-Allow-Credentials' 'true';
        }

保存して終了

Nginxを起動する

cd /usr/local/nginx/sbin
./nginx

正常に起動した後のプッシュ アドレスとプル アドレスは次のとおりです。

  • 推流:rtmp://localhost:9999/myapp/mystream
  • 拉流:http://localhost:8080/live?port=9999&app=myapp&stream=mystream

その中には、
localhost は、以前に記録または確認した CentOS システムの IP アドレスに置き換える必要がある、
liveは、nginx 構成ファイルに追加された場所の URI である、
myappは、nginx 構成ファイルで指定されているアプリ モジュールの名前、これは、設定ファイル、プッシュ ストリーム、およびプル ストリームに表示されますプッシュ ストリーム
。mystreamプッシュ ストリームとプル ストリームに表示される名前も一貫している必要があります。

ファイアウォール

ストリーミングを成功させるには、Linux ファイアウォールを通過する必要があります。この例では、ファイアウォールを直接閉じることを選択しています (冒頭のリファレンスを参照)。実際のアプリケーションでは、ストリームのプッシュおよびプルに使用されるポートを開くようにファイアウォール構成を変更する必要があります (この例では 9999 と 8080)。

これまでのところサーバーの準備は完了しています

OBS推流

OBSをインストールして起動し、「ソース」の下部にあるプラス記号をクリックし、「モニターキャプチャ」を追加して直接確認します。この時点で、OBSのメインインターフェイスにコンピューター画面のリアルタイム画面が表示されます。

次に、右側のウィンドウで [ファイル] - [設定] - [ストリーミング] (左側) を選択します。

サービスに「カスタム」を選択し、「サーバー」に rtmp://localhost:9999/myapp/ を入力し、「ストリームキー」に mystream を入力し (実際のコンテンツは前のコンテンツと一致している必要があります)、確認して終了します。

右下隅の「ストリーミング開始」をクリックします。ストリーミングが成功すると、ボタンが「ストリーミング停止」に変わり、ステータスバーの右下隅に 1 秒あたりのリアルタイムのトラフィック データが表示されます。

ここまででストリーミングは完了しました

VLC、flv.js プル ストリーム、再生

VLC

メディア - ネットワーク ストリームを開き、上記のストリーミング URL を入力し (実際のコンテンツは前の記事と一致している必要があります)、再生します。

flv.js

flv.jsのデモページを開き、上のストリームURLをStream URLに入力し、下のLoadをクリックします。

おすすめ

転載: blog.csdn.net/hjg719/article/details/115347365