MECダイレクト内映像配信
MECダイレクト®を利用して、SIM グループ内でのみ視聴可能な動画配信を行うことができます。 概要
配信用 PC でレイアウト・ミックスした映像を MECダイレクト でインスタンスに送信し、MECダイレクト の SIM グループ内の各 PC がインスタンスにアクセスすることで視聴するため、映像配信を MECダイレクト の閉域内だけで完結させることができます。映像配信プラットフォームサイト等を使用せず、アクセス可能な端末を制限することができるため、機密情報の漏洩リスクが小さくなります。
ここでは、MEC基盤はCompute D、インスタンスでは nginx、配信用端末では OBS Studio、視聴用端末では VLC media player、通信には RTMP を使用する方法を紹介します。
インスタンスが映像を配信用 PC から受信し、サーバーとして視聴用 PC に配信するための準備をします。 サーバーの準備
まずインスタンスを作成して必要なソフトウェアをインストールした映像配信サーバーを構築し、そのスナップショットを作成します。このスナップショットを利用して、改めてMECダイレクトのみに接続したインスタンスを起動することで、MECダイレクトネットワークを安全に保ったままインスタンスをセットアップすることができます。
Compute Dにて、インターネットに接続したUbuntu 20.04 のインスタンスを作成します。詳細は以下をご覧ください。 インスタンスの作成
Web サーバーソフトウェアの nginx をインスタンスにインストールします。 インスタンスへの nginx の導入
- インスタンスを起動し、コマンドラインコンソールにログインします。詳細は以下をご覧ください。
- コマンドラインコンソールで次のコマンドを実行し、Ubuntu のアップデートを取得・実行します。この処理には数分~数十分の時間がかかる場合があります。
- コマンドラインコンソールで次のコマンドを実行し、nginx をインストールします。
$ sudo apt update $ sudo apt upgrade -y
$ sudo apt install nginx -y
nginx を使用して配信を行うための設定をしていきます。 nginx の設定
- コマンドラインコンソールで次のコマンドを実行し、nginx を使用した映像配信に必要な RTMP モジュールをインストールします。
- 映像配信に必要な設定を行うため、nginx のコンフィグファイルを編集していきます。
コマンドラインコンソールで次のコマンドを実行し、nginx のコンフィグファイルをテキストエディタの Vim で開きます。$ sudo vim /etc/nginx/nginx.conf
開いたコンフィグファイルの末尾に、次の記述を追加して保存します。
※Vimでは[H][J][K][L]でカーソル移動、[A]で入力モード開始、[esc]で入力モード終了、:wqコマンドで保存・終了することができます。また、キーボードが英語配列で認識される場合があります。rtmp { server { listen 1935; chunk_size 4096; application live { live on; record off; } } }
- コマンドラインコンソールで次のコマンドを実行し、nginx を再起動してコンフィグファイルの変更を反映します。
$ sudo apt install libnginx-mod-rtmp -y
コンフィグファイルに誤りがある場合はここでエラーが発生しますので、2.の設定を見直してください。
$ sudo systemctl restart nginx
インスタンス一覧の操作メニューで、「スナップショットの作成」をクリックしてスナップショットを作成します。 スナップショットの作成
スナップショットの作成が完了したら、インスタンスは停止・削除してしまって構いません。
MECダイレクトに接続したインスタンスの作成 MECダイレクト接続手順にしたがって、SR-IOV対応ポートを作成し、インスタンスを起動します。
- セキュリティグループには、以下の受信ルールも追加します。
- ルール:カスタム TCP ルール
- 方向:受信
- 解放するポート:ポート
- ポート:1935
- 接続相手:CIDR
- CIDR:MECダイレクト内で接続を許可する配信用 PC・視聴用 PC のIPアドレス帯
- インスタンス起動ダイアログの「ソース」タブでは、下記のように選択します。
- 「ブートソースを選択してください」は「インスタンスのスナップショット」を選択してください。
- 「新規ボリュームの作成」は「いいえ」を選択してください。
- ブートソースは、スナップショットの作成で作成したスナップショットを選択してください。
配信用PCに配信ソフトウェアOBS Studioをインストールし、映像をインスタンスに送信します。 配信用 PC の準備
MECダイレクトではなくインターネットに接続した状態で OBS Studio のインストール OBS ウェブサイトにアクセスし、配信用PCのOS等の環境に合わせたOBS Studioをダウンロード・インストールします。
インターネットとの接続を切断してから、以下のドキュメントを参考に配信用 PCをMECダイレクトに接続します。 MECダイレクトへの接続
OBS Studio の初期設定
- OBS Studio を起動します。
- どのような目的に最適化するかを指定して 次へ をクリックします。
- 配信の解像度とビットレートを選択して 次へ をクリックします。より小さい値を選択することで、映像の質は落ちますが PC の負荷や通信量を減らすことができます。
- 配信の送信先を設定していきます。
- サービス は カスタム を選択します。
- サーバー は「rtmp://<インスタンスのIPアドレス>/live」とします。
- ストリームキー は視聴 URL の末尾につくチャンネル名のようなものです。任意の英字文字列を設定してください。
- ハードウェアエンコードを優先する のチェックは外しておきます。チェックを入れることで画質は落ちますが PC の負荷を減らすことができます。
- 帯域幅のテストでビットレートを推定する のチェックは外します。
入力が完了したら、 次へ を押します。自動でエンコーディングのテストが行われ、設定が表示されるので 設定を適用 をクリックします。
これらの設定は コントロール ドックまたは ファイル メニューの 設定 で後から変更できます。
配信する映像の設定・レイアウト
- ソース ドックの + ボタンを押し、レイアウトしたいソース(出力映像の出所)の種類を選択します。
- 新規にソースを作成する場合は 新規作成 にチェックを入れて ソース ドックに表示する名称を入力し、 OK をクリックします。
- 既存のソースを複製する場合は 既存を追加 にチェックを入れて複製するソースを選択し、 OK をクリックします。
- ソースが画面に反映されるので、クリックで選択し、輪郭をドラッグすることでレイアウトします。複数のソースを追加してレイアウトすることも可能です。
例えばウィンドウの表示内容を使用する場合は ウィンドウキャプチャ 、接続したカメラ等から取得した映像を使用する場合は 映像キャプチャデバイス を選択します。
その後、具体的にどのソースを選択するか( ウィンドウキャプチャ であればどのウィンドウの表示内容を使用するか)を決定し、 OK をクリックします。この際、OBS Studio を再起動した際などのソースの検出ルールを設定することもできます。
配信に反映する音声を設定していきます。 配信する音声の設定 音声ミキサー ドックに、利用可能な音声の入力方法が表示されています。それぞれ、スピーカーのアイコンをクリックして ON / OFF を切り替えることができます。スライダーを移動させることで、それぞれの入力方法の音量を調整できます。
- デスクトップ音声 は、スピーカーやイヤホンで PC から出力される音声です。
- マイク は PC 本体または接続したマイクからの入力音声です。
配信の開始・終了
- 配信を開始するときは、 コントロール ドックの 配信開始 を押します。配信が開始されると 配信開始 ボタンが青い 配信終了 ボタンに変化します。
- 配信を終了するときは、 コントロール ドックの 配信終了 を押します。配信が終了すると 配信終了 ボタンが 配信開始 ボタンに戻ります。
視聴用 PC の準備
視聴用PCに視聴用ソフトウェアVLC media playerをインストールし、MECダイレクトに接続してインスタンスから映像を受信します。
- MECダイレクトではなくインターネットに接続した状態でVideoLAN ウェブサイトにアクセスし、視聴用PCのOS等の環境に合わせたVLC media playerをダウンロード・インストールします。
- インターネットとの接続を切断してから、以下を参考に視聴用PCをMECダイレクトに接続します。
- VLC media playerを起動します。
- メディア メニューの ネットワークストリームを開く から、視聴する配信の設定をします。
ネットワーク タブの ネットワークプロトコル グループの ネットワーク URL を入力してください: は「rtmp://<インスタンスのIPアドレス>/live/<ストリームキー>」とします。
再生 をクリックすると視聴開始します。