GNU/Linux >> Linux の 問題 >  >> Linux

Linuxで独自のビデオストリーミングサーバーを作成する

ライブビデオストリーミングは非常に人気があり、現在も成長を続けています。 AmazonのTwitchやGoogleのYouTubeのようなプラットフォームは、数え切れないほどのライブメディアと録画メディアをストリーミングして消費する何百万ものユーザーを誇っています。これらのサービスは多くの場合無料で使用できますが、アカウントを持っている必要があり、通常は広告の背後にコンテンツを保持します。一部の人々は、自分のビデオを大衆が利用できるようにする必要がないか、単に自分のコンテンツをより細かく制御したいだけです。ありがたいことに、オープンソースソフトウェアの力で、誰でもライブストリーミングサーバーをセットアップできます。

はじめに

このチュートリアルでは、LinuxまたはBSDオペレーティングシステムを使用して基本的なライブストリーミングサーバーを設定する方法について説明します。

これは、システム要件の避けられない問題につながります。ライブストリーミングには次のような多くの変数が関係しているため、これらは変化する可能性があります。

  • ストリーム品質: 高解像度でストリーミングしますか、それとも標準解像度がニーズに合いますか?
  • 視聴者数: 動画に何人の視聴者を期待していますか?
  • ストレージ: ビデオストリームの保存済みコピーを保持する予定はありますか?
  • アクセス: あなたのストリームはプライベートですか、それとも世界に公開されていますか?

その他のLinuxリソース

  • Linuxコマンドのチートシート
  • 高度なLinuxコマンドのチートシート
  • 無料のオンラインコース:RHELの技術概要
  • Linuxネットワーキングのチートシート
  • SELinuxチートシート
  • Linuxの一般的なコマンドのチートシート
  • Linuxコンテナとは何ですか?
  • 最新のLinux記事

システム要件に関しては決まったルールはありません。そのため、実験して、ニーズに最適なものを見つけることをお勧めします。サーバーを、4 GBのRAM、20 GBのハードドライブ、および単一のInteli7プロセッサコアを搭載した仮想マシンにインストールしました。

このプロジェクトでは、リアルタイムメッセージングプロトコル(RTMP)を使用してオーディオおよびビデオストリーミングを処理します。他にも利用可能なプロトコルがありますが、幅広いサポートがあるため、RTMPを選択しました。 WebRTCのようなオープンスタンダードの互換性が高まるにつれて、そのルートをお勧めします。

「ライブ」が必ずしも瞬時を意味するわけではないことを知っておくことも非常に重要です。ビデオストリームは、エンコード、転送、バッファリング、および表示する必要があります。これにより、多くの場合、遅延が発生します。作成するストリームのタイプとその属性に応じて、遅延を短縮または延長できます。

Linuxサーバーのセットアップ

Linuxにはさまざまなディストリビューションを使用できますが、私はUbuntuを好むため、オペレーティングシステム用にUbuntuServerエディションをダウンロードしました。サーバーにグラフィカルユーザーインターフェイス(GUI)を使用したい場合は、Ubuntuデスクトップまたはその多くのフレーバーの1つを自由に使用してください。次に、コンピューターまたは仮想マシンでUbuntuインストーラーを起動し、環境に最適な設定を選択しました。以下は私が取った手順です。

注:これはサーバーであるため、静的ネットワーク設定を行うことをお勧めします。

インストーラーが終了してシステムが再起動すると、素敵な新しいUbuntuシステムが表示されます。新しくインストールしたオペレーティングシステムと同様に、利用可能なアップデートをインストールします。

 sudo apt update 
sudo apt upgrade

このストリーミングサーバーは非常に強力で用途の広いNginxWebサーバーを使用するため、インストールする必要があります:

 sudo apt install nginx 

次に、Nginxがメディアストリームを処理できるようにRTMPモジュールを取得する必要があります:

 sudo add-apt-repository universe 
sudo apt install libnginx-mod-rtmp

メディアストリームを受け入れて配信できるように、Webサーバーの構成を調整します。

 sudo nano /etc/nginx/nginx.conf 

