🧊

WebRTC Meetup Tokyo #17 に行ってきたメモ #webrtcjp

【増員】WebRTC Meetup Tokyo #17 Special Edition|IT勉強会・セミナーなどのイベント情報検索サービス - TECH PLAY[テックプレイ]

海外有名人大集合回です!

KITE: a new WebRTC Interoperability Testing Engine by Dr. Alex Gouaillard

はじめに

  • WebRTCの辛いパートの話をするよ
    • テストとか
    • VRとかGameとか楽しいパートは他の人に任せるよ
  • ブラウザはそもそもそういうことするもんじゃない

Web Platform Tests

  • https://github.com/w3c/web-platform-tests
  • ブラウザにAPIを載せるために必要なテスト
    • W3Cとかの標準化のプロセスの一環
  • WebRTC 1.0 API関連のカバレッジはNov 2017で70%くらい
  • なぜか
  • テストには種類がある
  • Compliance & Usual Testing
    • 1つのブラウザで
    • standaloneでいい
  • Interoperability Testing
    • 2つのブラウザで
    • 相互に作用する
    • WebRTCはこっち
    • それをいい感じにやるツールが必要とされてる段階
    • まだガリガリとテストを書けるタイミングでもない
  • しかもそれをやるのめっちゃ大変
    • iOS / Android / devian / Windows / Mac
    • そこにブラウザバージョンとかが加わるとその組合せは・・496・・簡略化してもこんだけある
    • 全てのケースを手動できっちりやってたら過労死する

KITE

  • Karoshi Interoperability Testing Engine
  • Selenium Grid
    • テストしたい環境を選ぶフェーズ
  • Test engine
  • Test
  • Dashboard
    • 結果は円グラフっぽい感じで見れる
    • Passした結果は省いて表示したりも
  • Jitsiみたいな外部のライブラリを使ったテストもできるっぽい
  • 相互でつなげてみた結果は、webrtc.orgに載せてく予定とのこと

Janus: the server-side WebRTC jack-of-all-trades by Lorenzo miniero

WebRTC Rockstars Asian Tour 2017

はじめに

  • WebRTCの基本はP2P
  • クライアント駆動で、シグナリングにだけサーバーを使うこともできる
  • ただサーバー機能が豊富なら色んなことができる
    • MCU / SFU
    • 電話機と繋いだりも
  • そのためのソフトウェアがJanus

