🧊

SkyWay Developer Meetup #1 に行ってきたメモ #WebRTCSkyWay

行ってきたし、LTで発表もしてきました。

スタッフ・ドリンク・フードの潤沢さに大企業の影を見たやで・・・!

SkyWayの目指す世界 by @mizuman_

SkyWay Vision & Mission

SkyWayの歩み

  • 5590のユーザー
  • 9036のサービス
  • 300+の企業と
  • 488973/日接続!
  • いろんなことができることがわかり、晴れて商用化!

SkyWayは何をしてくれるのか

  • WebRTCは難しい
  • そこを簡単に使えるように
  • 本業のアイデアイノベーションに集中してもらう
  • ブラウザ / iOS / Android / IoT
  • 無料のコミュニティエディションもあるよ
    • 通信料の制限はあるが毎日キーを変えれば・・

お願い

  • 開発者同士でもっとつながって
  • イデアを共有するとか
  • コラボレーションすればできることは無限大

SkyWayを使いこなすために by @iwashi86

SkyWayを使いこなすために - How to use SkyWay (WebRTC)

はじめに

基本

  • `new Peer()`するときに
    • config: `RTCPeerConnection`へのコンフィグも渡せる
    • debug: ログレベルを設定できるし、サポートも答えやすいかも
  • 1:1したいなら
    • `peer.call()`するだけ
    • 受け取ったら`video.srcObject`に
  • N:NならフルメッシュとSFUのルームがあるよ
  • DataChannelの場合は、`peer.connect()`
    • ルームのDataChannelの中身は現状WebSocketです

応用

  • 帯域の指定ができるので、P2Pでも頑張れる
    • `peer.call(peerId, stream, { videoBandwidth, audioBandwidth })`
  • コーデックも変えられる
    • `peer.call(peerId, stream, { videoCodec, audioCodec })`
    • H264にしたりVP9とかも
  • 中でSDPを書き換えてます
  • `peer.call(peerId, stream, { metadata })`
    • 好きなデータを渡したい時に使える
  • `peer.call()`でストリームを渡さないと、受信専用に
    • P2Pでツリーを形成すれば・・・

ハック

  • デバッグ
    • `call._negotiator._pc.getStats()`で情報を引っこ抜ける
  • TURN as a Service
    • `new Peer()`したときに実は取得してる
    • `peer._pcConfig.iceServers`でわかる
  • STUN/TURNサーバーの場所
    • 日本、シンガポール、オランダ、アメリカ
    • 近いところを自動的に
    • TLSをほどくProxyとかを通らない限り、ほとんどのケースでつながる
  • SFU
    • 現状サーバーは東京のみ
  • 24時間つなぎっぱなしでも安定稼働してます
  • SDK
    • ブラウザ / iOS / Android / IoT(β)
    • ブラウザに関しての対応ブラウザは、SafariとEdgeも一応動く(P2P

その他

iOSでのSkyWay開発の勘所とTips by @jumboOrNot

iOSでのSkyWay開発の勘所とTips (リリース後・新SDK編) // Speaker Deck

自分の資料をなおしてたのでメモる暇なかったですごめんなさい!

Meetupでもおなじみ?のレアジョブのお方によるiOS x Firebaseのお話でした。

Skywayのビデオチャットを録画しよう。そう、ブラウザでね by @massie_g

Skywayのビデオチャットを録画しよう。そう、ブラウザでね

  • SkyWayは録画機能ないですよね
  • ブラウザでできるよ
  • `canvas.captureStream()`
  • 音は`WebAudio`
  • あとは`MediaRecorder`で
  • 複数のストリームを1つのcanvasにrAFで書いてる
  • 音声も複数のストリームを1つのAudioNodeにつなぐ
  • 最後にそれぞれのTrackを、Streamにまとめて録画

SkyWay JS SDKの歩き方 by @leader22

SkyWay JS SDKの歩き方

5分なのでかるーく。

SkyWay × cognitive service by @lz650sss

SkyWay × Cognitive Service - Qiita

SkyWay Q&A大会

  • モデレーター: 我如古さん
  • プロダクトマネージャー: 水嶋さん
  • インフラ: 桂さん
  • JS / シグナリングサーバー: アレンさん
  • iOS / Android: 高橋さん

いつnpmで使えるようになるの

  • 予定はあるよ
  • Coming soonって感じ

iOS / AndroidH.264

冗長化・負荷分散どうなってるの

  • 冗長化してるよ
    • 電源レベルで
  • SFUもこれから世界中にサーバーを配置していく予定

時雨堂のSFUとどう違うの

  • Jitsi Video Bridgeを使ってる
  • 時雨堂
    • ライセンスを買って、自分のサーバーで動かすモデル
    • 配信向けなイメージ
  • SkyWay
    • プラットフォーム
    • 双方向

今後のロードマップ

  • 皆さんの使用状況をまず把握したい
  • 冗長化とか
  • コーデックの対応とか
  • SFUはα版と書いてあるが?
    • もう正式版です
  • Windows向けはどうすれば(C#とかのSDK・・
    • 有志でラッパを書いてる人もいる
    • Electronとか
    • 前向きに考えてはいる

RaspPiで配信したい

  • 既に出してるIoT SDKでもできる
  • Janusとか

インフラチームの体制はどんな感じ?

  • サーバー台数: 30くらい
    • BGDなので最大 x2くらい
  • 5−6人くらい
  • 24/365対応は、社内の監視部隊も

CloudNですか?

  • 使ってません
  • 別のEnterpriseCloudっていうのを使ってる
  • Azure / AWSとかも

そのコストは?

  • 人件費が一番かかってるかな・・

途切れた時にどんなコードを書けば?

  • ブラウザごとに挙動が違うのが現状
  • ブラウザでどうしようもない時に`close`イベント投げてる
    • 回答では`disconnected`って言ってたけど、`close`イベントだったはず
  • 放置したらなおることもあるよ
    • ほんとだよ!

アプリでもSFUできる?

  • コーデックの問題はあるが、使えます

APIキーの使い回しについて

  • ユーザー体験を損なわないように・・
  • 良心の範囲でw

コミュニティエディション -> エンタープライズエディション

  • 現状はコミュニティエディションの上限突破してもすぐ止めない
  • メールでお知らせします
  • なんなら一緒に移行プランを考えます

仕事楽しい?

  • 楽しいよ!
  • WebRTCはこれから!

WebRTC業界、キテますねー!(∩´∀`)∩