Vonageビデオを始めるためのベストプラクティス
このガイドでは、Vonage Video API を使い始めるためのベストプラクティスについて、環境の設定、良好なユーザ体験の確保、セキュリティとプライバシーなどのトピックを交えて説明します。
Video APIとは何ですか?
Vonage Videoは音声ビデオ通信にwebRTCを使用しており、以下のクライアントライブラリで構成されています。 ウェブ, iOS, アンドロイド, リアクト・ネイティブ, ウィンドウズそして リナックスと同様である。 サーバーSDK そして REST API.主要な用語:
- Video APIプラットフォームは認証にトークンを使用しているため、プラットフォーム上でユーザーを作成する心配はない。
- セッション:セッションとは、コネクションとストリームの論理的なグループである。同じセッション内の接続は、メッセージを交換することができる。セッションは、参加者が互いにやり取りできる「仮想的な部屋」と考えてください。トラブルシューティングが難しくなり、実装の安全性が低下する可能性があるため、セッションは再利用すべきではない。
- 接続コネクションとは、セッションに参加し、メッセージを送受信できるエンドポイントである。コネクションにはプレゼンスがあり、接続されていてメッセージを受信できるか、切断されているかのどちらかである。
- ストリーム2つのコネクション間のメディアストリーム。これは、メディアを含む実際のバイトが交換されていることを意味する。メディアはオーディオのみ、またはオーディオとビデオで構成できます。スクリーンシェアやカスタムストリームを作成することもできます。
- 出版社メディアストリームを公開するクライアント
- 購読者メディアストリームを受信するクライアント。
Video API がどのようなものであるかについての詳しい情報は 技術詳細 また、Video APIを利用するための詳細なガイドも、以下のページにあります。 はじめに.
プロジェクトとサーバーのベストプラクティス
環境の設定
ビデオアプリケーションを設計する際には、テスト用と本番用の2つの環境を用意することを検討してください。簡単な項目をテストしたり、問題を再現したりするには、以下のリンクにあるプレイグラウンドを使用することもできます:
- 開発環境と本番環境など、環境ごとにアプリケーションを作成する。
- 遊び場
API(およびSDK)のバージョン管理を理解する
Enterprise環境をご利用のお客様は、新規作成されたアプリケーションはデフォルトでStandard環境を使用することにご注意ください。Standard環境からEnterprise環境に切り替える必要がある場合は アプリケーション設定.
アプリケーションがEnterprise JS SDKを確実に呼び出すようにするには、ソース=次のように使用します。 https://video.enterprise.vonage.com/v2/js/opentok.js SDKの長期サポートを受けることができます。
詳しくは エンタープライズ環境ガイド。
アカウント認証情報の設定に関するベストプラクティス
アカウント認証情報を作成する際には、以下のガイドラインに留意してください:
アプリケーションIDと秘密鍵
- Video API KeyとSecretは使用せず、Vonage Applicationを使用します。
- 秘密鍵は公開リポジトリに公開せず、秘密にしておくこと。
- クライアント・ライブラリやコンパイル済みのモバイルSDKに秘密鍵を保存しないでください。
- クライアントアプリケーションやモバイルアプリケーションからREST APIコールを行わないでください。秘密鍵が公開され、アカウントが脆弱になります。アプリケーションIDのみを公開情報とみなしてください。
セッションID
- 常に新しい
sessionId新しいセッションが作成されるたびに - セッションのクオリティ・スコアとデータは、以下によって指数化される。
sessionId.1回につき複数の会話(会議)がある場合sessionIdを使用してデバッグすることは困難です。 インスペクターツール再利用されるからsessionIdは、エンドユーザーが実際に体験する通話品質よりも低い総合品質スコアを報告する傾向がある。
トークン
- トークンを生成するサーバーは、セキュア/認証されたエンドポイントの背後に配置する必要があります。
- 参加者ごとに常に新しいトークンを生成する。
- トークンを保管したり再利用したりしないでください。
- デフォルトでは、トークンの有効期限は24時間で、接続時にチェックされます。ユースケースやアプリケーションに応じて、必要に応じて有効期限を調整してください。
- トークンには(data パラメータを使用して)参加者を識別するためのユーザー名などの追加情報を追加しますが、個人情報は絶対に使用しないでください。
- モデレーター、パブリッシャー、購読者などの役割を設定します。
- トークンの詳細については、以下をご覧ください。 トークン作成の概要.
メディア・ルーターとメディア・モードについて
セッションを作成するときに、セッション内のクライアントがどのようにオーディオビデオストリームを送信するかを指定します。中継モードとルーティングモードの2つのオプションがあります:
中継モード:
このメディアモードはVonageメディアサーバを使用せず、参加者間で直接メディア接続を試みます。中継モードを使用するかどうかを決定する前に、以下を必ず考慮してください:
- アーカイブ(録画)、SIP統合、ライブ・ストリーミング、エクスペリエンス・コンポーザーなどのプラットフォーム機能は不要。
- ユースケースは1対1の3者間セッションのみであること
- 参加者間の直接メディアが望ましい場合
- エンド・ツー・エンドのメディア暗号化が必要
メディアはクライアント間で交換されるため、中継モードではメディアの品質は管理 されないことに注意。したがって、サブスクライバのフレームレートや解像度を設定することはできません。トークンの詳細については スケーラブルなビデオ ページを参照されたい。
ルーティング・モード:
このメディアモードはVonageメディアサーバを使用します。ルーティングモードを使用するかどうかを決定する前に、以下を確認してください:
- ビデオセッションの参加者が3人以上であること
- アーカイブの必要性
- メディアの品質管理が必要(オーディオのフォールバックとビデオのリカバリー)
- SIP相互接続の必要性
- インタラクティブ放送やライブ・ストリーミング放送を使用する必要がある場合
- エンドツーエンドの暗号化にはアドオン契約が必要で、すべてのSDKでサポートされているわけではありません。
メディアモードについての詳細は セッション作成の概要.
ルーティング・モードでのエンド・ツー・エンド暗号化の詳細については、以下をご覧ください。 エンド・ツー・エンドの暗号化 ページを参照されたい。
アダプティブ・メディア・ルーティング
OpenTok.js v2.24.7 以降、ルーティングされたセッションは、可能であればアダプティブ・メディア・ルーティングを使用するように最適化されます。アダプティブ・メディア・ルーティングは、2 人の参加者間のメディア・パフォーマンスを最適化するために、1 対 1 のビデオ・ストリーミングでメディア・ルーターなしでメディアを中継できるかどうかを判断します。ルーティングされたセッションは、3人以上の参加者がいるセッション、アーカイブ、ライブ ストリーミング放送、SIP相互接続、エクスペリエンス コンポーザー、オーディオ コネクターなど、必要に応じてメディア ルーターを使用するようにメディア ルーティングを自動的に適応させます。
オーディオ・フォールバック
ルーティングモードでは、帯域幅が低すぎてビデオ通話をサポートできない場合、Vonage SDKは自動的に音声のみのモードにフォールバックします。ただし、この動作をオーバーライドしたい場合は、audioFallbackを false にある。 OT.initPublisher.
Getstats メソッド
上記のカスタムオーディオフォールバックの実装に加え ゲッツスタッツ() ポーリングは、接続の品質に関する情報を取得し、ユーザーにリアルタイムで情報を表示したり、トラブルシューティングの目的で使用することができます。
Vonageインスペクターツール
について Vonageインスペクターツール を使用して、セッション中のメディア・パフォーマンスや、通話中に使用されたコーデック、モード(中継またはルーティング)、イベント、高度な機能を把握することができます。
レポート発行方法
インスペクターでエラーにフラグを立て、後で確認することも可能です。その レポート課題ID を使えば、セッションID を知らなくても検査官を検索することができます。
ブロードキャスト
Video APIは、インタラクティブ放送とライブストリーミング放送という、より多くの視聴者にライブ動画を公開するための2つのオプションをユーザーに提供する。
インタラクティブ放送
このタイプのブロードキャストでは、クライアントがお互いのストリームにサブスクライブすることで、お互いに交流することができます。このタイプのブロードキャストでは、最大15,000人のサブスクライバーをフルHDでサポートできることに注意してください。以下は、このブロードキャストを使用する際に考慮すべき点です:
訪問 Vonageスケーラブル・ビデオ・サイマルキャスト を参照してください。デフォルトでは、3つ目の接続が通話に参加すると、サイマルキャストが開始されます(これは、1対1の通話でサイマルキャストを回避するためです)。
ルーティングされたセッションのパブリッシャーに対して、デフォルトをオーバーライドしてスケーラブルビデオを無効にするには
scalableVideoオプションでOT.initPublisher()メソッドを使用してください。パブリッシャーが増えると、最大購読者数に影響が出ることに注意してください。最大購読者数を知るには 「双方向ビデオライブ放送」ガイド.大規模セッションの安定性を確保するために、接続イベントを抑制する。 「接続イベントの抑制」ガイド.
を使用すると、より大規模なWebRTCセッションが可能になります。 エクスペリエンス・コンポーザー.
ライブ・ストリーミング
このタイプの放送では、15,000人以上の加入者がストリームを購読できる。ビデオをブロードキャストするためのプロトコルには、RTMP(リアルタイム・メッセージング・プロトコル)とHLS(HTTPライブ・ストリーミング)の2種類があります。どちらを選択するにしても、より良い視聴体験のためにパブリッシャーの数を制限してください。
HLSとRTMPの比較
- HLSは無制限の数の加入者をサポートするが、RTMPはRTMP配信プラットフォームによって制限される。
- HLSは15秒から20秒遅れるのに対し、RTMP(Vonageのプラットフォームから)は5秒遅れる。ただし、RTMP配信プラットフォームからの遅延は含まれていない。
- 低遅延HLS(LL-HLS)は4~6秒遅れる
- HLS の再生は、すべてのブラウザでサポートされているわけではありませんが、flowplayer のようなプラグインを使用することができます。再生により、ユーザーは、ライブ・ストリームの最初から現在のライブ・ストリームに戻る、ビデオ・スクラビング(巻き戻し/早送り)を行うことができます。
- DVR モードは、HLS セッションを作成する際に有効にすることができます。これはアップル社の規格で、2時間のウィンドウ内でライブHLSの再生/一時停止と再開が可能です。
- HLS/RTMPのデフォルトの最大継続時間は4時間です。ブロードキャストをもっと長くする必要がある場合は、max durationプロパティを変更してください(最大は10時間です)。
- HLS/RTMPストリームは、最後のクライアントがセッションから切断してから60秒後に自動的に停止する。
レイアウト、最大視聴時間、ライブストリーミングの開始/停止方法など、ライブストリーミングの詳細については、以下をご覧ください。 ライブストリーミング放送ガイド.
ユーザーインターフェースとユーザーエクスペリエンスのベストプラクティス
一般的には、以下の文書を読み、それに従うことが推奨される。 UIカスタマイズ・ドキュメント をクリックし、アプリケーションに関連するセクションに従ってください。
良好なユーザー・エクスペリエンスの確保
プレコール・テスト
セッションに参加する前に、ユーザーのデバイスと接続がネットワークとハードウェアのテスト対象となるプレコールテストを追加します。テストごとに新しいセッションIDを生成し、より正確な結果を得るためにテストを少なくとも30秒間実行することを忘れないでください。
一般的な Vonage Precallテストツール Video API への一般的な接続テストに使用できます。
独自のPreCallテストを統合し、すべてのテストデータを収集したい場合は、いくつかのリソースが利用可能です:
- iOSとAndroidのGithubサンプル
- Javascriptネットワークテスト・パッケージ
- また、Precallテストがどのように完全なアプリケーションに組み込むことができるかを確認することができます。 プリコールツール
ビデオ・ストリーム・ハンドラ
完了ハンドラは、Video API セッションへの接続、公開、サブスクライブ、シグナルの送信を試行したときにフィードバックを与えます。これらについて、ここで説明します:
OTオブジェクトの例外イベントをリッスンすることもできます。 例外イベント
接続が確立されると、通常はオーディオやビデオをパブリッシュし、他の参加者のストリームをサブスクライブすることになる。UIに関してパブリッシャーとサブスクライバーを管理する場合、パブリッシャーとサブスクライバーのインスタンスのそれぞれのイベントを利用することができます。パブリッシャーとサブスクライバーのイベントはそれぞれ異なることがあり、ここで説明する:
オーディオ・フォールバック
私たちのメディアサーバーは常にネットワークの状態をチェックし、エンドユーザーの接続に問題があることを検出した場合、パケットロスが15%以上になると、自動的にビデオを停止し、音声のみを再生します。このようなイベントがUIに表示され、影響を受けたユーザーに接続品質が低下し、音声のみに切り替わったことを警告することが推奨されます。音声のみに切り替えるためのしきい値は設定できません:
音声フォールバックはデフォルトで有効になっていますが、無効にするには audioFallbackEnabled パラメータが必要だ。 こちらを参照
セッションへの再接続
参加者がネットワーク関連の問題のためにセッションから突然ドロップすると、セッションへの再接続を試みます。よりよいユーザーエクスペリエンスのために、このようなイベントをキャプチャし、UIに適切に表示して、セッションに再接続しようとしていることをユーザーに知らせることを推奨します。より詳しい情報は これ.
アクティブスピーカー
オーディオのみのセッションの場合、オーディオレベルメーターを追加し、参加者が現在のアクティブスピーカーが誰かを視覚的に確認できるようにしてみてください。ビデオの場合、レイアウトを変更して、アクティブなスピーカーがより多くの画面を使えるようにしてみてください。この場合 audioLevelUpdated イベントが定期的に送信される。 UI調整.
ラウドネス検出器
ミュートされているユーザーがいつ話そうとしているかを識別するために、ラウドネス検出器を実装するのは良い方法です。この場合 オーディオレベル更新 イベントは、audioLevelが0に設定された状態で発生します。したがって、この状況を避けるためにAudioContextを使用する必要があります。
解像度/フレームレートのコントロール
サブスクライバオブジェクトは、受信解像度やフレームレートを下げるメソッドを提供します。これは、多数の参加者(モバイルで 4 人以上、デスクトッ プで 8 人以上)を表示する場合に、帯域幅と CPU リソースを節約するのに役立ちます。
オーディオの問題を避ける
大規模な通話では、参加者が不注意に通話にノイズやエコーを入れる可能性があります。参加者の数が多ければ多いほど、このような問題が発生する可能性が高くなるため、大規模なセッショ ンでは、参加ロジックでの自動ミュートや、全モデレーターのミュートボタンを検討するとよいでしょう。
レポート問題API
問題の報告 を使用すると、アプリケーションのエンド・コンシューマがクライアント・サイドから一意のissue IDをトリガすることができます。お客様はこのissue IDを保存し、サポートにチケットを発行する際に使用することができます。問題IDは、問題を報告した一意の接続IDを特定するのに役立ち、サポートからの調査に集中することができます。
場所のヒント
いつ セッションの作成ビデオ通話をホストする地域を設定できます。これは、ほとんどのユーザーが特定の地域から参加することが分かっている大規模なセッションに役立ちます。これは、特定のデータセンターが使用されることを保証するものではありません。 地域メディアゾーン.
インコール・エクスペリエンスの向上
- 背景ぼかし/置き換え - JS SDKでは、背景をぼかしたり、画像に置き換えたりする簡単な方法を提供しています。後者の場合、背景画像が公開ストリームと同じアスペクト比であることを確認してください。
fitMode設定 これ.背景のぼかしと置き換えは、最近のバージョンのChrome、Electron、Opera、Edgeでのみサポートされていることに注意してください。その他の(Chrome以外の)ブラウザやiOSではサポートされていません。
今でもそうなのか、確認する必要がある
メディア・プロセッサー - Vonage Media Processorライブラリを使用すると、当社のモバイルSDKをネイティブに使用するなど、デスクトップやモバイルで公開されたビデオにカスタム変換を適用できます。これは、背景のぼかしや置き換えだけでなく、拡張現実や空間オーディオなどのより高度なユースケースをサポートしています。
ライブキャプションAPI - このシンプルな API を使用して、音声ストリームを書き起こし、アプリケーション用のリアルタイム・キャプションを生成します。Live Captions APIを使用すると、Vonage Videoセッションで、トランスクリプションサービスを使用してエンドユーザにライブキャプションを表示できます。
オーディオ・コネクター - Audio Connectorを使用すると、ライブVonage Videoセッションから生のオーディオ(PCM 16 khz/16bit)ストリームをAWS、GCP、Azureなどの外部サービスに個別または混合して送信することができます。また、複数のWS接続を開いて音声ストリームを個別に送信することで、話者を特定することもできます。お客様はこの機能を使用して、医療用トランスクリプションやリアルタイム翻訳などのユースケースを構築しています。
婚約の特徴
チャット(テキストメッセージ) - を使用してメッセージを送信できます。 ヴォネージのシグナリングただし、メッセージはVonageのビデオプラットフォームには保存されません。テキストメッセージ機能を追加する場合は、テキストメッセージが送信された後にセッションに到着/参加するユーザーがいることを念頭に置いてください。また、Experience Composer を実装していない限り、セッションを録画してもテキスト メッセージはキャプチャされません。
スクリーンシェア
- 廊下ミラー効果を避けるために、画面を共有するパブリッシャーを隠すことを検討してください。
- ContentHint:詳細(スライドウェアなど)や動き(ビデオなど)に合わせてスクリーンシェアを最適化することができます。このフラグは、2.20以降に設定できます。
エクスペリエンス・コンポーザー
また、高度にカスタマイズされた構成レイアウトを作成するためのツールも提供しています。これにより、エンドユーザーのためのリッチなUI/UX体験を構築するWebアプリケーションを作成することができます。
- Vonageプラットフォームでレンダリングされるウェブページを作成する。
- ビデオコンテンツは、以下のような他のウェブコンテンツと混在させることができる。
- チャットウィンドウ
- ホワイトボード
- 高度なコンテンツとレイアウト
- コンテンツは動的で、セッション中に変更することができる
- 構成されたコンテンツは、ユーザーに提供されるリッチなUI/UXエクスペリエンスをそのままに、録画、アーカイブ、ブロードキャストするために、他のビデオセッションにパブリッシュすることができます。
詳細は エクスペリエンス・コンポーザー ドキュメンテーション
アーカイブのベストプラクティス
録画に関しては、コンポジットと個別ストリームの2種類がある。
作曲
- 最大16ストリームのビデオ録画に加え、音声のみを録画する34ストリームを追加し、合計50ストリームを録画可能
- すべてのメディアストリームを含む単一のMP4ファイル
- カスタマイズ可能なレイアウト
- 画面録画と、カスタムオーバーレイ、モンタージュ、ウォーターマークなどの高度なレイアウト( エクスペリエンス・コンポーザー)
- 自動録画開始可能(最大240分。録画が停止されない場合、新しいファイルへのアーカイブが開始されます)
- 可能である。 優先順位をつける 異なるレイアウトクラスを割り当てることで、特定のストリームを録画に含めることができます。
- SD、HD、FHDフォーマットに対応。
個々のストリーム
- オーディオとビデオの両方で最大50ストリームを録画可能
- 複数の個別ストリーム/ファイルをzipフォルダに保存
- カスタマイズされたコンテンツを作成するための後処理ツールとの使用を意図している。
- 自動起動できない
アーカイブの保管
アップロードに失敗した場合、クラウドストレージが設定されていない場合、またはストレージのフォールバックを無効にするオプションが選択されていない場合、Vonageは72時間アーカイブを保持します。アップロードフォールバックを有効にせず、何らかの理由でアップロードに失敗した場合、そのアーカイブは復元できないことにご注意ください。
- AWS S3:訪問 AWS S3を使ったアーカイブ を参照してください。
- アジュール訪問 Windows Azureコンテナを使用したアーカイブ を参照してください。
- グーグル:S3準拠モードを使用し、上記のS3の指示に従ってください。
アーカイブに関するFAQ
- アーカイブは暗号化されていますか?
デフォルトではない。しかし、構成されたアーカイブの暗号化機能を追加することができます。詳しくは アーカイブの暗号化
- 音声だけ、あるいは映像だけを録音することはできますか?
はい。を使用する REST APIを設定する。 hasVideo/hasAudio パラメータをtrueまたはfalseに設定する。
- アーカイブに名前をつけて、名前で識別できるようにできますか?
はい。を使用する REST APIを設定する。 name を希望する識別子に変更する。
- アーカイブのステータスはどのように確認できますか?
を使用する。 アーカイブ検査官.
- セッションの特定のストリームを録画できますか?
はい。 アーカイブに含めるストリームの選択.
- 異なるフォーマットで同時に録音できますか?
はい、1つのセッションに対して、複数のアーカイブを開始することができます。つまり、例えば、構成されたレイアウトを録画すると同時に、参加者ごとに個別の録画を行うことができます(個別アーカイブ)。
品質、性能、互換性
デバイス - マルチパーティセッションの場合、参加者が増えると処理能力が必要になるため、参加者数を制限するようにしてください。以下の参加者数を推奨します:
- モバイル=4(エンジニアリング公式声明は最大8までサポート)
- ノートパソコン = 10
- デスクトップ=25
解像度/フレームレートの制御 - Subscriber オブジェクトは、受信解像度および/またはフレームレートを下げるメソッドを提供します。これは、多数の参加者(モバイルで 4 人以上、デスクトッ プで 8 人以上)を表示する場合に、帯域幅と CPU リソースを節約するのに便利です。
プロキシ - ユーザーがプロキシ経由でしかインターネットにアクセスできない場合、それが "透過的 "プロキシであることを確認してください。そうでなければ、ブラウザでHTTPS接続に設定する必要があります。ネットワークチェックの流れを 制限付きネットワークガイドライン
ファイアウォール - 記事 "Vonage Video API ネットワーク接続要件は何ですか?" には、最速の通話セットアップ時間と最高品質のビデオを実現するための最適なポートに関する詳細情報が記載されています。
コーデック - VonageはVP9、VP8、H.264コーデックをサポートしています。 コーデック ガイドを参照してください。
セッション監視
セッション・モニタリング を使用すると、Webhook URL を登録できます。この機能を使用して、セッションやストリームを監視します。この例として、セッションの参加者数を制限することができます。 forceDisconnect 機能.司会者は、サーバーにアクションを呼び出して 強制切断のためのRESTコール.
また、使用状況の追跡にも使用できますが、より良い使用状況の追跡には インサイトAPI.
30分以内にイベント配信の失敗(コールバックURLへのHTTPリクエスト送信時に200の成功レスポンスを受け取らない)が50回以上発生した場合、セッション監視のイベント転送を無効にします。この場合、電子メールを送信します。アカウントページでセッションモニタリングを再度有効にすることができます。
ConnectionCreatedを使うことができる。 接続データ を使用してユーザーの接続を識別します。例えば、ユーザID、名前、またはクライアントを記述するその他のデータを渡すことができます(トークン・データに個人情報を使用しないでください)。
アドオン
ほとんどの顧客は、セルフサービスツールで設定したアドオンをワンクリックで購入(または削除)できる。
セキュリティとプライバシー
Vonage Video APIは、最高のセキュリティ標準を満たすようにカスタマイズできます。当社のプラットフォームはGDPRに準拠しており、HIPAAにも対応しています。ヨーロッパのお客様には、KBV認証(ドイツ)や、より良いデータの所有と保護(ヨーロッパ全体)を目的としたその他のプライバシー法などの、追加のローカル認証や標準に準拠することを可能にする拡張アドオンを提供しています。
続きを読む
- GDPR
- プライバシーポリシー
- すべての サブプロセッサー
- について データ処理補遺(DPA)
ご要望に応じて、NDAのもと、データ転送の影響評価、SOC2 Type 2監査報告書、外部ペンテストなど、当社のビデオプラットフォームの高いセキュリティ基準を証明する報告書を提供することができます。
価格
- Video API価格
- 参加者価格モデル(PPM)で Video API 月額料金を見積もるには? - 参加者1分あたり(PPM) - デフォルト価格モデル
- Subscribed Stream Minutes (SSM)価格モデルで毎月の Video API 料金を見積もる方法を教えてください。 - セッション加入者分(SSM) - レガシーな料金モデル
どこに行けばもっと助けてもらえますか?
ご不明な点がございましたら、下記までお問い合わせください。 Slackの開発者コミュニティまたは、弊社までご連絡ください。 APIサポートチーム.