https://d226lax1qjow5r.cloudfront.net/blog/blogposts/open-source-video-conferencing/videoapi_opensource_1200x600.png

オープンソースビデオ会議

最終更新日 March 24, 2021

所要時間:8 分

Vonage Video(旧OpenTok / TokBox)とは何ですか?

Vonage Video (旧TokBox / OpenTok)は、企業がモバイル、ウェブ、デスクトップアプリケーション内でカスタムビデオ体験を構築できるAPIです。

この API は、1 対 1 のビデオ相談、グループ ビデオ チャット、数千人への大規模なブロードキャストなど、あらゆる Video ユースケースをサポートします。どのようなセッションも録画することができ、どのようにファイルを構成し、どのような方法で安全に配信するかをコントロールすることができます。アナリティクスでは、ダッシュボードでプロジェクトごとのサマリーを見たり、セッションごとのアナリティクスを見ることができます。 アドバンスド・インサイトAPI.Video API を使用すると、当社の標準的な常時暗号化機能と GDPR 準拠機能をベースに、高度なセキュリティ、ファイアウォール制御、地域隔離、コンプライアンス証明書オプションなど、幅広い機能を利用できます。Vonage Videoサービスには、他にも多くの機能とサービスがあります。これらの詳細については、ランディングページをご覧ください。

WebRTCとは?

Web Real-Time Communication (WebRTC)は、WebブラウザやモバイルアプリケーションにAPIによるリアルタイム通信を提供する、フリーでオープンソースのプロジェクトです。VideoRTCを利用することで、ウェブブラウザ内で音声や映像の通信が可能になり、ピアツーピアで直接通信を行うことができるため、プラグインのインストールやネイティブアプリケーションのダウンロードが不要になります。

Vonageオープンソース会議・録画とは?

Vonage Open Source Conferencing and Recording は、プライベートなウェブベースのビデオ会議ソリューションです。Vonage Video API Platform(旧OpenTok API)をベースとし、Vonage Video SDKとAPIを使用します。お客様のサーバーにアプリをデプロイすることで、WebRTC上でビデオ会議アプリを動作させることができます。

ご自分のサーバーを持たずに、このサービスを試したい方は、ぜひ私たちの デモページ.このデモページは、オープンソース会議・録画パッケージのデフォルトバージョンによってホストされています。 Githubリポジトリ.

ビデオ会議ソフトをホストするには?

前提条件

インストール

このサーバーを実行するには、リポジトリをクローンし、必要なサードパーティ・ライブラリをすべてインストールする必要があります。ターミナルで以下の3つのコマンドを実行してください:

git clone git@github.com:opentok/opentok-rtc.git cd opentok-rtc npm install # Installs required packages

最小構成

必要な依存関係をすべてインストールしたら、いくつかの設定が必要です。最低限必要なのは、Vonage Video Dashboardから取得できるAPIキーとシークレットを定義することです。

手始めに config.jsonファイルを作成する必要がある。 config.jsonファイルをコピーしてくれる。コマンドを実行する:

cp config/example.json config/config.json

このファイルを開くと、最初の数行が下の例のようになる:

{
   "showTos": false,
   "meetingsRatePerMinute": 30,
   "OpenTok":{
      "apiKey": "<key>",
      "apiSecret": "<secret>",
      "publisherResolution": "640x480"
   },
   ...
}

必ず交換してください。 <key><secret>を Video API キーと、Vonage Video Dashboard から取得した対応する API シークレットに置き換えてください。

ファイル内に認証情報を保持したくない場合は、代わりに環境変数を使うことができる。 config.jsonファイルに保存したくない場合は、代わりに環境変数を使うことができる。以下のコマンドを使って環境変数を設定できる。 <key><secret>をあなたの値に置き換えてください:

export TB_API_KEY= export TB_API_KEY=

サーバーの実行

RTCサーバーを実行する前に、Redisが起動していることを確認する必要があるので、ターミナルで以下のコマンドを入力する:

redis-server

デフォルトのポート(8123)を含むすべてのデフォルト設定でlocalhost上でサーバーを実行するための基本コマンドは以下のとおりである:

node start

しかし、よりカスタマイズされたセットアップのために、コマンドに追加できるフラグもいくつかある。以下にその例をいくつか挙げる:

node server -p 8080 # To run the server on a different port to the default node server -d # To run the server as a daemon in the background

SSLを使用する場合、サーバーはSSL証明書の名前を serverCert.pemという名前のSSL秘密鍵ファイルが必要です。 serverKey.pem.事前に生成された自己署名SSL証明書のペアは sampleCertsディレクトリにあります。

