ここがつらいよ WebRTC - WebRTC 開発の落とし穴
WebRTC Conference Japan 20162016.02.17 Track A
13:00-13:45
パネラー紹介:源 拓洋(敬称略)• 所属
– ソフトバンク株式会社– 情報システム本部– システムサービス事業統括部– コミュニケーションサービス部
• 略歴– 2014 年 4 月ソフトバンクモバイルに入社– 同年 6 月から WebRTC 関連の開発を担当– WebRTC はネイティブアプリや SFU/MCU の検証が主
• WebRTC 利用状況– 社内、関連会社間でのビデオ会議システムに利用
• 担当範囲– Android のネイティブアプリを担当– MCU/SFU についても詳しい
パネラー紹介: kyo_ago (敬称略)• 所属– ChatWork 株式会社
• 略歴– フロントエンドエンジニア– 主に JavaScript とか TypeScript とかを書く人
• WebRTC 利用状況– クラウド型ビジネスコミュニケーションツールを提供– サービスの一環として、ビデオ会議 / 音声通話を実現
• 担当範囲– PC ブラウザが中心
パネラー紹介: 飯田 アレン 真人 (敬称略)• 所属
– NTT コミュニケーションズ株式会社– 技術開発部– Web コアテクニカルユニット エンジニア
• 略歴– 何年も C や Java を使ってきて初めて JavaScript を触った時の印象はキモい!– 今は JS なしで生きていけない身になってしまい、バックエンドも JS で書くようになりました– NTT コミュニケーションズでは SkyWay プラットフォームの開発を担当しつつ、 SkyWayを利用した WebRTC アプ リケーションの開発も行っています
• WebRTC 利用状況– 開発者向けに WebRTC を使うための PaaS である SkyWay を提供– 定番ライブラリのカスタマイズ版や、 iOS/Android SDK 、 TURN サーバーも提供
• 担当範囲– PC ブラウザが中心に、サーバー側も担当
モデレーター紹介: 我如古正志 (敬称略)• 所属
– インフォコム株式会社– 技術企画室 室長
• 略歴– 企業向けのシステム開発と、コンシューマー向けの携帯 Web サービスの運営の両方に従事する– 2013 年度より WebRTC に注目し、技術調査と社内での利用を推進中– 内容は HTML5Experts.jp の記事などを通して発信中
• WebRTC 利用状況– 社内ビデオチャット、社内イベント配信に利用– 自社サービス向けライブラリを開発、一部サービスで利用
• 担当範囲– PC ブラウザやサーバー側など、広く浅く
利用状況
内部利用 一般公開
アプリケーション、サービス
プラットフォーム
同時接続 400メディアサーバー
(MCU)5 台導入社数 9 万社
Skyway 登録者数 2000 人、登録アプリ数 4000
シグナリングサーバー … 同時接続上限 10 万以上
平均アクセス数: 1 万セッション / 日( 1 月末~ 2 月初)
同時配信 30人双方向通話 2~ 5人 × 数組海外とも(米国、南アフリカ、アイスランド…)
今日のテーマ• 自分で映像 / 音声 / データ通信を扱えるのは– とても楽しい– 利用者にもより良い体験を提供できる
• 大変なところもあるけど、ブラウザも SDKもサーバー環境も整いつつある• 知識と知恵を共有して、もっといろんなプロダクトを生み出そう
アジェンダ• クライアントサイドの話• 通信が「つながらない」時の話• サーバーサイドの話• 期待する未来像
Part 1クライアントサイドの話
クライアントサイドの落とし穴• 仕様がどんどん変わっていく、決まらない– とは言え、 WebRTC 1.0 がそろそろ決まりそう
• 仕様と実装が違う– ブラウザごとに違う– バージョンごとに変わる– ブラウザ以外もある
→ まずは、この辺りから聞いていきます
質問 1 : サポート対象は?• PC ブラウザ– Chrome, Firefox– IE, Safari– Edge–他
• モバイルブラウザ• PC アプリ• モバイルアプリ• 他
質問 2 : ブラウザ、アプリの差異の吸収は?• 捨てる• 自分で頑張る• 便利ライブラリを使う– adapter.js とか
• 他
質問 3 :ブラウザ / ライブラリのバージョンの差異は?• 常に最新バージョンのみ• 固定させる• 自分で頑張って複数サポート• こんな便利なものがあるよ• 他• 関連して–次バージョンの情報収集の方法は?–次バージョン、次々バージョンの確認は?
自分で作るか、他社のを使うか?• これ、といった判断基準はありますか?• この場合はこれ、というベストプラクティス例はありますか?
質問 4 :サポートするデバイス / マシンの制限• 幅広い機種やスペックを許容していますか?– それで困ることはありますか?– その場合、どう対処していますか?
• それとも特定の機種に限定していますか?
質問 5 :通信する内容は?• 音声• カメラ映像• スクリーンシェア• データ通信• 双方向か、片方向(配信)か?
当日は時間の都合でスキップ
質問 6 :テストってどうしていますか?• 自分で頑張る• 金で解決(外部に頼む)• 自動テストの手段を持っている
当日は時間の都合でスキップ
質問 7 : その他• 音響機器、映像機器について、工夫やノウハウありますか?• 色々あるけど、最近良くなってきていると感じるところはどこですか?
当日は時間の都合でスキップ
質問 8 : お互いに質問• お互いに質問はありますか?
当日は時間の都合でスキップ
Part 2通信が「繋がらない」時の話
通信環境の落とし穴• なぜか「つながらない」と言われる• 「つがならない」と言っても、現象 /原因は様々
→ 次は、この辺りを聞いてみます
質問 1 : 「繋がらない」と言われることは• しょっちゅうある• 時々ある• ほとんど無い• 一度も無い
質問 2 : 「繋がらない」で良くある原因は?• カメラやマイクの問題• デバイス /PC の問題• ブラウザの種類の問題• 通信環境の問題– 間のネットワーク機器、通信制限も含む
• 回線品質の問題• 操作の問題• 利用規模の問題• 他
質問 3 : 通信環境で「繋がらない」のはどの部分?• シグナリングのレベルで• NAT/Firewall/Proxy– UDP不可
• MITM
質問 4 : 今までの「繋がらない」ケースでレアな要因、最も変わった原因は?
質問 5 : 原因切り分けのための手段は?• 情報収集の仕組みを用意していますか?– (シグナリング)サーバー側で、クライアント側で– 自分で、他社の仕組みを利用
• 利用者が自分で原因調査できる仕組みを用意していますか?• 他の手段は?– 現地に見に行く–超能力で透視する
質問 6 : なるべく繋がるための対策• 何か対策をとっていますか?
• サポート体制はどうしてますか?–問い合わせ窓口– 環境調査の担当者–他の役割の人
当日は時間の都合でスキップ
質問 7 : お互いに質問• お互いに質問はありますか?
当日は時間の都合でスキップ
Part 3サーバーサイドの話
サーバーサイドの落とし穴• Peer-to-Peer なのに、やっぱりサーバーが必要• しかも、さまざまな役割のサーバーが必要• 大規模に使おうとすると、サーバーの方が重要では??
→ 次は、この辺りを聞いてみます
質問 1 : シグナリングサーバーどうしてますか?• 自分で用意する? 他社のを使う?–他社なら、例えばどこがお勧め?
• シグナリングの方式は?– SIP 、 XMPP等既存と互換性のある方法?–独自の実装• WebSocket• HTTP(S) POST• メッセージングプラットフォーム
質問 2 : NAT/Firewall越えのためのSTUN/TURN サーバー
• TURN サーバー、提供してますか?– 自分で運用–他社サービスを利用
• 地理的に、どこに置いてますか?
質問 3 : スケーリング• シグナリングサーバーをスケールさせるために、何か対策していますか?• TURN サーバーをスケールさせるために、何か対策していますか?• お金かかりませんか?
質問 4 : メディアサーバー使っていますか?• 他人数が参加する会議や、大人数への配信で、何かメディア用サーバーを使っていますか?• Peer-to-Peer
– 上り N 本、下り N 本• Selective Forwarding Unit
– 上り 1 本、下り N 本• Media Control Unit
– サーバーで合成– 上り 1 本、下り 1 本
• 商用ですか、オープンソースですか、自作ですか?– どうして、それを選んだのですか?
www.slideshare.net/minamotot/webrtc-44772839 より
当日は時間の都合でスキップ
質問 5 : おすすめプラットフォームは?
質問 6 : お互いに質問• お互いに質問はありますか?
当日は時間の都合でスキップ
Part 4未来の話
当日は時間の都合でスキップ
質問 1 : WebRTC の今後に期待していることは?• 今年( 2016 年)について• 近未来( 2 ~ 3 年先)について• 関係ありそうなもの• ORTC• WebRTC NV• Simulcast• SVC• VP9
当日は時間の都合でスキップ
質問 2 : WebRTC を使ったサービスに期待は?– こんなサービスが登場したら嬉しい– (チャンスがあれば)こんな使い方をしてみたい
当日は時間の都合でスキップ
Part 5その他の話
当日は時間の都合でスキップ
質問 1 : ぶっちゃけ、使ってますか?• 画面共有• DataChannel• 録画
当日は時間の都合でスキップ
質問 2 : WebRTC以外で頑張っているところ• ユーザー体験の向上–見せ方で印象が変わる?
• 既存の仕組みとの互換性、接続性– どこまで求められていますか?
• 政治的な苦労– WebRTC を使うための、根回し?とか…
当日は時間の都合でスキップ
会場から• ご質問はありますか?
最後に• 言い残したこと、言いたいことはありますか?
ありがとうございました