今後の WebRTC 事業戦略

時雨堂は WebRTC を利用した事業が今の所、上手く回っている。2015 年の 11 月から始めたので今年の 11 月でまる三年になる。

今後どう WebRTC 事業で何を実現していくのか、どこをターゲットとしていくのかをぼんやりとまとめてみた。

WebRTC SFU Sora を売上の軸にする

基本的には売上は WebRTC SFU Sora (以下 Sora) の年間利用ライセンスを販売することで、売上をあげる。それ以外は受けない。製品のカスタマイズや WebRTC のテクニカルなサポートなどもよほどのことがない限りは受けないようにしている。

今の所、 Sora だけで会社が回るところまでは売上が出ているのでそれを継続していく。

Sora の文字列やバイナリの超低遅延配信の対応

Sora は今まで音声や映像のみの配信に対応していた。ただ、最近文字列やバイナリを送ることが可能になる DataChannel への対応を進めている。

Sora を使うことで例えば配信者が音声と文字列やバイナリデータを超低遅延で 100 の視聴者に配信することができるようになる。

これは VR や AR といった XR という世界で利用できないだろうかと考え実装している。また今後エッジコンピューティングが来ると考えており、映像とバイナリデータを同時にサーバ経由で配信するという需要もあるだろう。

映像と音声、そして文字列とバイナリを超低遅延でサーバ経由で複数に遅れる仕組みとしての DataChannel 対応を進めている。2018 年内にはプレビュー版を提供していく予定だ。

Sora の大規模配信対応

WebRTC は超低遅延を実現するため、1 台のサーバで配信できる許容数がある。HLS/MPEG-DASH のように CDN を利用して大規模配信は今の所できない。

そのため、リレー構成を取ることで大規模配信にチャレンジしようとしている。

簡単に言えば Edge と Origin というサーバの種類にわける。Edge は配信者からの音声や映像、データをうけとる。Origin は Edge からそれらのデータを受け取り、視聴者へ配信するという仕組みだ。

最大 1 万クライアントの配信を超低遅延で実現できればと考えている。こちらは来年のどこかでプレビュー版をリリースできればと考えている。

複数画質の配信と動的切り替え

この最近ずっとやっていたのが、この複数画質を同時に配信者が送ることで視聴者が好きな画質で配信を見ることができるという仕組み。

画質を三種類と言っても三倍の負荷にはならず三割程度負荷が上がるだけで実現できる。

さらに、動的に視聴者側で画質を切り替えるための API の仕組みも用意した。この仕組を使うことで視聴者が好きなタイミングで好きな画質を見ることが可能になる。接続はつなげたままでだ。

複数画質の自動切り替え

前述した複数画質を Sora 側で視聴者の帯域状況を自動で判断し画質も自動で変えるという仕組みを検討している。

ただ、課題が多いことから長い戦いになりそうだとみており、来年中に結果を出せればと考えている。期待していてほしい。

WebRTC SFU で大規模な会議の実現

WebRTC SFU は合成をサーバ側で行わいない。そのため SFU 方式の課題である大規模な会議を解決する仕組みとして、スポットライト機能を実装した。

つまり音声を発した人を自動的に切り替えるという仕組み。これだと会議の参加者が 30 人いたとしても実際に参加者に配信されるのは 4 人のため、ブラウザ側の負担を減らすことができる。

更に暗号化の負担が高い WebRTC で音声を発していないユーザの音声や映像データは複合する前に破棄するという仕組みをとっている。音声を発したかどうかは暗号化されていない部分で判定が可能だから実現できる仕組みだ。

Sora を非営利であれば無料で利用可能なサービス

現在 Sora を使えるのは Sora を購入してもらうしかない。Anzu というサービスがあるが、限定的な機能しか利用できない。

そのため、OpenSora というプロジェクトを始めた。これは非営利目的であれば制限はあるが Sora を気軽に利用できる仕組みだ。

ウェブフックの機能だけマルチテナント化した Sora をサービスとして提供する。

ただし「転送量はユーザ全員で共有する」という仕組みになっており、誰かが使いすぎると配信できなくなったりする。

気軽に Sora を試してみたい人向けのプロジェクトで、サービス化を進めている。

WebRTC Native Client Momo のオープンソース化

今まさに Sora の開発のつぎに力を入れている。WebRTC をブラウザなしのバイナリ1つで実行すれば利用できるようにした仕組みで Momo というのがあるが、それを 1 から書き直してオープンソース化する OpenMomo というプロジェクトを進めている。

開発は自社では行わず社外の手伝ってくれている人たちにお願いしている。

オープンソースにすることでそれをいじってビジネスにつなげてもらいたいと考えている。

今の所様々な環境で利用可能にする予定だ。

  • Windows 10
  • Ubuntu 18.04
  • macOS 10.13
  • Raspbian (Raspberry Pi 3 B/B+)
  • Raspbian (Raspberry Pi Zero H/HW)

特にラズパイでは H.264 への変換映像をすべてハードウェアで行うことで CPU 使用率を 10 % 未満に抑えられる。さらにそれを実現することで Raspberry Pi Zero でも WebRTC な配信を実現可能にする。

様々な環境で、WebRTC の配信を実現していく仕組みをオープンにしていきたい。

オープンソースな SDK

Sora の SDK はすべてオープンソースで公開している。ライセンスもApache License 2.0 で、特に何か隠したりとかもない。

これはクライアント側の開発時になにか問題が出た時、ソースが気軽に読めるという状況は必須だろうという考えからだ。

今の所 JavaScript 、iOS 、Android の環境向けの SDK を用意している。さらに React Native 環境向けを追加し、今後は Unity への対応やWindows への対応を検討している。

SDK は常にオープンで公開していく。

サービスで稼がない

時雨堂は SaaS はやらない。パッケージ製品でのみ稼ぐ。保証のあるサービスをやるには会社が小さすぎる。あと儲かるまでの距離が長過ぎるため、体力勝負になってしまう。

まとめ

基本的に WebRTC に関してはサービス以外は取れる仕組みを作っていく。サービスは国内にも海外にもある、それを使ってもらえばいい。

コアになる Sora で稼いで、それ以外はオープンソースや無料で提供することで、他社と差別化を図っていく。コアな製品を持っているのを武器に戦っていく。

機能も WebRTC から逸脱することなく、WebRTC をよりよく使える機能だけに絞って実装していく。それ以上は無理をしない。それよりは品質や安定性を重視する。少機能で戦っていく。

今年から来年にかけてが勝負になりそうなので、今後も積極的なリソース投資を行っていきたい。

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store