L is Bエンジニアブログ

ビジネス用メッセンジャーdirectのエンジニアによるブログ

LisBエンジニアブログ

ビジネスチャットdirectのエンジニアブログ

WebRTC Conference Japan 2016 に参加してきました (2日目)

2月16日、17日に開催された WebRTC Conference Japan 2016 に参加してきました。

webrtcconference.jp

2日目の感想です。(1日目はこちら→WebRTC Conference Japan 2016 に参加してきました (1日目) - LisBスタッフブログ)

開発者向けの Track A と、ビジネス向けの Track B に会場が別れています。 自分は Track A に参加してきました。

WebRTC Boot Camp

www.slideshare.net

実際にビデオチャットを作成しながら、WebRTCの仕組みを勉強する時間でした。 あらかじめサンプルファイルなどが準備されており、 短時間で学習できるようになっています。

(ここまでは簡単なのですが、ここからが大変ですよね。。。)

WebRTC on Native App (iOS/Android)

www.facebook.com

SkyWay のネイティブライブラリを提供している企業様からの体験談。

  • libjingle の開発は活発で、master が1日に何度もコミットされて追従が大変。
  • API (の実装)がいつの間にか変更されて急に動かなくなる。
  • Androidでのフラグメンテーションで、ある端末のあるバージョンだけ動かない。

とか、いろいろ苦労されている話がありました。

ここがつらいよWebRTC - WebRTC開発の落とし穴

以下の方のパネルディスカッションです。

  • 源 拓洋 (ソフトバンク)。社内・関連会社間でのビデオ会議システム。
  • kyo_ago (ChatWork)。ChatWorkでのビデオ会議システム。
  • 飯田 アレン 真人 (NTTコム)。SkyWay提供。

クライアントサイドでの落とし穴、サーバサイドでの落とし穴、通信・接続での落とし穴の3つのテーマでディスカッション。

クライアントサイドは PC の Chrome/FireFox であれば、ほぼほぼ問題ないという雰囲気でした。Safari なども adapter.js があるので大丈夫。 マシンの内蔵マイクの性能はよくないので、声をちゃんと拾えなくて不具合報告されることも。USB接続のマイクがいいそうです。

サーバサイドも、とくに問題なさそう (通信会社さんなのでインフラまわりは得意っぽい)。一般にTRUNはコスト高といわれるが、実際はそんなに気にならない、とのことでした。

通信・接続での問題は、WebRTCの問題というよりも、マシンスペックや社内ネットワーク(Proxy)、カメラとマイク、パーソナルファイアウォールなど、環境依存によるそうです。 頻度はたまに発生している、という程度。

総じて、WebRTCは使える、という結論でした (ただし PCにおいて?)。

話を聞いた感じだと、いろいろと落とし穴はあるけど、気をつければ十分避けて通れるよという風に聞こえました。(みなさん、いろいろと試行錯誤した結果、今は安定してきたよねという雰囲気だったので)

WebRTC アプリケーションのテストの課題・解決方法について

www.slideshare.net

ここでも、WebRTC側の開発が活発で、仕様や実装が急に変更になってアプリがある日突然動かなくなる、という話がありました。各企業もテストまで手がまわっていないし、VoIPの業界と違って仕様や実装が流動的なので、自動テストは必要。

でも、クライアントや端末、OS、ネットワーク環境が多岐にわたるため、自動テストの構築は大変。でもチャレンジしました、というお話。

問題になりやすい NAT 越えを対象に、AWSのVPCに複数のprivate subnet を作成して、自動テストを作成。

自動テストは大変ですね。

WebRTC SFU コトハジメ

WebRTC SFU コトハジメ · GitHub

WebRTCの接続は P2P ですが、グループ会議などになると各マシンが互いに接続するメッシュ構造になるため、負荷が高くなります。その対策の1つとして、一度サーバを経由して接続する SFU という構成があります。

この SFU のサーバを開発してSoraとして製品化した話でした。multistream/multiplexing/simulcastなど技術的に詳細な内容でしたが、わかりやすく説明していただいたので、面白かったです。

後のセッションで話題になりましたが、同時接続数の限界は、スマホ&音声のみの場合で5台程度とのことです。これで十分とするか足りないとするか悩ましいところ。

WebRTC Next Version 時代の Javascript 開発

www.slideshare.net

WebRTC の仕様は、2016年中に 1.0 として Fix される予定だそうです。その 1.0 に含められなかった内容が NV (Next Version) として議論されています。

その1つが ORTC の仕様に影響を受けた PeerConnection オブジェクトの分解(ローレベルAPIの提供)です。(先日のセッションでは 1.0 に含まれるという話だった気がしたのですが。。。)

このローレベルAPIを利用した接続方法について、フローを使った丁寧な説明でした。

WebRTC ショートセッション4 本勝負!

スマホチャットアプリにおける WebRTC 通話アプリ開発事例

startalk.trifort.jp

ネイティブライブラリへの追従、通話のデバッグ、瞬断の問題、スマホの性能(PCに比べると全然低い)、など、スマホ特有の問題についての話でした。

アプリ開発者として共感できるところが多々ありました。

WebRTC サービスを個人で運用してみた話

ikadenwa.ink

スプラトゥーンで遊んでいる間にメンバーとボイスチャットできるイカデンワの開発話。

従来はこのレベルのサービスを個人では開発できなかったと思うのですが、WebRTCは新規参入の壁をものすごく下げるという面白い事例でした。こういうサービスが今後もたくさん出てくると思わされる話でした。

DeviceConnect WebAPI (様々なデバイスをアプリから手軽に活用)

www.slideshare.net

通常 WebRTC で接続するカメラは、PC内蔵のカメラやUSB接続のカメラです。この発表では、無線LAN搭載の一眼レフカメラやスマートトイなどといった、さまざまなデバイスを接続するデモでした。 GotAPI | デバイスWebAPIコンソーシアム が使われているそうです。

WebRTC x IoT その現状と可能性を探る

(スライドは去年のものです)

www.slideshare.net

北米(シリコンバレー周辺?)では、IoT デバイスが市販されていて、WebRTC経由で監視カメラみたいなことが普通にできるようになってきているという話でした。WebRTCが IoTにもたらすものとして、安心感、コミュニケーションの多様化、AIとの融合、遠隔からの操作、などがあげられてました。

IoT の各デバイスが各サービスをホームネットワークで提供する形は、今サーバ側で流行っているマイクロサービスと同じ構成だよね、という指摘は興味深かったです。

2日目の感想

技術的な内容が多かったのですが、それ以上に、みなさん苦労話を語られていたのが印象的でした。

(武内)