狠狠撸

狠狠撸Share a Scribd company logo
meidasoup アップデート
OSSのSFU meidasoup 最新情報
WebRTC Meetup Tokyo #15
インフォコム株式会社
がねこまさし
@massie_g
2017.06.13
1
自己紹介
? がねこまさし / @massie_g
? インフォコム株式会社で、技術調査チームに所属
? WebRTC Meetup Tokyo スタッフ
? WebRTC Begginers Tokyo 講師
? WebRTC入門2016を HTML5Experts.jpに執筆
– https://html5experts.jp/series/webrtc2016/
2
今日のお題
? 前回(#13)の復習
– SFU : Selective forwarding Unit
– mediasoup : オープンソースのSFU モジュール
? 今回(#15)の新しい話題
– v0.3 (2017.01.27時点) → v1.2 (2017.05.26現在) に進化
– 使い方が変わったので、新しいサンプルソース
? https://github.com/mganeko/mediasoup_sample
3
前回(#13)の復習
4
P2P と SFU:Selective Forwarding Unit
ブラウザ
A
ブラウザ
B
ブラウザ
D
ブラウザ
C
P2Pの場合
? サーバ不要 ◎
? ブラウザ側の
? CPU負荷:高 ×
? ネットワーク負荷:高 ×
5
ブラウザ
A
ブラウザ
B
ブラウザ
D
ブラウザ
C
SFU
映像?音声
を分岐/配信
SFUの場合
? SFUサーバ必要 → CPU負荷:低 ○
? ブラウザ側はCPU負荷:低め ○
? ブラウザ側はネットワーク負荷:中 △
表示レイアウトの
自由度が高い ◎
MCU と SFU
6
ブラウザ
A
ブラウザ
B
ブラウザ
D
ブラウザ
C
SFU
映像?音声
を分岐/配信
ブラウザ
A
ブラウザ
B
ブラウザ
D
ブラウザ
C
MCU
映像?音声
を合成
MCUの場合
? MCUサーバ必要 → CPU負荷:激高 ××
? ブラウザ側はCPU/ネットワーク負荷:低 ◎
SFUの場合
? SFUサーバ必要 → CPU負荷:低 ○
? ブラウザ側はCPU負荷:低め ○
? ブラウザ側はネットワーク負荷:中 △
表示レイアウトの
自由度が高い ◎
圧縮と暗号化
7
Browser
いらすとや http://www.irasutoya.com/
BrowserP2P
圧縮/エンコード
暗号化
通信 復号化
解凍/デコード
TURN Browser
TURN Browser
SFU
MCU
Browser SFU Browser
Browser MCU Browser
mediasoupとは?
? オープンソースのSFU
– サイト https://mediasoup.org/
– GitHub https://github.com/ibc/mediasoup/ → https://github.com/versatica/mediasoup
? 独立したサーバーではなく、部品
– Instead of creating yet another opinionated server, mediasoup is a Node.js module
which can be integrated into a larger application or made standalone with just a few
lines of JavaScript.
– 「他のアプリに組み込める」
? Node.js用モジュールとして提供
– Webサーバーやシグナリングの仕組みは、自分で用意する必要あり
8
mediasoupとは? (2)
? ミニマム … メディアのみ、かつSFUなのでコーデックは処理しない
? パワフル … 実体は C++ で記述、libuv 利用
– Node.js から起動された子プロセスで通信を担当
– Node.js とはプロセス間通信でやりとり
? JavaScript API を提供
– WebRTC 1.0 … RTCPeerConnection, promise利用
– ORTC … Transport, RtpSender, RtpReceiver
9
mediasoup サンプル Demo
10
? 複数人の双方向通信
– 映像/音声
– 見た目P2Pと変わらないけど…
? SFUサーバーを止めると、映像も停止
? ソースコード
– https://github.com/mganeko/mediasoup_sample
? 複数人双方向に加えて、片方向配信、SSL対応版も
mediasoup のインストール
? 前提環境
– Node.js v4.8.0 以上
– Linux / Mac OS X ※Windowsは未サポート
– Python 2.x
? pyenv / virtualenv利用時は要注意。明示的なローカルPythonのバージョン指定が必要
? $ pyenv local 2.7.12
– make
– gcc & g++ または clang, with C++11
? インストール
– $ npm install mediasoup
? C++のコンパイルあり、数分から数十分でビルド→インストール完了
11
mediasoup のオブジェクト構造(1)
12
Server
Room
Room
Room
Peer
Peer
Peer Transport
Transport
RtpSender
RtpSender
RtpSender
RtpReceiver
RtpReceiver
RtpReceiver
?1つのServerに複数のRoom
?1つのRoomに複数のPeer
?1つのPeerに複数のRtpSender
?1つのPeerに複数のRtpReceiver
?1つのPeerに複数のTransport
MediaTrackに対応(video/audio)
MediaTrackに対応(video/audio)
通信ポートに対応
(UDP/TCP)
1つのTransportを
?複数のRtpSender
?複数のRtpReceiver
で利用可能
BUNDLE
mux
mediasoup のRoomの構造
13
Room
Peer
RtpReceiver
RtpSender
Browser Browser
Peer
RtpReceiver
RtpSender
Peer
Browser
RtpReceiver RtpSender
RtpSender RtpSender
RtpSender
Room内のmediaの
流れは自動に組み
立てられる
Transport
Transport
Transport
mediasoupのプロセス
14
デフォルトは
コア数分
1つのRoom
5つのPeerの時
1つのRoomは
同じworkerに割り振られる
利用のイメージ
let server = mediasoup.Server();
let peer1;
let receiver1;
return server.createRoom(roomOptions)
.then( (room) => {
peer1 = room.Peer('alice');
return peer.setCapabilities(peerCapabilities);
})
.then(() => {
return peer.createTransport({ tcp: false });
})
.then((transport) => {
rtpReceiver1 = peer1.RtpReceiver('audio', transport);
})
15
? 順番に自分でオブジェクトを組み立てる
? Promiseベース
? RtpSenderは自分で明示的には生成しない
? 自動に生成され、イベントで渡される
※まだ良く分かっ
ていません…
※ここが結構
ややこしい
mediasoup のオブジェクト構造(2)
16
Server
Room
Room
Room
Peer
Peer
Peer
RTCPeerConnection
? 1つのRTCPeerConnectionと、1つのPeerが対応
→ Offer/Answerのやり取りで通信を確立できる
RTCPeerConnection
RTCPeerConnection
今回 (#15)での、v1.2の更新情報
17
v1.x の大きな変更
? v1.x
? 最初のOfferはmediasoup側(SFU側)から
? v0.3
– 最初のOfferはブラウザ側(クライアント側)から
18
RTCPeerConenctionを使った流れ(v0.3)
19
Browser A
RTCPeerConnection
mediasoup
RTCPeerConnection A
Browser B
send offer SDP
send offer SDP
send answer SDP
send answer SDP
onnegotiationneeded()発火
onnegotiationneeded()発火
RTCPeerConnection B RTCPeerConnection
send answer SDP
onaddstream() / ontrack() 発火
send offer SDP send offer SDP
send answer SDP
onaddstream() / ontrack() 発火
createOffer()
createAnswer()
createOffer()
createAnswer()
createOffer()
createAnswer()
createOffer()
createAnswer()
RTCPeerConenctionを使った流れ(v1.2)
20
Browser A
RTCPeerConnection
mediasoup
RTCPeerConnection A
Browser B
send “Peer Capabilities”
send offer SDP
send answer SDP
send offer SDP
onnegotiationneeded()発火
RTCPeerConnection B RTCPeerConnection
send answer SDP
onaddstream() / ontrack() 発火
onaddstream() / ontrack() 発火
createOffer()
createOffer()
createAnswer()
createOffer()
createAnswer()
createAnswer()
send “Peer Capabilities”
send answer SDP
send offer SDP
“Peer Capabilities” の送り方
? Peer Capabilities
– どんなコーデックが使えるか
– どんなRTCPの制御が使えるか
? ブラウザの能力を取得する方法
– ORTC, WebRTC 1.0 仕様なら取得可能、現在の実装では取得できない
? RTCRtpSender.getCapabilities(kind),
? RTCRtpReceiver.getCapabilities(kind)
– だがしかし、SDPに書いてある
? ブラウザ側
– createOffer({ offerToReceiveAudio: false, offerToReceiveVideo: false}) でSDPを取得
– setLocalDescription() しない … P2Pの試行は始まらない
– Capabilities 情報として、SDPをサーバー(MediaSoup)に送る
21
SDPに含まれる情報
22
m=video 50083 UDP/TLS/RTP/SAVPF 96 98 100 102 127 97 99 101 125
a=mid:video
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 VP8/90000
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 transport-cc
a=rtpmap:98 VP9/90000
a=rtcp-fb:98 ccm fir
a=rtcp-fb:98 nack
a=rtcp-fb:98 nack pli
a=rtcp-fb:98 goog-remb
a=rtcp-fb:98 transport-cc
a=rtpmap:100 H264/90000
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=rtcp-fb:100 goog-remb
a=rtcp-fb:100 transport-cc
a=fmtp:100 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
a=rtpmap:102 red/90000
a=rtpmap:127 ulpfec/90000
a=rtpmap:97 rtx/90000
a=fmtp:97 apt=96
a=rtpmap:99 rtx/90000
a=fmtp:99 apt=98
a=rtpmap:101 rtx/90000
a=fmtp:101 apt=100
a=rtpmap:125 rtx/90000
a=fmtp:125 apt=102
Peer Capabilities のやりとり (v1.2)
23
Browser A
RTCPeerConnection
mediasoup
RTCPeerConnection A
send “Peer Capabilities” SDP
send offer SDP
createOffer()
createAnswer()
setLocalDescription()
setCapabilities()
createOffer()
setRemoteDescription()
setLocalDescription()
setLocalDescription()
send answer SDP
setRemoteDescription()
RTCPeerConnectionの制約(v0.3)
? 最初のOfferをリモートから(ブラウザから)受け取る必要がある
– Currently, the mediasoup implementation of RTCPeerConnection requires that the initial offer
comes from the remote endpoint,
? その後、onnegotiationneeded()発火後に Offerを生成させる
? 通信確立後、リモート側でのOffer再生成には対応していない
– リモート側での stream / track 追加、削除には対応していない
? Chromeの採用しているPlan Bには暫定的な対応 … ※私のサンプルが悪いだけかも
24
あくまで RTCPeerConnectionの制限(mediasoupの実力の10%??)
Transport, RtpReceiver, SDP を自分で組み立てれば、できる(はず)
RTCPeerConnectionの変更 (v1.2)
? 最初にブラウザの能力(Capabilities)を受けとる
? Offerは常に mediasoup 側から … mediasoupはAnswerのみ受け取り
? 通信確立後にブラウザ側でstream / track 追加、削除の場合
– 何らかの方法で、mediasoupにリクエスト
– mediasoupで Offerを 再生成して送る
– ブラウザ側からstream/trackが変更されたAnswerを返す
? Plan B対応(Chrome対応)
– PeerConnection生成時に、明示的に指定することで対応可能
– Chrome / Firefox 混在で利用可能 … 元からかも(私のサンプルが悪かった)
25
Vanilla ICEの注意点
? サンプルではVanilla ICEを利用
– ブラウザ側で、createAnswer()直後にはSDPを送らない
– ICE Candidateが揃ってから、まとめてAnswer SDPを送信
? ブラウザ側で、2度目のcreateAnswer()の時
– Chrome では、 onicecandidate()は発火しない
? もう ICE Candidateはそろっている
? 待たずに、ただちに Answer SDPを送る
– Firefox では、onicecandidate()が発火(candidateは空)
? 待っても待たなくても良い
26
Vanilla ICEの注意点
27
Browser A
RTCPeerConnection
mediasoup
RTCPeerConnection A
Browser B
send “Peer Capabilities”
send offer SDP
send answer SDP
send offer SDP
onnegotiationneeded()発火
RTCPeerConnection B RTCPeerConnection
send answer SDP
onaddstream() / ontrack() 発火
onaddstream() / ontrack() 発火
createOffer()
createOffer()
createAnswer()
createOffer()
createAnswer()
createAnswer()
send “Peer Capabilities”
send answer SDP
send offer SDP
ここは、ICE candidateが
出揃うのを待つ
ここは待たずに送る
片方向配信の場合
? 1:nの片方向配信の場合
– mediasoup側で、受信側用のOffer 生成時にオプションを指定
? pc.createOffer({ offerToReceiveAudio:0, offerToReceiveVideo:0})
? 厳密に 1:n 配信したい場合
– 2人目の配信者は弾くように、アプリで制御する必要あり
– ※ そのまま2人目の配信者を加えた場合、2:n 配信になる
? さらに配信者間は双方向になる
? つまり、ontrack()/onaddstream() イベントが発生する
28※ RtpSenderを直接制御すれば、対処可能
mediasoup
片方向配信:1人の配信
29
Browser
Publisher 1
room Browser
Subscriber A
Browser
Subscriber B
Browser
Subscriber C
PeerConnection
PeerConnection
PeerConnection
PeerConnection
mediasoup
片方向配信:2人目の配信(想定)
30
Browser
Publisher 1
room Browser
Subscriber A
Browser
Subscriber B
Browser
Subscriber C
PeerConnection
PeerConnection
PeerConnection
PeerConnection
Browser
Publisher 2
PeerConnection
mediasoup
片方向配信:2人目の配信(実際)
31
Browser
Publisher 1
room Browser
Subscriber A
Browser
Subscriber B
Browser
Subscriber C
PeerConnection
PeerConnection
PeerConnection
PeerConnection
Browser
Publisher 2
PeerConnection
※ RtpSenderを直接制御すれば、対処可能
mediasoup その他の制約
? mediasoupは NAT/Firewallの外に置く必要あり
– mediasoupはSTUN/TURNを必要としない環境に置く
? ブラウザが NAT/Firewallの中にあるケースはOK
– ブラウザが(STUN)/TURNを利用するのはOK
32
mediasoup
Browser
STUN
Browser TURN
NAT
Firewall
まとめ
? WebRTCの主戦場は P2P → MCU → SFU/MCUの使い分け
? mediasoup も、v1.2でかなり安定利用できるようになった
– SFUを組み込んだアプリケーションを自分でも作れる
? もちろん、高機能、高安定性は商用製品が有力: Sora, tokbox, twillio
? 本日のプレゼン資料は 狠狠撸Shareに
– /mganeko/webrtc-sfu-mediasoup-sample-update
– English: https://speakerdeck.com/mganeko/playing-with-oss-webrtc-sfu-meidasoup-update-for-v1-dot-2
? ソースコードは GitHubに
– https://github.com/mganeko/mediasoup_sample
33
Thank you!
34

More Related Content

What's hot (20)

PDF
オンラインゲームの仕组みと工夫
Yuta Imai
?
PDF
苍驳颈苍虫入门
Takashi Takizawa
?
PPTX
WebRTC mediasoup on raspberrypi3
mganeko
?
PDF
奥别产搁罢颁入门+最新动向
Ryosuke Otsuya
?
PPTX
リアルタイムサーバー ?Erlang/OTPで作るPubSubサーバー?
Yugo Shimizu
?
PDF
WebRTC と Native とそれから、それから。
tnoho
?
PDF
【Unite 2017 Tokyo】「黒騎士と白の魔王」にみるC#で統一したサーバー/クライアント開発と現実的なUniRx使いこなし術
Unity Technologies Japan K.K.
?
PDF
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
shinjiigarashi
?
PPTX
ネットストーカー御用达翱厂滨狈罢ツール叠濒补肠办叠颈谤诲を触ってみた.辫辫迟虫
Shota Shinogi
?
PDF
噛み砕いてKafka Streams #kafkajp
驰补丑辞辞!デベロッパーネットワーク
?
PDF
オススメの标準?準标準ハ?ッケーシ?20选
Takuya Ueda
?
PPTX
ここがつらいよWebRTC - WebRTC開発の落とし穴
mganeko
?
PDF
谁も础诲诲谤别蝉蝉补产濒别について语らないなら、自分が语るしかない…ッッッッ
Tatsuhiko Yamamura
?
PDF
データセンターネットワークでの笔谤辞尘别迟丑别耻蝉活用事例
驰补丑辞辞!デベロッパーネットワーク
?
PDF
鲍苍颈搁虫完全に理解した
torisoup
?
PDF
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
モノビット エンジン
?
PDF
Redmine にいろいろ埋め込んて?みた
Kohei Nakamura
?
PDF
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
?
PDF
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
NTT DATA Technology & Innovation
?
PDF
WebRTCの技術解説 公開版
Contest Ntt-west
?
オンラインゲームの仕组みと工夫
Yuta Imai
?
苍驳颈苍虫入门
Takashi Takizawa
?
WebRTC mediasoup on raspberrypi3
mganeko
?
奥别产搁罢颁入门+最新动向
Ryosuke Otsuya
?
リアルタイムサーバー ?Erlang/OTPで作るPubSubサーバー?
Yugo Shimizu
?
WebRTC と Native とそれから、それから。
tnoho
?
【Unite 2017 Tokyo】「黒騎士と白の魔王」にみるC#で統一したサーバー/クライアント開発と現実的なUniRx使いこなし術
Unity Technologies Japan K.K.
?
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
shinjiigarashi
?
ネットストーカー御用达翱厂滨狈罢ツール叠濒补肠办叠颈谤诲を触ってみた.辫辫迟虫
Shota Shinogi
?
噛み砕いてKafka Streams #kafkajp
驰补丑辞辞!デベロッパーネットワーク
?
オススメの标準?準标準ハ?ッケーシ?20选
Takuya Ueda
?
ここがつらいよWebRTC - WebRTC開発の落とし穴
mganeko
?
谁も础诲诲谤别蝉蝉补产濒别について语らないなら、自分が语るしかない…ッッッッ
Tatsuhiko Yamamura
?
データセンターネットワークでの笔谤辞尘别迟丑别耻蝉活用事例
驰补丑辞辞!デベロッパーネットワーク
?
鲍苍颈搁虫完全に理解した
torisoup
?
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
モノビット エンジン
?
Redmine にいろいろ埋め込んて?みた
Kohei Nakamura
?
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
?
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
NTT DATA Technology & Innovation
?
WebRTCの技術解説 公開版
Contest Ntt-west
?

Similar to WebRTC SFU Mediasoup Sample update (20)

PPTX
WebRTC meetup Tokyo 1
mganeko
?
PDF
Let's begin WebRTC
yoshikawa_t
?
PPTX
Node.js x Headless Chrome for WeRTC MCU / Node.js x Chrome headless で、お手軽WebR...
mganeko
?
PDF
2013 WebRTC 概説 & ワークショップ
mganeko
?
PPTX
2016 February - WebRTC Conference Japan - 日本語
Alexandre Gouaillard
?
PPTX
WebRTC on Native App
WebRTCConferenceJapan
?
PPTX
ブラウザでWebRTC - iOSゲートウェイ作ってみた
mganeko
?
PDF
贬罢惭尝5开発最前线
yoshikawa_t
?
PDF
奥别产搁罢颁がよく分からないから调べて试してみた
toru tom
?
PPTX
2013 WebRTC node
mganeko
?
PPTX
翱搁罢颁の仕様书をざっくり斜め読みする
Yusuke Naka
?
PPTX
Web socket and gRPC
TIS Inc
?
PDF
奥别产搁罢颁/翱搁罢颁の最新动向まるわかり!
Yusuke Naka
?
PDF
厂辞肠办别迟厂迟谤别补尘入门
Kohei Kadowaki
?
PPTX
M-6 MQTTの使いどころ (JJUG CCC 2015 Spring)
Koji YUSA
?
PDF
WebRTCの技術解説 第二版 公開版 本編
Contest Ntt-west
?
PPTX
Webrtc bootcamp handson
mganeko
?
PPTX
Testing and packaging WebRTC Stack
Alexandre Gouaillard
?
PDF
最新Web 通信系API総まくり!WebRTC, Streams, Push api etc.
Kensaku Komatsu
?
PPTX
奥别产搁罢颁と厂贵鲍
Saki Homma
?
WebRTC meetup Tokyo 1
mganeko
?
Let's begin WebRTC
yoshikawa_t
?
Node.js x Headless Chrome for WeRTC MCU / Node.js x Chrome headless で、お手軽WebR...
mganeko
?
2013 WebRTC 概説 & ワークショップ
mganeko
?
2016 February - WebRTC Conference Japan - 日本語
Alexandre Gouaillard
?
WebRTC on Native App
WebRTCConferenceJapan
?
ブラウザでWebRTC - iOSゲートウェイ作ってみた
mganeko
?
贬罢惭尝5开発最前线
yoshikawa_t
?
奥别产搁罢颁がよく分からないから调べて试してみた
toru tom
?
2013 WebRTC node
mganeko
?
翱搁罢颁の仕様书をざっくり斜め読みする
Yusuke Naka
?
Web socket and gRPC
TIS Inc
?
奥别产搁罢颁/翱搁罢颁の最新动向まるわかり!
Yusuke Naka
?
厂辞肠办别迟厂迟谤别补尘入门
Kohei Kadowaki
?
M-6 MQTTの使いどころ (JJUG CCC 2015 Spring)
Koji YUSA
?
WebRTCの技術解説 第二版 公開版 本編
Contest Ntt-west
?
Webrtc bootcamp handson
mganeko
?
Testing and packaging WebRTC Stack
Alexandre Gouaillard
?
最新Web 通信系API総まくり!WebRTC, Streams, Push api etc.
Kensaku Komatsu
?
奥别产搁罢颁と厂贵鲍
Saki Homma
?
Ad

More from mganeko (20)

PDF
Google Meet でもバーチャル背景を使いたい (WebRTC Meetup Online)
mganeko
?
PPTX
Amazon Kinesis Video Streams WebRTC 使ってみた
mganeko
?
PPTX
Build Node.js-WASM/WASI Tiny compiler with Node.js
mganeko
?
PPTX
Node.jsでつくるNode.js ミニインタープリター&コンパイラー
mganeko
?
PPTX
厂办测飞补测のビデオチャットを録画しよう。そう、ブラウザでね
mganeko
?
PDF
Inside of 聖徳玉子 by O2
mganeko
?
PDF
Node.js with WebRTC DataChannel
mganeko
?
PPTX
WebRTC Build MCU on browser
mganeko
?
PPTX
笔别别谤颁辞苍苍别肠迟颈辞苍リレーと惭别诲颈补搁别肠辞谤诲别谤
mganeko
?
PPTX
WebRTC multitrack / multistream
mganeko
?
PDF
WebRTC UserMedia Catalog: いろんなユーザメディア(MediaStream)を使ってみよう
mganeko
?
PDF
WebRTC multistream
mganeko
?
PPTX
Inside WebM
mganeko
?
PPTX
MediaRecorder と WebM で、オレオレ Live Streaming
mganeko
?
PPTX
Chromebook 「だけ」で WebRTCを動かそう
mganeko
?
PPTX
Infocom webrtc conference japan
mganeko
?
PPTX
WebRTC getStats - WebRTC Meetup Tokyo 5 LT
mganeko
?
PPTX
Nodeで操るKurentoメディアサーバー ( Kurento + WebRTC + Node.js )
mganeko
?
PDF
WebRTC Summit 2014 NewYork 参加報告
mganeko
?
PPTX
奥别产搁罢颁のオーディオ処理の谜、谁か教えて!
mganeko
?
Google Meet でもバーチャル背景を使いたい (WebRTC Meetup Online)
mganeko
?
Amazon Kinesis Video Streams WebRTC 使ってみた
mganeko
?
Build Node.js-WASM/WASI Tiny compiler with Node.js
mganeko
?
Node.jsでつくるNode.js ミニインタープリター&コンパイラー
mganeko
?
厂办测飞补测のビデオチャットを録画しよう。そう、ブラウザでね
mganeko
?
Inside of 聖徳玉子 by O2
mganeko
?
Node.js with WebRTC DataChannel
mganeko
?
WebRTC Build MCU on browser
mganeko
?
笔别别谤颁辞苍苍别肠迟颈辞苍リレーと惭别诲颈补搁别肠辞谤诲别谤
mganeko
?
WebRTC multitrack / multistream
mganeko
?
WebRTC UserMedia Catalog: いろんなユーザメディア(MediaStream)を使ってみよう
mganeko
?
WebRTC multistream
mganeko
?
Inside WebM
mganeko
?
MediaRecorder と WebM で、オレオレ Live Streaming
mganeko
?
Chromebook 「だけ」で WebRTCを動かそう
mganeko
?
Infocom webrtc conference japan
mganeko
?
WebRTC getStats - WebRTC Meetup Tokyo 5 LT
mganeko
?
Nodeで操るKurentoメディアサーバー ( Kurento + WebRTC + Node.js )
mganeko
?
WebRTC Summit 2014 NewYork 参加報告
mganeko
?
奥别产搁罢颁のオーディオ処理の谜、谁か教えて!
mganeko
?
Ad

Recently uploaded (9)

PDF
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
Toru Tamaki
?
PDF
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
Toru Tamaki
?
PDF
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
?
PPTX
Vibe Codingを始めよう ?Cursorを例に、ノーコードでのプログラミング体験?
iPride Co., Ltd.
?
PPTX
色について.pptx .
iPride Co., Ltd.
?
PDF
安尾 萌, 藤代 裕之, 松下 光範. 協調的情報トリアージにおけるコミュニケーションの影響についての検討, 第11回データ工学と情報マネジメントに関する...
Matsushita Laboratory
?
PPTX
勉強会_ターミナルコマント?入力迅速化_20250620. pptx. .
iPride Co., Ltd.
?
PDF
安尾 萌, 北村 茂生, 松下 光範. 災害発生時における被害状況把握を目的とした情報共有システムの基礎検討, 電子情報通信学会HCGシンポジウム2018...
Matsushita Laboratory
?
PDF
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
フォーガンシー
?
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
Toru Tamaki
?
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
Toru Tamaki
?
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
?
Vibe Codingを始めよう ?Cursorを例に、ノーコードでのプログラミング体験?
iPride Co., Ltd.
?
色について.pptx .
iPride Co., Ltd.
?
安尾 萌, 藤代 裕之, 松下 光範. 協調的情報トリアージにおけるコミュニケーションの影響についての検討, 第11回データ工学と情報マネジメントに関する...
Matsushita Laboratory
?
勉強会_ターミナルコマント?入力迅速化_20250620. pptx. .
iPride Co., Ltd.
?
安尾 萌, 北村 茂生, 松下 光範. 災害発生時における被害状況把握を目的とした情報共有システムの基礎検討, 電子情報通信学会HCGシンポジウム2018...
Matsushita Laboratory
?
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
フォーガンシー
?

WebRTC SFU Mediasoup Sample update