WebRTCへの取り組み
- WebRTC
- 2015/01/22
こんにちは。インフォコム技術企画室のがねこです。
今回はWeb上でリアルタイムコミュニケーションを実現する、WebRTCについての取り組みをご紹介します。
0. WebRTCとは
WebRTCは、Web Realtime Communication の略で、HTML5で取り入れられた規格の一つです。次のことが可能になります。
- JavaScriptから、カメラの映像や、マイクの音声を取得できる
- RTCPeerConnectionオブジェクトを使って、ブラウザ間で映像/音声/データを直接通信できる
1.調べる
WebRTCでは、Webブラウザからカメラを使うところまでは簡単です。しかし、それを使って通信をしようとすると一筋縄では行きません。
もちろん、便利なライブラリ(Peer.jsなど)やサービス(Skywayなど)があるので、それを使うとスムーズです。ところが、実際にWebRTCを使って様々な形態の通信を行ったり、そもそも通信ができない場合の原因を調べたりするには、仕組みを理解しておく必要があります。そこで基本から、徐々に複雑なことができるように調査、実験を行いました。分かったことは、HTML5Experts.jpというサイトにも投稿しています。
- カメラの使ってみる...HTML5でWebRTCを使ってみよう!「カメラを使ってみよう」編
- 通信開始の仲介を手動で行う...WebRTCに触ってみたいエンジニア必見!手動でWebRTC通信をつなげてみよう
- 通信開始を仲介サーバーを用意して行う...WebRTC初心者でも簡単にできる!Node.jsで仲介(シグナリング)を作ってみよう
- 複数人で通信を行う...シグナリングサーバーを応用! 「WebRTCを使って複数人で話してみよう」
- Firewall/NATを越えて通信を行う...壁を越えろ!WebRTCでNAT/Firewallを越えて通信しよう
- 1対多の片方向配信を行う...WebRTCでキャスしよう!片方向リアルタイム映像配信を作ろう
調査したことはほぼ全て公開してしまいましたが、そもそもオープンな規格なので、このような基礎的な情報は同じくオープンにするのが良いと考えています。
2.使う
社内で実際に使ってみて、運用のノウハウを蓄積してます。複数のオフィスがあるので、例えば次のような拠点間での少人数の打ち合わせに、skypeなどと併用しています。
- 東京 - 大阪
- 東京 - 四国
外部サービスと違い社内ネットワークで完結し、インターネット回線に負荷がかからないのが良いところです。
双方向のビデオチャット以外にも、片方向の映像配信も行っています。
- 社内でのプレゼンテーションの中継
- 特定オフィスで開催しているイベントの中継
映像や音声の品質を保つために、ITではなくAudio/Video系の機器についても試行錯誤しています。
さらに、社内で使っているビデオチャットをベースにして、試験的に社外にもビデオチャットのβサービスを公開しています。
動作保障はしかねますが、ご自由にお使いいただけます。
3. 遊ぶ
WebRTCはHTML5のさまざまな機能と組み合わせて使うことができます。
- CSS3と組み合わせての映像効果を付ける
- WebAudio API と組み合わせて、音声を加工する
- WebGLと組み合わせて、映像を3D空間に配置する
- WebSpeech APIと組み合わせて、音声認識させる
などなど。実用性は不明ですが、さまざまな表現ができるので、インパクトのあるWebサービスが作れそうです。試してみた内容は、別途ご紹介したいと思います。
4. 伝える
WebRTCに関して調査、実験して分かった内容については、機会を見つてお伝えするようにしています。過去には次のようなイベントでセッション発表やライトニングトークに参加させていただきました。
- Node学園祭2013 (2013/10/26)...WebRTCをはじめよう
- Node学園祭2014 (2014/11/15)...Nodeで操るKurentoメディアサーバー
- WebRTC Meetup Tokyo #1 (2014/04/22)...WebRTC Meetup ハンズオン
- WebRTC Meetup Tokyo #2 (2014/06/03)...WebRTCのオーディオ処理の謎、誰か教えて!
- WebRTC Meetup Tokyo #3 (2017/08/01)...海外カンファレンス参加報告 Atlanta NewYork
- WebRTC Meetup Tokyo #4 (2014/10/03)...WebRTC+αで無理矢理やってみた×3
- WebRTC Meetup Tokyo #5 (2014/11/26)...WebRTC Statics / getStats を覗いてみる
またこれから2015年2月5日(木)~2月6日(金)に開催される、WebRTC Conference Japan にもプラチナスポンサーとして参加しています。ご興味とお時間があれば、ぜひお越しください。チケットが入手できるキャンペーンも開催中です。
次回の記事では、ビデオチャットができるWebサービス talkin.info の使い方についてご説明する予定です。