2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【初心者】AWS Wavelengthを使ってみる #4 (Janus によるWebRTC ビデオ通信)

Posted at

1. 目的

  • AWS Wavelengthのメリットは低遅延での通信が可能となること。「低遅延」がイメージできるようなサンプルアプリケーションとして、WebRTCでのビデオ通信などを実現できるソフトウェアである「Janus」をインストールし動作を確認する。
  • 無償でWebRTCが試せるソフトウェアを探していたところ、「仕事で WebRTC」というサイトがあり、有償/無償版のソフトウェアの一覧が掲載されていた。無償版のおすすめは「Janus」ということで、それを信じてやってみることとした。

2. やったこと

  • AWS Wavelength 上に EC2 インスタンスを作成し、Janus をインストールする。
  • 複数のPCやスマホから Janus サーバに接続し、相互にビデオ通信ができることを確認する。
  • 単純にEC2インスタンスにJanusをインストールしただけのため、この記事の内容はAWS Wavelengthではなく、AWSの通常のリージョンでも同様に実現可能。

3. 構成図

janus構成図.png

4. 実施手順

4.1 事前準備

  • 構成図のようなインフラ環境を準備する。
    • VPC作成
    • Wavelength Zoneに紐づくSubnet作成
    • Wavelength Zoneで起動するUbuntu 20.04 のEC2インスタンス作成
    • EC2インスタンスへのキャリアIP付与
    • SecurityGroupの設定(検証のためフルオープン。UDPのポート番号が動的なため)

4.2 Janusの構築

  • 公式の導入手順もあるが、「Janusで自前のWebRTCビデオチャットサーバー」が非常に分かりやすいため、基本的にこのサイトの手順に沿ってそのまま実施する。
  • 上記のサイトの手順通りに、作成したインスタンス上で以下のような内容を実施する。
    • 各種ライブラリ、及びJanusそのもののインストール
    • nginx、自己署名証明書の設定
    • Janusのhttps対応設定
  • AWS上で利用する場合、上記までの手順に加えて、インスタンスに付与されているプライベートIPと、キャリアIPとのマッピングの情報をJanusに対して設定する必要がある。「Setting up Janus WebRTC on AWS」を参考に、Janusの設定ファイル /opt/janus/etc/janus/janus.jcfgの301行目、nat_1_1_mapping = "x.x.x.x" のところに、インスタンスに付与したキャリアIPを設定する。
/opt/janus/etc/janus/janus.jcfg(該当行付近)
# if the Janus is deployed in a DMZ between two 1-1 NAT for internal and
# external users.
nat_1_1_mapping = "x.x.x.x(インスタンスに付与したキャリアIP)"
  • Janus を起動する。
$ sudo /opt/janus/bin/janus

 

4.3 動作確認

  • PC(Windows10, auスマホでテザリング)のブラウザから、https://(キャリアIP) にアクセスする。自己署名証明書を使用しているため、「接続がプライベートではありません」のような警告が表示されるが、了解の上アクセスする。
  • いくつかのDemo用ツールがデフォルトで用意されているが、「Video Room」が分かりやすい。メニューから 「Demos -> Video Room」 を選択する。

janus01a.png

  • 「Start」を押してビデオ会議を開始する。

janus02a.png

  • 参加者名(今回はpcuser)を入力して、「Join the room」を押す。

janus03a.png

  • 成功すると、「Local Video」として、自分のPCカメラの映像が表示される。もし「Probably a network error, is the server down? [object Object]」というエラーが出る場合、https://(キャリアIP):8089/ に手動でアクセスし、再度自己署名証明書の警告を出して、了解のアクセスをする。(Janusのアプリにアクセスするところからport番号が変わるため、自己署名証明書に対する承認が再度必要になる場合がある)

janus04a.png

  • スマホからも同じようにアクセスすると、PC側にスマホ側の映像が出る。ビデオ会議のように、相互に映像や音が伝送されることを確認できる。

janus05a.png

5. 所感

  • WebRTCでの映像伝送の雰囲気が分かるような環境は作ることができた。画面をカスタマイズするなど、もう少し工夫ができるようにしたい。
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?