Skip to content

Instantly share code, notes, and snippets.

@voluntas
Last active January 10, 2022 06:51
Show Gist options
  • Star 22 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save voluntas/a9519de94f92102cc22b5f723d03dbd6 to your computer and use it in GitHub Desktop.
Save voluntas/a9519de94f92102cc22b5f723d03dbd6 to your computer and use it in GitHub Desktop.
WebRTC P2P+MCU Azuki (仮)

WebRTC P2P+MCU Azuki (仮)

日時

2020-05-06

時雨堂

バージョン

2020.5

このプロダクトに興味がある人はこの資料に Star をつけてもらえると嬉しいです。

depth

1

概要

この製品はプロトタイプ開発中です

WebRTC P2P+MCU Azuki は NIVIDA の Jetson AGX Xavier や Jetson Xavier NX で動作する WebRTC P2P+MCU を開発、オープンソースにて提供していくプロジェクトです。

P2P+MCU

通常 MCU はグローバルに置いて稼働するのが普通ですが、 Azuki は WebRTC の P2P 機能を利用することで、自宅に置いてある Jetson Xavier で利用可能です。

仕組みとしては Azuki と参加者が個別に 1:1 外部のトンネルサーバを利用して接続します。Azuki は参加者から送られてきた音声と映像を合成し、参加者に返します。

グローバルにリレーサーバと STUN/TURN サーバが立っている必要がありますが、こちらは時雨堂がサービスとして無料で提供予定です。もちろん自分で立てることも可能です。

最初のうち

特徴

  • P2P を利用した MCU 機能を提供
  • H.265 / Opus が利用可能
  • VP9 / Opus が利用可能
  • NVIDIA Jetson Xavier シリーズが持っているハードウェアエンコーダ/デコーダを利用します

機能紹介

P2P+MCU

Azuki を使ってインターネット越しで MCU 機能を利用する仕組みです。グローバルにあるリレーサーバや STUN/TURN サーバを利用します。

自宅での利用を想定しています。

MCU

Azuki をクローズドネットワークで利用する仕組みです。Azukiが持っているシグナリングサーバに接続します。TURN や STUN は提供しないため UDP/TCP で通信が利用できる必要があります。

閉ざされた環境での利用を想定しています。例えば病院などです。

H.265

Jetosn に内蔵されている H.265 ハードウェアエンコーダを利用します。クライアントはクローズドソースで提供するアプリケーションを利用します。

H.265 のハードウェアエンコーダが動く端末が必要です。macOS では VideoToolbox 、Windows では Intel Media SDK を利用します。

STUN/TURN サーバ

P2P+MCU で利用する場合は STUN/TURN サーバが必要になります。

リレーサーバ

イメージとしては認証があり、TURN サーバの払い出しを行う Ngrok です

P2P+MCU で利用する場合は利用ユーザがアクセス可能なリレーサーバが必要になります。 リレーサーバ経由で Azuki 内蔵のシグナリングサーバと通信します。

MCU で利用する場合は Azuki が内蔵しているサーバが利用可能です。

構成

P2P+MCU

image

  • X と Y はリレーサーバを利用し Azuki と 1:1 でつなぎます
  • Z は Azuki がローカルにあるため Azuki のシグナリングサーバを利用して Azuki と 1:1 でつなぎます
  • Azuki は X と Y と Z の映像を合成し、X と Y と Z に配信します
  • Y は TURN サーバ経由で Azuki と接続します

サービス

まだあまり考えていませんが、非商用利用限定で利用可能なリレーサーバと STUN/TURN サーバを無料で提供予定です。

P2P+MCU を気軽に始めることが可能です。

提供

WebRTC P2P+MCU Azuki (仮)

  • オープンソース
    • Apache License 2.0
  • Jetson Nano または Jetson Xavier NX で動作
  • H.265 / H.264 はソフトウェアエンコードは提供しない

Azuki デスクトップ

  • クローズドソース
  • 商用利用する場合は年間ライセンス費用が発生
  • H.265 / H.264 はソフトウェアエンコードは提供しない
    • Intel Media SDK
    • VideoToolbox

Azuki モバイル

  • クローズドソース
  • 商用利用する場合は年間ライセンス費用が発生
  • H.265 / H.264 はソフトウェアエンコードは提供しない

Azuki リレーサーバ

  • オープンソース
    • Apache License 2.0
  • 無料で利用可能
  • 商用利用禁止

STUN/TURN サービス

  • 無料で利用可能
  • 商用利用禁止
  • coturn を利用予定

利益モデル

  • クライアントをクローズドソース提供
    • 商用利用する場合は年間でライセンス費用がかかります
    • 非商用利用の場合はライセンス費用はかかりません
  • 有償でのテクニカルサポートを提供します

参考資料

リリースノート

2020-05-06

  • Jetson Xavier 系のみの対応とした

2020-05-04

再出発

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment