45
こここここここ WebRTC - WebRTC こここここここ WebRTC Conference Japan 2016 2016.02.17 Track A 13:00-13:45

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

  • Upload
    mganeko

  • View
    827

  • Download
    0

Embed Size (px)

Citation preview

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

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

WebRTC Conference Japan 20162016.02.17 Track A

13:00-13:45

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

パネラー紹介:源 拓洋(敬称略)• 所属

– ソフトバンク株式会社– 情報システム本部– システムサービス事業統括部– コミュニケーションサービス部

• 略歴– 2014 年 4 月ソフトバンクモバイルに入社– 同年 6 月から WebRTC 関連の開発を担当– WebRTC はネイティブアプリや SFU/MCU の検証が主

• WebRTC 利用状況– 社内、関連会社間でのビデオ会議システムに利用

• 担当範囲– Android のネイティブアプリを担当– MCU/SFU についても詳しい

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

パネラー紹介: kyo_ago (敬称略)• 所属– ChatWork 株式会社

• 略歴– フロントエンドエンジニア– 主に JavaScript とか TypeScript とかを書く人

• WebRTC 利用状況– クラウド型ビジネスコミュニケーションツールを提供– サービスの一環として、ビデオ会議 / 音声通話を実現

• 担当範囲– PC ブラウザが中心

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

パネラー紹介: 飯田 アレン 真人 (敬称略)• 所属

– NTT コミュニケーションズ株式会社– 技術開発部– Web コアテクニカルユニット エンジニア

• 略歴– 何年も C や Java を使ってきて初めて JavaScript を触った時の印象はキモい!– 今は JS なしで生きていけない身になってしまい、バックエンドも JS で書くようになりました– NTT コミュニケーションズでは SkyWay プラットフォームの開発を担当しつつ、 SkyWayを利用した WebRTC アプ リケーションの開発も行っています

• WebRTC 利用状況– 開発者向けに WebRTC を使うための PaaS である SkyWay を提供– 定番ライブラリのカスタマイズ版や、 iOS/Android SDK 、 TURN サーバーも提供

• 担当範囲– PC ブラウザが中心に、サーバー側も担当

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

モデレーター紹介: 我如古正志 (敬称略)• 所属

– インフォコム株式会社– 技術企画室 室長

• 略歴– 企業向けのシステム開発と、コンシューマー向けの携帯 Web サービスの運営の両方に従事する– 2013 年度より WebRTC に注目し、技術調査と社内での利用を推進中– 内容は HTML5Experts.jp の記事などを通して発信中

• WebRTC 利用状況– 社内ビデオチャット、社内イベント配信に利用– 自社サービス向けライブラリを開発、一部サービスで利用

• 担当範囲– PC ブラウザやサーバー側など、広く浅く

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

利用状況

内部利用 一般公開

アプリケーション、サービス

プラットフォーム

同時接続 400メディアサーバー

(MCU)5 台導入社数 9 万社

Skyway 登録者数 2000 人、登録アプリ数 4000

シグナリングサーバー … 同時接続上限 10 万以上

平均アクセス数: 1 万セッション / 日( 1 月末~ 2 月初)

同時配信 30人双方向通話 2~ 5人 × 数組海外とも(米国、南アフリカ、アイスランド…)

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

今日のテーマ• 自分で映像 / 音声 / データ通信を扱えるのは– とても楽しい– 利用者にもより良い体験を提供できる

• 大変なところもあるけど、ブラウザも SDKもサーバー環境も整いつつある• 知識と知恵を共有して、もっといろんなプロダクトを生み出そう

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

アジェンダ• クライアントサイドの話• 通信が「つながらない」時の話• サーバーサイドの話• 期待する未来像

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

Part 1クライアントサイドの話

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

クライアントサイドの落とし穴• 仕様がどんどん変わっていく、決まらない– とは言え、 WebRTC 1.0 がそろそろ決まりそう

• 仕様と実装が違う– ブラウザごとに違う– バージョンごとに変わる– ブラウザ以外もある

→ まずは、この辺りから聞いていきます

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

質問 1 : サポート対象は?• PC ブラウザ– Chrome, Firefox– IE, Safari– Edge–他

• モバイルブラウザ• PC アプリ• モバイルアプリ• 他

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

質問 2 : ブラウザ、アプリの差異の吸収は?• 捨てる• 自分で頑張る• 便利ライブラリを使う– adapter.js とか

• 他

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

質問 3 :ブラウザ / ライブラリのバージョンの差異は?• 常に最新バージョンのみ• 固定させる• 自分で頑張って複数サポート• こんな便利なものがあるよ• 他• 関連して–次バージョンの情報収集の方法は?–次バージョン、次々バージョンの確認は?

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

自分で作るか、他社のを使うか?• これ、といった判断基準はありますか?• この場合はこれ、というベストプラクティス例はありますか?

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

質問 4 :サポートするデバイス / マシンの制限• 幅広い機種やスペックを許容していますか?– それで困ることはありますか?– その場合、どう対処していますか?

• それとも特定の機種に限定していますか?

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

