Skip to content

Instantly share code, notes, and snippets.

@voluntas
Last active April 4, 2021 12:18
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Embed
What would you like to do?
WebRTC SFU Sora 紹介資料

WebRTC SFU Sora 紹介資料

日時:2021-04-04
作:株式会社時雨堂
バージョン:2021.1
url:https://sora.shiguredo.jp/

概要

これは 株式会社時雨堂 が開発、販売する WebRTC SFU Sora の紹介資料です。他の資料と違い技術的な難易度を下げた資料です。

興味ある方は sora at shiguredo.jp までご連絡ください。 (このメールアドレスへの特定電子メールの送信を拒否いたします)

注意

これは SFU 製品の紹介資料のため SFU のメリットを強く押し出しています。

WebRTC について

WebRTC とはブラウザ上で利用できるリアルタイムなコミニュケーションを行うための技術です。

リアルタイムなコミニュケーションで一番イメージしやすいのが電話です。つまり、お互いの意思を遅延なく伝えるための技術です。

電話やテレビ会議であれば、すでにある技術と思われると思います。 WebRTC はその技術をブラウザ上で実現したことに大きな意味があります。

今の時代、 皆がブラウザを利用しています。この一般的なツールであるブラウザに WebRTC が組み込まれています。そのため、ブラウザとブラウザで電話のように音声の双方向でのやりとり、またテレビ会議のように複数人数で音声と映像のやりとりが可能になりました。

利用例

ビデオチャット

WebRTC の利用例として一番多いのがビデオチャットと呼ばれるものです。基本的には 1 対 1 で利用する事が多いです。

例えば、あるショッピングサイトを見ていて、もう少し詳しい説明が必要になった時、そのブラウザをクリックすることで店員と直接音声や映像でやりとりができます。

または、ウェブサービスを利用していて、うまく動かない場合にヘルプを押すことで、今困っている状況をサポート担当者に音声や映像で伝えることができます。

つまり WebRTC という技術は今まで双方向のやり取りがの文字だけだった世界に音声や映像でのやりとりをいれこめる技術です。

ビデオ会議

ビデオチャットと同じようによく採用されるのがビデオ会議です。数拠点を結んで会議をする際にりようされます。

ブラウザだけで気軽に会議がはじめられるのが魅力です。

ビデオセミナー

ブラウザがあれば良いというのは大きなメリットです。例えばセミナーを開きたいと思うと場所の確保が難しくなります。

WebRTC を利用すればブラウザ一つでセミナーを開くことができます。もちろんセミナー受講者もブラウザだけで問題ありません。リアルタイムであるため、気になったタイミングで気軽に質問することもできます。

また、複数人数が話すパネルディスカッションのような事も簡単に実現できます。

技術としての WebRTC

WebRTC という技術はとても複雑です。理由は単純で遅延を少なく双方向で音声や映像をやりとりするという技術がもともと難しい技術です。

電話やメッセージアプリ(FaceTime や LINE、 Facebook Messenger)などで慣れてしまってるため、あまり難しくないという印象を持たれてしまうため、誤解されがちです。(ちなみに Facebook Messagnger は WebRTC を利用しています)

さらに WebRTC は通話している人同士が直接やりとりをする仕組みを採用しています。この仕組はとても効率が良いのですが、その仕組を実現するためにとても複雑な仕組みが必要になります。

さらに直接やり取りするためコントロールが難しいというデメリットもあります。

ビジネスとしての WebRTC

WebRTC は素晴らしい技術ですが、あくまでおまけでしかありません。これはただ遅延が少ない音声や映像を配信する仕組みでしかないためです。 この技術をどう使うかがとても重要です。

ただ音声や映像を 1 対 1 でやりとりするだけであれば WebRTC を使うことで誰もができてしまうためです。

WebRTC SFU とは

WebRTC SFU (Selective Forwarding Unit) とはブラウザ同士が直接やりとりするのではなく、サーバ経由でブラウザのやりとりをさせるという仕組みです。

つまり、ブラウザ <-> ブラウザ、というのをブラウザ <-> サーバ(WebRTC SFU) <-> ブラウザという中継をする仕組みです。

実は WebRTC でブラウザが直接やり取りするといっても、直接やり取りするまでにはサーバを経由して情報のやりとりが必要になります。そのため、結局サーバを用意しなければなりません。

また、もし直接やり取りできない場合結局サーバ経由でやりとりをする必要がでてきます。であれば、最初からサーバ経由でやりとりしてしまったほうが早いという考えが WebRTC SFU です。

サーバ経由でのメリット

一番わかりやすいメリットは サーバ経由にすることでブラウザの負荷を下げることが可能になる ということです。

ブラウザが直接複数のブラウザに映像を配信することは技術的には可能です。ただその分ネットワークの帯域やパソコンの負担が増大します。現実的に可能なのは 4 つまででしょう。

それをサーバが負担することで、多くのブラウザに配信することが可能になります。

WebRTC SFU Sora とは

株式会社時雨堂 が自社で 1 から開発した、 WebRTC SFU です。

パッケージ製品のため自社で用意したサーバにインストールして利用することが可能です。ライセンス費用は 100 同時接続で採用事例を公開可能であれば、年間 60 万円です。

現在は 1 台で最大 300 同時接続までとさせていただいています。

メリット

まずはメリットをできるだけ沢山

  • 動作確認までサーバが用意されていれば 15 分程度です
  • 必要最低限の機能に絞っているため価格が抑えられている
  • システム連携を前提としているため、組み込みやすい
  • 最新のブラウザに追従している
    • Chrome や Firefox は 4 週間でアップデートしています
  • 落ちないことを最優先にしている
  • 最新に追従している SDK をすべてオープンソースで公開している
    • 現時点では JavaScript と iOS と Android と Unity があります
    • SDK ではありませんが React Native 向けのライブラリも公開しています
  • WebRTC 準拠のため、開発する際に新しい知識は必要なく WebRTC の技術が利用できる
    • ブラウザ同士の WebRTC からでも移行しやすい
  • サーバで録画が可能
    • ブラウザ同士では実現できない機能です
  • スケールアップするように作られている
  • サーバ経由でも低遅延になるように作られている
  • できるだけ繋がるように作られている
  • 音声検出 (Audio Level) による映像の動的切替機能を搭載しています
  • End to End Encryption 向けのライブラリを提供している

とにかく簡単に使えて、安定して稼働することを目的として開発しています。 そのため、機能よりは安定性を優先しています。

また多機能になることで検証やテストのコストが跳ね上がり、リソース負担が増えることから、 製品の価格を抑えることが難しくなるため、機能をかなり絞って実装しています。

できるだけ外部連携をすることで解決をしていく方針です。

デメリット

  • SDK の有償サポートは行いません
    • ただしコミュニティを用意し、バグの対応などは最優先で行います
  • ベンダーロックインされる
    • パッケージ製品を採用する宿命なので、回避はできません
  • 大規模な配信ができない
    • 現時点では 1 万人へ遅延 1 秒未満での配信はできません
  • アップデートが自前で必要になる
    • ブラウザの追従をしているためアップデートが最低でも 6 ヶ月に 1 回発生します

検討資料

検討される人向けの資料を用意してあります。

WebRTC SFU Sora 検討資料

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