WebRTC サーバを開発する理由

V
3 min readJun 3, 2015

--

ブラウザ同士がやりとりする WebRTC 、当たり前だが WebRTC をサーバ側に用意することでブラウザとサーバでのやりとりを実現する事ができる。

理由はたった一つでサーバ側で配信データをコントロールすることが出来るようになるからだ。

通常の WebRTC を使って一人が複数人に配信する場合はこうなる

だが、WebRTC サーバがあるとこうなる

大きく違うのはサーバがブラウザを管理したり、データの流れを管理できるようになることだ。これはニコニコ動画の生放送をイメージして貰えば良いと思う。

もちろんサーバを経由することでサーバ側での録画も可能になる。もともとクライアント側で録画はできたが、P2P で動作されるとサーバ側での録画は難しくなるからだ。

これらの仕組みをプラットフォームとして提供しているのが tokbox だ。

このプラットフォームは録画にも対応しているし、とても良くできている。スペインの電話会社がすぐ買収したのも頷ける。

さて、WebRTC サーバを作るためには色々な技術が必要になるが、一番の難関は DTLS-SRTP というよくわからない仕組みだ。

DTLS というのは TLS のデータグラム用(UDP や SCTP 向け)だ。これ意外にライブラリが無い。もちろん OpenSSL には実装されているのでそれ使えばいい。

が、あえて自前で実装してみた。理由は Erlang でスケールさせて動作させたかったから。

4 ヶ月だらだら開発していて、昨日やっと動作した。

SRTP というメディアチャネルで使われている音声や動画を暗号化する仕組み自体は手元にあるので、あとはこのあたりと連携すれば、WebRTC サーバまであと一息だ。

時雨堂 WebRTC サーバ開発ログ https://gist.github.com/voluntas/e914aa245fc26f3133c2

WebRTC サーバを使って小さな小さなニコ生システムを作れる日を夢見て開発している。

WebRTC は iOS/Android でもネイティブに動作するため、ゲームに組み込んでゲーム配信をしたりなどもできる。

もちろん、IoT としても使えるだろう。ロボットに WebRTC を組込、ブラウザでロボットの視点を見ることだってできる。

最近はドローンに WebRTC を積んだりしている人もでてきた。WebRTC はブラウザだけのものではない。オープンな音声や動画の配信/受信規格だ。

これは本当にスゴイことで、今後この技術が流行ることを祈りつつ、明日もだらだら開発を続けようと思う。

--

--

V
V

No responses yet