構成ファイルの一番下までスクロールして、次のコードを追加します。

RTMP {

サーバー{聞く1935

CHUNK_SIZE 4096;

アプリケーションライブ{
ライブに、オフ
記録。
}
}
}

構成を保存します。私は異端者なので、構成ファイルの編集にはNanoを使用します。 Nanoでは、 Ctrl + Xを押して設定を保存できます 、 Y 、次に入力します。

これは、動作するストリーミングサーバーを作成する非常に最小限の構成です。後でこの構成に追加しますが、これは優れた出発点です。

ただし、最初のストリームを開始する前に、新しい構成でNginxを再起動する必要があります:

 sudo systemctl restart nginx 

BSDサーバーのセットアップ

あなたが「野獣」の説得力を持っているなら、ストリーミングサーバーを立ち上げて実行することも非常に簡単です。

FreeBSD Webサイトにアクセスして、最新リリースをダウンロードしてください。コンピュータまたは仮想マシンでFreeBSDインストーラを起動し、初期手順を実行して、環境に最適な設定を選択します。これはサーバーであるため、静的なネットワーク設定を行うことをお勧めします。

インストーラーが終了してシステムが再起動すると、光沢のある新しいFreeBSDシステムができあがります。他の新しくインストールされたシステムと同様に、すべてを更新することをお勧めします(このステップ以降、rootとしてログインしていることを確認してください):

 pkg update 
pkg upgrade

構成ファイルを編集するためにNanoをインストールします:

 pkg install nano 

このストリーミングサーバーは、非常に強力で用途の広いNginxWebサーバーを使用します。優れたポートを使用してNginxを構築できます FreeBSDが誇るシステム。

まず、ポートツリーを更新します:

 portsnap fetch 
portsnap extract

Nginxポートディレクトリを参照します:

 cd /usr/ports/www/nginx 

そして、以下を実行してNginxの構築を開始します:

 make install 

Nginxビルドに含めるモジュールを尋ねる画面が表示されます。このプロジェクトでは、RTMPモジュールを追加する必要があります。 RTMPモジュールが選択されるまで下にスクロールし、スペースを押します 。次に、 Enterを押します 残りのビルドとインストールを続行します。

Nginxのインストールが完了したら、ストリーミング用に構成します。

まず、 /etc/rc.confにエントリを追加します システムの起動時にNginxサーバーが確実に起動するようにするには:

 nano /etc/rc.conf 

このテキストをファイルに追加します:

 nginx_enable="YES" 

次に、Nginxがコンテンツを提供するWebルートディレクトリを作成します。私は私のストリームと呼んでいます :

 cd / usr / local / www / 
mkdir stream
chmod -R 755 stream /

ストリームディレクトリを作成したので、構成ファイルを編集してNginxを構成します。

 nano /usr/local/etc/nginx/nginx.conf 

ファイルの先頭にストリーミングモジュールをロードします:

 load_module /usr/local/libexec/nginx/ngx_stream_module.so; 
load_module /usr/local/libexec/nginx/ngx_rtmp_module.so;

サーバーの下 セクションで、前に作成した場所と一致するようにWebルートの場所を変更します:

場所/{
root / usr / local / www / stream
}

最後に、RTMP設定を追加して、Nginxがメディアストリームの処理方法を認識できるようにします。

RTMP {

サーバー{聞く1935

CHUNK_SIZE 4096;

アプリケーションライブ{
ライブに、オフ
記録。
}
}
}

構成を保存します。 Nanoでは、 Ctrl + Xを押すことでこれを行うことができます 、 Y 、次に入力します。

ご覧のとおり、これは動作するストリーミングサーバーを作成する非常に最小限の構成です。後でこの構成に追加しますが、これは優れた出発点を提供します。

ただし、最初のストリームを開始する前に、新しい構成でNginxを再起動する必要があります:

 service nginx restart 

ストリーミングソフトウェアを設定する

OBSを使用したブロードキャスト

サーバーがビデオストリームを受け入れる準備ができたので、ストリーミングソフトウェアをセットアップします。このチュートリアルでは、強力でオープンソースのOpen Broadcast Studio(OBS)を使用します。