質問 5 :通信する内容は?• 音声• カメラ映像• スクリーンシェア• データ通信• 双方向か、片方向(配信)か?

当日は時間の都合でスキップ

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

質問 6 :テストってどうしていますか?• 自分で頑張る• 金で解決(外部に頼む)• 自動テストの手段を持っている

当日は時間の都合でスキップ

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

質問 7 : その他• 音響機器、映像機器について、工夫やノウハウありますか?• 色々あるけど、最近良くなってきていると感じるところはどこですか?

当日は時間の都合でスキップ

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

質問 8 : お互いに質問• お互いに質問はありますか?

当日は時間の都合でスキップ

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

Part 2通信が「繋がらない」時の話

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

通信環境の落とし穴• なぜか「つながらない」と言われる• 「つがならない」と言っても、現象 /原因は様々

→ 次は、この辺りを聞いてみます

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

質問 1 : 「繋がらない」と言われることは• しょっちゅうある• 時々ある• ほとんど無い• 一度も無い

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

質問 2 : 「繋がらない」で良くある原因は?• カメラやマイクの問題• デバイス /PC の問題• ブラウザの種類の問題• 通信環境の問題– 間のネットワーク機器、通信制限も含む

• 回線品質の問題• 操作の問題• 利用規模の問題• 他

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

質問 3 : 通信環境で「繋がらない」のはどの部分?• シグナリングのレベルで• NAT/Firewall/Proxy– UDP不可

• MITM

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

質問 4 : 今までの「繋がらない」ケースでレアな要因、最も変わった原因は?

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

質問 5 : 原因切り分けのための手段は?• 情報収集の仕組みを用意していますか?– (シグナリング)サーバー側で、クライアント側で– 自分で、他社の仕組みを利用

• 利用者が自分で原因調査できる仕組みを用意していますか?• 他の手段は?– 現地に見に行く–超能力で透視する

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

質問 6 : なるべく繋がるための対策• 何か対策をとっていますか?

• サポート体制はどうしてますか?–問い合わせ窓口– 環境調査の担当者–他の役割の人

当日は時間の都合でスキップ

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

質問 7 : お互いに質問• お互いに質問はありますか?

当日は時間の都合でスキップ

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

Part 3サーバーサイドの話

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

サーバーサイドの落とし穴• Peer-to-Peer なのに、やっぱりサーバーが必要• しかも、さまざまな役割のサーバーが必要• 大規模に使おうとすると、サーバーの方が重要では??

→ 次は、この辺りを聞いてみます

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

質問 1 : シグナリングサーバーどうしてますか?• 自分で用意する? 他社のを使う?–他社なら、例えばどこがお勧め?

• シグナリングの方式は?– SIP 、 XMPP等既存と互換性のある方法?–独自の実装• WebSocket• HTTP(S) POST• メッセージングプラットフォーム

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

質問 2 : NAT/Firewall越えのためのSTUN/TURN サーバー

• TURN サーバー、提供してますか?– 自分で運用–他社サービスを利用

• 地理的に、どこに置いてますか?

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

質問 3 : スケーリング• シグナリングサーバーをスケールさせるために、何か対策していますか?• TURN サーバーをスケールさせるために、何か対策していますか?• お金かかりませんか?

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

質問 4 : メディアサーバー使っていますか?• 他人数が参加する会議や、大人数への配信で、何かメディア用サーバーを使っていますか?• Peer-to-Peer

– 上り N 本、下り N 本• Selective Forwarding Unit

– 上り 1 本、下り N 本• Media Control Unit

– サーバーで合成– 上り 1 本、下り 1 本

• 商用ですか、オープンソースですか、自作ですか?– どうして、それを選んだのですか?

www.slideshare.net/minamotot/webrtc-44772839 より

当日は時間の都合でスキップ

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

質問 5 : おすすめプラットフォームは?

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

質問 6 : お互いに質問• お互いに質問はありますか?

当日は時間の都合でスキップ

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

Part 4未来の話

当日は時間の都合でスキップ

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

質問 1 : WebRTC の今後に期待していることは?• 今年( 2016 年)について• 近未来( 2 ~ 3 年先)について• 関係ありそうなもの• ORTC• WebRTC NV• Simulcast• SVC• VP9

当日は時間の都合でスキップ

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

質問 2 : WebRTC を使ったサービスに期待は?– こんなサービスが登場したら嬉しい– (チャンスがあれば)こんな使い方をしてみたい

当日は時間の都合でスキップ

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

Part 5その他の話

当日は時間の都合でスキップ

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

質問 1 : ぶっちゃけ、使ってますか?• 画面共有• DataChannel• 録画

当日は時間の都合でスキップ

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

質問 2 : WebRTC以外で頑張っているところ• ユーザー体験の向上–見せ方で印象が変わる?

• 既存の仕組みとの互換性、接続性– どこまで求められていますか?

• 政治的な苦労– WebRTC を使うための、根回し?とか…

当日は時間の都合でスキップ

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

会場から• ご質問はありますか?

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

最後に• 言い残したこと、言いたいことはありますか?

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

ありがとうございました