Janus

  • https://github.com/meetecho/janus-gateway
  • いわゆるゲートウェイとして動作する
  • Rasp piでも動く
  • メインはJSEP/SDP、ICE、DTLS、DataChannelなどなどコアのみ
  • SFUとかはプラグインで拡張する
  • 最近いろいろ機能追加したよ
    • Event report
    • VP8 Simulcasting
    • Vp9 SVC(Alexの会社と一緒にやった
    • Luaプラグインを書けるようにもした
  • RTP forwarders
    • Janusを使ってるサーバー同士だとスケーリングしやすい仕組み的な・・?

Janusの実績

  • あちこちで使われてるようになった
  • IETFのMeetingにはJanusを使ってる
    • 年3回くらい
    • 世界各地とつないで動いてる実績
    • カンファレンス会場の各カメラのストリームを録画したりもしてる
  • SkyWayのIoT
  • Slackも古いやつをforkしてたり
  • 他にもいろいろ...
    • ほんとすごい数の利用実績を紹介してた

これからやりたいこと

質問

  • どのプラットフォームで動く?
  • SDKはある?
  • プラグイン多すぎでメンテ辛そうに見えるけど、プラグイン方式の利点は?
    • Flexibleにしたいから
    • どんな柔軟性を持たせるべきかはニーズによるので
  • パッケージマネージャ的なのはないの?
    • ないので一覧から探す
  • libwebrtcを使わない理由は?
    • 実装したい内容によって、それぞれ好きな部品を使える
    • 自作することでバグとかの対応も速くできる
    • 多種多様な各コーデックもプラグイン

AllThingsRTC.org - a new voice for the real-time communications industry by Dan Burnett

はじめに

  • WebRTCのSpec書いてます
  • いつもは標準化やアップデートについて話してる
  • 今日は最近思うところについて話すよ

最近思うこと

  • WebRTCに関する情報・ブログが増えてきた
  • それはいいことだ
  • しかしその反面
    • 情報ちらばりすぎ
    • 古い
    • 偏向した情報だったり・・
  • 日本でどうかはわからないけどUSではそう
  • それを解決するためにやってるのがAllThingsRTC

AllTthingsRTC

  • 中立なメディア
  • ニュース、イベント
  • 最近の仕様アップデート
  • 会社の紹介とかも
  • 開発者の生の声があったり
  • これから
    • 中国語への翻訳
    • 日本語への翻訳も考えてる(パートナーがいれば)
    • Getting startedのいい感じのやつ
    • フォーラム
    • Survey

質問

  • いつ仕様はFixするの?(ってどこいっても聞かれるそうな
    • 誰にもわかりません
    • 仕様としては新しい機能を足そう!というタイミングではないので、使い始めるにはいいタイミングかも
  • 中国語への翻訳は予定してるって言ってたけど、それは中国で需要があるってこと?
    • そうです
    • あとインドからの需要もある
    • 中国からは既にパートナーのオファーがあるので、やることを決めてる
    • 翻訳も技術をちゃんと知ってる人に頼んでる

PythonとWebRTCを頑張ってつないだ話 by @tnoho

LT枠その1。

WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装

  • 気軽にカメラとつなげてDeepLearningしたい
    • ただ電気を食う
  • クライアントサイドでは無理
    • TensorFlowとかも動くけど、精度がいまいち
  • よしサーバーでやろう
  • WebRTCで送ろう!
    • iPhoneのカメラでとって顔認識するデモ
  • pyrtcconductor
  • RaspbPiで動かせるやつも作ってるよ(最近は開発止まってるけど・・

Applications of WebRTC In Gaming by Jordan Baucke

はじめに

  • Evasystという会社からきました
  • eSportsの放送サービスやってます
  • eSports業界が世界的にキテる
    • ゲームにアプローチできれば、若いユーザー層にアプローチできる
    • トーナメントとかやっても、チケットが一瞬で売り切れる

ゲームの生放送をしたい

  • 放送しようとすると、色んなものを使う必要がある
    • Skype / Discord
    • OBS
    • Twitch / Mixer
  • ユーザーはだいたいこれらを組合せて使ってるはず
  • これらを全部まとめてできるデスクトップアプリが必要である!

何で作るか

  • ElectronとかReactNativeとかXamarinとかいろいろあるよね
  • Qtで作った
  • ゲームはどうやって作られてるか
    • UnityとかUnrealEngineとかあるよね
    • ただライセンス的にストリームを吸えない

取り巻く状況

  • ストリームを取得したとしてどうやって流すか
  • TwitchはAmazonに買収された
  • Cloud gaming / Game streaming
    • RTSP/x264
    • ディレイ問題はどうしよう
  • ゲーム業界もサブスクリプションモデルに移行しつつあったり

Cloud gamingたとえば

  • nVidia Shield
    • RTSP/x264
  • BEAM / Mixer
    • using WebRTC! Janus!

WebRTC

  • RTMP/RTSPの代わりになれる
  • ただC++のローレベルのライブラリまだない
  • てかブラウザで動かす以外の実装が・・
  • libwebrtcしかないけどChrome用みたいになってる

libwebrtc

  • つらい
    • コンパイルつらい
    • 一枚岩になってるのでコケてもはじめから、なんか足りなくてもはじめから
  • いいとこもある

これから

  • 各種Codecサポート
  • P2Pゲートウェイ
  • Hub / Spokeなモデルでの放送網
  • Peer as CDN
  • WebRTC based Cloud Gaming!

質問

  • eSportsの市場はどう?
    • 22 billion $ (的な単語は聞き取れたけど単位が謎やし自信ない
  • ゲーム実況でこれいいなと思ったコーデックは?
    • HAが効く環境ならH264がやっぱ強い
    • それがないならVP8/VP9かなー
  • libwebrtcをどう使ってる?
    • ラッパー的なのを作ってQtから使えるようにしてる
    • OSSにはそのうちできれば

Kranky Geek Latest Show Contents ML, VR, AI with WebRTC & More by Chris Koehncke

はじめに

  • Krabky GeekというWebRTCの世界最大?のイベントがこないだあった
  • セッションはYouTubeで見れるよ!
  • そこからいくつかご紹介
  • WebRTC単体というより、既存技術との組合せが目立った

たとえば

  • MachineLearning
    • エッジ検出
  • LiveProcessing
    • 物体認識・動態検知
    • 表情認識
    • リアルタイム翻訳

ChromeからみたWebRTC 1.0

  • ChromeでWebRTCがどれだけ使われてるか
  • 1.5 billions minutes audio/video per week!
    • 去年と比べると50%増えた
  • 細かいバグ修正もできるようになってきた
    • Macでマイクが使えないバグとか(2012年から・・
  • Desktop captureまじ大変
    • Video Captureのプロセスを分けて、ブラウザがクラッシュしないようにしたり
  • コーデック
    • VP9
    • AV1: Next Generation Royality Free Codecs

Safari supports WebRTC

  • libwebrtcベース
  • ただし新しいAPIのみ
  • AR / VRとの組合せ
    • カメラで撮った空間に、ARで車を出したり色を変えたりするデモ
  • ContextualBandwidth
    • 写ってる人物の顔のとこだけ切り取ったりできれば、より高画質にできる

Facebook Messanger

  • Signaling -> MQTT / SFU

Slack

  • Video通話がすごく使われてる
  • Electron
  • Janus のfork

Nudity Detection

Google Hangoutの裏で動く機械学習

  • 最適なネットワーク構成を学習する
  • TURNなのかP2Pなのか

WebRTC DataChannel

  • Serverless CDNの発想
  • 録画した動画をP2Pで送る

質問

  • 次回のKrankyGeekは?
    • 毎年秋にSFでやってる、来年春くらいに違うところでやろうかな

WebRTC でご飯は食べられるのか? by @voluntas

LT枠その2。

WebRTC でご飯は食べられるのか? · GitHub

はじめに

  • 時雨堂からきました
  • WebRTCだけでぼちぼちやっていけてる
    • 競合が少ない(ほぼいない)ので
  • EarlangでSFU製品

Sora

  • クローズドソースでやってる
  • その分、サポート費用は取らない
  • サービスは提供しない
  • なぜそうしたか
  • WebRTCのビジネスモデルは2パターンしかない
    • 転送量ビジネス
    • パッケージ販売
  • 転送量ビジネスするなら、SkyWayが強すぎる(無償枠あるし)
  • 日本ではOSSがお金にならない・・
    • お金出してくれる会社は、クローズドソースでも買ってくれる
    • OSSで疲弊して、最終的に帰ってくる(Contribしろという話ではあるが

特徴

  • シンプル
  • 落ちにくい
  • 日本の市場が特殊
    • 比較表がないと話が始まらない
    • ので、そことは戦わない
  • 絵・音声って聞くと簡単に思われがち
  • SDKに力をいれてる