Open4

Clubhouse リアルタイム配信の仕組みについて (妄想編)

ライセンス

Creative Commons — 表示 - 非営利 - 改変禁止 4.0 国際 — CC BY-NC-ND 4.0

前提

著者

  • 商用 WebRTC SFU 開発者
  • WebRTC プロトコルスタック実装者
  • End to End Encryption プロトコルスタック実装者
  • IRIAM 配信サーバ設計者

妄想

  • 求人にメディアサーバ系がないので SaaS だろうと思った
  • 利用しているリアルタイム配信サービスは Agora.io
    • DNS 見ただけ
    • ap-japan.agora.io が見えた
    • 東京リージョンに繋いでる
    • もともと地理的にサーバにアクセスさせて、あとはプライベートネットワークでサーバ間を繋ぐというのが強みのサービス
  • メディアルーター(転送するだけ) の仕組みを採用
  • 音声合成をサーバでやるというのは Agora にはないはずなので採用していないはず
    • そもそもサーバで音声合成はコストがかかるのと、いろいろ不便になるので今の時代採用する事はない
  • モバイルで完結しているサービスなので WebRTC は利用せず独自仕様
    • これは Agora 自体がアピールしている
    • ただし WebRTC 互換性をアピールしてるので利用している音声コーデックは Opus だろう
  • 利用しているサーバは Rackspace、 DigitalOcean、 Zenlayer などとのこと
  • Agora 自体が P2P を採用していない
    • 商用のリアルタイム重視のサービスでグループが前提になる場合、 P2P の採用はよほど理由がない限り採用しない
    • P2P 利用した瞬間に TURN 関連が必要になるため二度手間
    • 素直にサーバ経由にする
    • Zoom だろうが Google Meet だろうが Signal だろうが Webex だろうが全部サーバ経由
  • サーバ経由であればプッシュ型でも 1000 人以上の配信は可能
    • 片方向のプッシュでの大規模配信は多段構成にしていれば万の単位でも可能
    • Agora.io はプライベートネットワークでサーバを繋ぐのが強みの時点で多段前提だろう
  • 双方向 N 人を M 人に配信するモデルは、よくあるパターン
    • パネルディスカッションをイメージすれば良い
  • 視聴側が双方向に切り替えるという仕組みだろうと予想
    • そのため、視聴者(受信) が双方向(配信)側に切り替わるとき少しタイムラグがあると思う

雑感

  • 配信部分が自力ではなく、利用時間単位で課金されるサービスを利用しているので利益を出すのが大変そう
    • 小規模な間はいいが、中規模以降になると明らかに費用を圧迫してくる
  • メディアストリームを主軸としている場合には Discord のように完全に自力か定額で無制限に利用できる商用製品で DataPacket のような転送量制限がないサーバを使うといった選択肢をとらないと今後ツライ
  • Agora.io はデフォルトでは E2EE 対応していないので、話した音声全てが録音、解析されている可能性がある
    • もちろん自前で暗号化してから Agora.io に渡すことはできる
    • 明示的に E2EE を行っているというのが見つけられなかったので自分が利用する事は絶対にない
  • 自分が使いたいと思うのは E2EE が前提で ホワイトボードがある Clubhouse なのかもしれない、雑談しやすそう
  • 独自プロトコルについて
    • セキュリティ周りはしっかり検証しているだろうしブラウザ以外の部分では都合の良いプロトコルを採用するのは変ではない
    • Discord だってブラウザ以外では暗号周りを変えたりと独自実装はある
作成者以外のコメントは許可されていません