会場がいつもと違ってて、まさかの会社のすぐ近くやった。
Janus: a general purpose WebRTC server by @elminiero
JanusというOSSについて。
- WebRTCのGatewayサーバー
- 普通にWebRTCするならSDPのシグナリング後にP2P
- けどGatewayサーバーが間に立てば、いろんなことができる
- クライアントの格差を吸収したり
- サーバーから配信したり(SFU的な)
Janus
- https://github.com/meetecho/janus-gateway
- Janus(ヤヌス)はローマ神話に出てくる前後に顔がある扉の神
- プラガブルに作られてて、コアはWebRTCスタックのみ
- JSEP/SDP、ICE、DataCh、etc
- HTTP / WebSockets / MQTTなど複数のTCPで動くプラグインがある
- なので作ればJSONでJanusとやりとりもできる
- ブラウザ <-> (Janus Core = プラグイン) <-> 各プラットフォーム
- プラグインでできること
- EchoTest
- Streaming(RTP)
- Recording
- TextChat(w/ DataChannel)
- などなど: https://janus.conf.meetecho.com/demos.html
- AdminAPIってのがある
- サーバーのスペック見たり
- デバッグ用に設定変更とかできる
- 非同期にイベント投げる機能はWIP
- 負荷テストのためのJattack(Janus Attack)
- WebSocketでPeerConnectionを作って使う
- WIPやけど使えるよ
- 利用事例も結構あるよ
- 基本的なテレカンもあれば
- まさかのドローンを動かしたりも
- Sqiwiggleでの商用利用
- https://beam.pro/
- Slackの音声通話で動いてるのもJanus
今後の予定
- WebRTCスタックのアップデート
- 再ネゴシエーション
- Multiストリーム
- Events API
- Jattackの改善もしていきたい
WebRTC + RasPi by @tnoho
RaspberryPiでWebRTCしたい話。
なんで?
- Android / iOSはソフトウェアエンコードなので、酷使すると落ちる
- なにより安い
- 実例は多い
- 1. Janus x [gstreamer](https://gstreamer.freedesktop.org/)
- H.264のハードウェアエンコードが効く!
- まとめて制御するするために要Pythonスクリプト
- 2. OpenWebRTC
- v0.0.4以降、消息が不明
- 3. UV4L
- VP8使える
- なので熱暴走・・
- ただしクローズドソース
- どれを使うべきか
- どれも一長一短で難あり
- よーし自分で作ろう!
WebRTC Native Client Library
- https://chromium.googlesource.com/external/webrtc
- ChromeのWebRTC実装を切り出したもの
- ビルドするにはそのままだと数十GBと2GB↑のRAMがいる
- RasPi向けには、x86環境で、ARM向けにクロスコンパイル
- qemu / debootstrap
- qemuをdockerで動かす方法あれば教えてください
- https://webrtc.org/ のサンプルがそのまま動かない
- raspbianだから?
- 画像でない
- USB Video Class(UVC)対応なら使える
- UV4Lほどパフォーマンスでない
- VP8EncoderImpl::NumberOf..を上げる
- USBが遅いのでVGAでもMJPEGを使うべし
- チューニングしたいけどそもそもUSBカメラの画質が・・
専門外過ぎてよーわからんくなったのでメモはここまで!
Inside of 聖徳玉子 by o2
これの話。
- 聖徳太子ではなく聖徳玉子
- 音の鳴ってる方向に向く
- 画面分割
音の鳴ってる方向に向く
- HARKの3機能
- 定位を取得
- 音源を分離
- それを解析
- ブラウザでGUIから設定できる
- 標準出力にSourceTrackerのログが出る
- それをGoで処理して角度に
- その角度の方向にカメラを向ける
画面分割
- Thetaの動画
- getUserMedia -> video -> canvas
- three.js x [thetaview.js](https://github.com/akokubo/ThetaViewer)
- 頂点マップにUV Texture貼り付け
- サブビューはそれぞれcanvasに動画を
ThetaのViewer用のjs、探したらいっぱいあった・・。
LT: SFUのクラウドサービスAnzuでWebRTCライブストリーミング配信やってみた by a-baba
四国からわざわざこのために!
- https://hirome-anzu-live.herokuapp.com/
- WebRTCで1対多配信したい
- P2P: 配信側の帯域が・・
- MCU: 中継サーバーの帯域が・・
- SFU: これだ!
- SFUなら時雨堂!Anzu!
- https://anzu.shiguredo.jp/
- GitHubのアカウントさえあれば
- jsSDKはあるけど、iOSどうしよう・・
- アプリにしないと無理そう
- よし、YouTubeで
- Anzuの録画機能を使ってもできるけど
- herokuの無料枠で使ってたが故にSleep -> あわてて課金
- 11時間連続配信してもAnzuは落ちなかったすごい
- 配信機材
- PCはMac
- BGMはもうiPhoneでやっちゃう
- VideoSwitcherには http://camtwiststudio.com/
- PinPとかもココで
次回は年明け1月くらいとのこと。