OBS Webサイトにアクセスし、オペレーティングシステムのビルドを見つけてインストールします。 OBSが起動すると、ハードウェアに最適な設定でOBSを構成するのに役立つ初回実行ウィザードが表示されます。

ソースが提供されていないため、OBSは何もキャプチャしていません。このチュートリアルでは、ストリーム用にデスクトップをキャプチャするだけです。 +をクリックするだけです ソースの下のボタン 、スクリーンキャプチャを選択します 、キャプチャするデスクトップを選択します。

[OK]をクリックすると、OBSがデスクトップをミラーリングしているのがわかります。

次に、新しく構成したビデオストリームをサーバーに送信します。 OBSで、[ファイル]をクリックします>設定ストリームをクリックします セクションを作成し、ストリームタイプを設定します カスタムストリーミングサーバーへ 。

[URL]ボックスに、プレフィックス rtmp://を入力します ストリーミングサーバーのIPアドレスの後に/liveが続きます 。例: rtmp:// IP-ADDRESS / live

次に、ストリームキー(ストリームを表示するために必要な特別な識別子)を入力することをお勧めします。 ストリームキーに必要な(そして覚えておくことができる)キーを入力します ボックス。

適用をクリックします 次にOK

これで、OBSがストリームをサーバーに送信するように構成されたので、最初のストリームを開始できます。 ストリーミングの開始をクリックします 。

すべてが機能した場合は、ボタンがストリーミングの停止に変わるはずです。 一部の帯域幅メトリックはOBSの下部に表示されます。

エラーが発生した場合は、OBSの[ストリーム設定]でスペルミスがないか再確認してください。すべてが良好に見える場合は、それが機能しないという別の問題がある可能性があります。

ストリームの表示

ライブ動画は、誰も見ていないとあまり良くないので、最初の視聴者になりましょう!

RTMPをサポートするオープンソースメディアプレーヤーは多数ありますが、最もよく知られているのはおそらくVLCメディアプレーヤーです。

VLCをインストールして起動したら、メディアをクリックしてストリームを開きます>オープンネットワークストリーム 。ストリームへのパスを入力し、OBSで設定したストリームキーを追加して、[再生]をクリックします 。例: rtmp:// IP-ADDRESS / live / SECRET-KEY

これで、独自のライブビデオストリームが表示されるはずです!

次はどこに行きますか?

これは非常にシンプルなセットアップで、あなたを地面から離します。使用する可能性が高い他の2つの機能は次のとおりです。

  • アクセスを制限する: デフォルトの設定では誰でもサーバーとの間でストリーミングできるため、次のステップはサーバーへのアクセスを制限することです。これを設定するには、オペレーティングシステムのファイアウォール、.htaccessファイル、RTMPモジュールに組み込まれているアクセス制御を使用するなど、さまざまな方法があります。

  • ストリームの記録: この単純なNginx構成は、ビデオをストリーミングするだけで保存しませんが、これは簡単に追加できます。 Nginx構成の[RTMP]セクションで、録画オプションとビデオを保存する場所を設定します。設定したパスが存在し、Nginxがそのパスに書き込めることを確認してください。

 application live {
live on;
record all;
record_path / var / www / html / recordings;
pre> /> /> ライブストリーミングの世界は絶えず進化しており、より高度な使用法に興味がある場合は、インターネット上に浮かんでいる他の多くの優れたリソースがあります。幸運と幸せなストリーミング!


Linux
  1. Linuxサーバーのネットワーク接続をnetstatで表示する

  2. KaliLinuxでFluxionを使用してネットワークの邪悪なツインを作成する

  3. LinuxMint17でownCloud6を使用してクラウドストレージを作成します

  1. pdftkでPDFのブックマークを作成する

  2. LinuxサーバーにDockerを使用してNextcloudをインストールする方法

  3. Fail2BanでLinuxサーバーを保護する[初心者向けガイド]

  1. CheckmkでLinuxサーバーを監視する

  2. LinuxPCにVPNサーバーをセットアップする

  3. LinuxでSSHを使用してパーソナルファイルサーバーを作成する方法