フラグ -Sはセキュアサーバーの起動を有効にする必要があることをサーバーに伝え、フラグ -C <dir>フラグとディレクトリ名は、証明書がどこにあるかをサーバーに知らせる。これらの証明書を使用してサーバーを実行するには、次のように入力する:

node server -S -C sampleCerts

利用可能なオプションの詳細については node server -h.

追加設定オプション

その他にも、ニーズに合わせて設定できるオプションがたくさんある。これらのオプションは、config.jsonファイルか環境変数で設定できます。これらのオプションのキーは、以下の例では各選択肢で最初に指定されています:

  • appName(config.json)または APP_NAME(環境変数) -- ビデオ通話のライフサイクル中、さまざまな場所に表示されるアプリケーション名。デフォルト値は「Vonage Video Conferencing」。

  • introText(config.json) / INTRO_TEXT(環境変数) -- ウィジェットを表示する最初のページでアプリケーション名の下に表示されるテキスト。 precallウィジェットを表示する最初のページで、アプリケーション名の下に表示されるテキスト。デフォルト値は'Welcome to Video Conferencing'です。

  • showTos(config.json) / SHOW_TOS(環境変数) -- アプリが利用規約ダイアログボックスを表示し、ルームに参加する前に利用規約への同意を求めるかどうか。デフォルト値は false.

  • meetingsRatePerMinute(config.json) / MEETINGS_RATE_PER_MINUTE(環境変数) -- 1分間に作成できる新しいミーティングの最大量を決定します。ユーザーはすでに存在するミーティングに参加することができます。そうでない場合は、現在サービスが利用できないというメッセージが表示されます。この値を負の数に設定すると、レート制限がオフになり、すべてのミーティングが許可されます。この値を0に設定すると、すべての新規ミーティングが拒否されます。デフォルト値は-1です。

  • minMeetingNameLength(config.json) / MIN_MEETING_NAME_LENGTH(環境変数) -- 作成される会議名の最小の長さ。デフォルト値の0は、最小の長さがないことを示す。(設定ファイルで minMeetingNameLength設定で設定できる)。デフォルト値は0。

  • maxUsersPerRoom(config.json) / MAX_USERS_PER_ROOM(環境変数) -- 同時に入室できるユーザーの最大数。これをデフォルトの0に設定すると、任意の数のユーザーを許可することができます。デフォルト値は0です。

  • enableRoomLocking(config.json) / ENABLE_ROOM_LOCKING(環境変数) -- オプションメニューに「会議をロック」コマンドを含めるかどうか。このコマンドにより、ユーザーは新しい参加者が会議に参加できないようにすることができる。デフォルト値は true.

  • autoGenerateRoomName(config.json) / AUTO_GENERATE_ROOM_NAME(環境変数) -- ユーザに代わって部屋名を自動生成するかどうか。この設定がオンの場合、新しい会議室の名前を生成するためにhaikunatorを使用します。オフにした場合、ユーザーはランディングページにアクセスした際に部屋/ミーティング名を入力するよう促され、入力するまで先に進むことができません。デフォルト値は true.

  • enableEmoji(config.json) / ENABLE_EMOJI(環境変数) -- テキストチャットウィジェットで絵文字サポートを有効にするかどうか。

UIのカスタマイズ

Vonageオープンソース会議および録音UIのカスタマイズ方法については、以下を参照してください。 UIのカスタマイズ.

私のサービスはどのように運営されていますか?

健康状態チェックのエンドポイントは /server/health.このURLをロードして、アプリが必要なすべての外部サービスに接続できるかどうかをチェックできます。成功すると、このヘルスチェックエンドポイントは、HTTPステータスコードが200に設定されたレスポンスと、以下のようなJSONを送信します:

{
  "name": "opentok-rtc",
  "version": "4.1.1",
  "gitHash": "312903cd043d5267bc11639718c47a9b313c1663",
  "opentok": true,
  "googleAuth": true,
  "status": "pass"
}

不合格の健康診断の例は以下のようなものである:

{
  "name": "opentok-rtc",
  "version": "4.1.1",
  "git_hash": "312903cd043d5267bc11639718c47a9b313c1663",
  "opentok": false,
  "error": "OpenTok API server timeout exceeded.",
  "status": "fail"
}

もっと読む

シェア:

https://a.storyblok.com/f/270183/250x250/b052219541/greg-holmes.png
Greg Holmesヴォネージの卒業生

元Vonage開発者エデュケーター。PHPのバックグラウンドを持つが、一つの言語に縛られることはない。熱心なゲーマーでRaspberry pi愛好家。屋内クライミング施設でボルダリングをしていることが多い。