Download - WebRTCとSFU
![Page 1: WebRTCとSFU](https://reader035.vdocuments.pub/reader035/viewer/2022081513/58eef34e1a28ab386d8b4593/html5/thumbnails/1.jpg)
WebRTCと SFU
TAG Developer Summit@sakkuru
![Page 2: WebRTCとSFU](https://reader035.vdocuments.pub/reader035/viewer/2022081513/58eef34e1a28ab386d8b4593/html5/thumbnails/2.jpg)
Saki Homma@sakkuru
NTT Communications
![Page 3: WebRTCとSFU](https://reader035.vdocuments.pub/reader035/viewer/2022081513/58eef34e1a28ab386d8b4593/html5/thumbnails/3.jpg)
![Page 4: WebRTCとSFU](https://reader035.vdocuments.pub/reader035/viewer/2022081513/58eef34e1a28ab386d8b4593/html5/thumbnails/4.jpg)
WebRTC
クライアント間で映像・音声・データをP2Pでリアルタイムにやり取りできる技術
![Page 5: WebRTCとSFU](https://reader035.vdocuments.pub/reader035/viewer/2022081513/58eef34e1a28ab386d8b4593/html5/thumbnails/5.jpg)
事例
WebRTCのプラットフォームを開発・運用しています
![Page 6: WebRTCとSFU](https://reader035.vdocuments.pub/reader035/viewer/2022081513/58eef34e1a28ab386d8b4593/html5/thumbnails/6.jpg)
実際WebRTCの開発をしていると・・・
![Page 7: WebRTCとSFU](https://reader035.vdocuments.pub/reader035/viewer/2022081513/58eef34e1a28ab386d8b4593/html5/thumbnails/7.jpg)
• つらいつらいことがめっちゃある
![Page 8: WebRTCとSFU](https://reader035.vdocuments.pub/reader035/viewer/2022081513/58eef34e1a28ab386d8b4593/html5/thumbnails/8.jpg)
WebRTC開発つらいリスト• ブラウザの互換の問題• プロトコル多すぎ• IP, UDP, TCP, TLS, RTP…• DTLS, SRTP, SCTP…• SDP, NAT, NAT traversal, ICE...• TURN, STUN, MCU, SFU• レイヤ 4の知識は当然いるよ• レイヤ 3の知識も当たり前にいるよ• コーデックの知識もいるよ• 問題の切り分けが難しい• W3Cや IETFの仕様書が多い• どんどん変化する仕様• ハイスペックが要求されるマシン• なぜかつながらない• なぜかつながる• なぜか切れる• なぜか音は流れるのに映像がでない
• なぜか片方だけ映像がでる• なぜかデモのときだけ失敗する• 開発中自分の顔がずっと映る
もっとあると思う
![Page 9: WebRTCとSFU](https://reader035.vdocuments.pub/reader035/viewer/2022081513/58eef34e1a28ab386d8b4593/html5/thumbnails/9.jpg)
つらい 01
ブラウザ互換の問題の例
![Page 10: WebRTCとSFU](https://reader035.vdocuments.pub/reader035/viewer/2022081513/58eef34e1a28ab386d8b4593/html5/thumbnails/10.jpg)
WebRTCの通信がはじまるまで
こういう映像をこういうコーデックで送るよあと IPアドレスこれね
![Page 11: WebRTCとSFU](https://reader035.vdocuments.pub/reader035/viewer/2022081513/58eef34e1a28ab386d8b4593/html5/thumbnails/11.jpg)
WebRTCの通信がはじまるまで
OK!こっちはこういう映像をこういうコーデックで送るよこっちの IPはこれね
![Page 12: WebRTCとSFU](https://reader035.vdocuments.pub/reader035/viewer/2022081513/58eef34e1a28ab386d8b4593/html5/thumbnails/12.jpg)
WebRTCの通信がはじまるまで
WebRTCの通信がはじまる
![Page 13: WebRTCとSFU](https://reader035.vdocuments.pub/reader035/viewer/2022081513/58eef34e1a28ab386d8b4593/html5/thumbnails/13.jpg)
ブラウザ違っても通信できる!
![Page 14: WebRTCとSFU](https://reader035.vdocuments.pub/reader035/viewer/2022081513/58eef34e1a28ab386d8b4593/html5/thumbnails/14.jpg)
複数の映像をやりとりしたい
![Page 15: WebRTCとSFU](https://reader035.vdocuments.pub/reader035/viewer/2022081513/58eef34e1a28ab386d8b4593/html5/thumbnails/15.jpg)
そのままではできない
![Page 16: WebRTCとSFU](https://reader035.vdocuments.pub/reader035/viewer/2022081513/58eef34e1a28ab386d8b4593/html5/thumbnails/16.jpg)
なぜか ?こういう映像をこういうコーデックで送るよあと IPアドレスこれね
このとき
![Page 17: WebRTCとSFU](https://reader035.vdocuments.pub/reader035/viewer/2022081513/58eef34e1a28ab386d8b4593/html5/thumbnails/17.jpg)
v=0o=- 2488805575470474716 2 IN IP4 127.0.0.1s=-t=0 0a=group:BUNDLE audio videoa=msid-semantic: WMS 8WozN5N6ncERDDK3jSxrUzqWriXmcstBeW5qm=audio 9 RTP/SAVPF 111c=IN IP4 0.0.0.0a=rtcp:9 IN IP4 0.0.0.0a=ice-ufrag:X3J3a=ice-pwd:wJvn+Tv+CfdqsqFKuOazBDsLa=fingerprint:sha-256 26:E2:BF:B8:57:80:92:FC:7C:6E:1E:F6:C4:84:7B:92:29:65:6D:29:A9:D6:9D:33:A7:13:BA:36:E5:0C:D4:91a=setup:activea=mid:audioa=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-levela=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-timea=sendrecva=rtcp-muxa=rtpmap:111 opus/48000/2a=fmtp:111 minptime=10;useinbandfec=1a=ssrc:2563974588 cname:x6dRh6wS7Lw9igqNa=ssrc:2563974588 msid:8WozN5N6ncERDDK3jSxrUzqWriXmcstBeW5q f2013dbf-2038-4849-8fb3-f0b4d07bf09da=ssrc:2563974588 mslabel:8WozN5N6ncERDDK3jSxrUzqWriXmcstBeW5qa=ssrc:2563974588 label:f2013dbf-2038-4849-8fb3-f0b4d07bf09dm=video 9 RTP/SAVPF 100c=IN IP4 0.0.0.0a=rtcp:9 IN IP4 0.0.0.0a=ice-ufrag:X3J3a=ice-pwd:wJvn+Tv+CfdqsqFKuOazBDsLa=fingerprint:sha-256 26:E2:BF:B8:57:80:92:FC:7C:6E:1E:F6:C4:84:7B:92:29:65:6D:29:A9:D6:9D:33:A7:13:BA:36:E5:0C:D4:91a=setup:activea=mid:videoa=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-timea=sendrecva=rtcp-muxa=rtpmap:100 VP8/90000a=rtcp-fb:100 ccm fira=rtcp-fb:100 nacka=rtcp-fb:100 nack plia=rtcp-fb:100 goog-remba=ssrc:1414028774 cname:x6dRh6wS7Lw9igqNa=ssrc:1414028774 msid:8WozN5N6ncERDDK3jSxrUzqWriXmcstBeW5q 027a33e3-05bd-4fce-b67b-60b53d8e98a0a=ssrc:1414028774 mslabel:8WozN5N6ncERDDK3jSxrUzqWriXmcstBeW5qa=ssrc:1414028774 label:027a33e3-05bd-4fce-b67b-60b53d8e98a0
やり取りしてるのはこんな文字列
![Page 18: WebRTCとSFU](https://reader035.vdocuments.pub/reader035/viewer/2022081513/58eef34e1a28ab386d8b4593/html5/thumbnails/18.jpg)
ブラウザによってフォーマットが違うΣ( ̄ロ ̄ lll)
![Page 19: WebRTCとSFU](https://reader035.vdocuments.pub/reader035/viewer/2022081513/58eef34e1a28ab386d8b4593/html5/thumbnails/19.jpg)
Chrome: PlanB SDPFirefox: Unified Plan SDP
でも近々 Unified Planに統合される予定年末~1月くらい?
![Page 20: WebRTCとSFU](https://reader035.vdocuments.pub/reader035/viewer/2022081513/58eef34e1a28ab386d8b4593/html5/thumbnails/20.jpg)
1つの映像 /音声 /データ
SDPの差はほぼない (少しある )→ Chrome-FF間で通信可能
![Page 21: WebRTCとSFU](https://reader035.vdocuments.pub/reader035/viewer/2022081513/58eef34e1a28ab386d8b4593/html5/thumbnails/21.jpg)
複数の映像 /音声 /データ
SDPの差が大きい→ Chrome-FF間では SDPの変換・生成が必要
![Page 22: WebRTCとSFU](https://reader035.vdocuments.pub/reader035/viewer/2022081513/58eef34e1a28ab386d8b4593/html5/thumbnails/22.jpg)
SFUのはなしSFU = Selective Forwarding Unit
![Page 23: WebRTCとSFU](https://reader035.vdocuments.pub/reader035/viewer/2022081513/58eef34e1a28ab386d8b4593/html5/thumbnails/23.jpg)
SFU
上りも下りも人数分
上りは 1本下りは人数分
P2P
クライアントの負荷が小さいので通信可能な人数が増える
![Page 24: WebRTCとSFU](https://reader035.vdocuments.pub/reader035/viewer/2022081513/58eef34e1a28ab386d8b4593/html5/thumbnails/24.jpg)
SFUのサーバ
両方の SDPフォーマットを解釈しSDPの差を吸収可能
![Page 25: WebRTCとSFU](https://reader035.vdocuments.pub/reader035/viewer/2022081513/58eef34e1a28ab386d8b4593/html5/thumbnails/25.jpg)
8月から SFU機能の α版を無償で提供しています
![Page 26: WebRTCとSFU](https://reader035.vdocuments.pub/reader035/viewer/2022081513/58eef34e1a28ab386d8b4593/html5/thumbnails/26.jpg)
SFUモードはGoogle Chromeのみ
![Page 27: WebRTCとSFU](https://reader035.vdocuments.pub/reader035/viewer/2022081513/58eef34e1a28ab386d8b4593/html5/thumbnails/27.jpg)
先週@SkyWay開発チーム
Firefoxで SFU動きました!
やばい何この安定感
Awesome job!
![Page 28: WebRTCとSFU](https://reader035.vdocuments.pub/reader035/viewer/2022081513/58eef34e1a28ab386d8b4593/html5/thumbnails/28.jpg)
近日中にFirefoxにも対応するよ!
![Page 29: WebRTCとSFU](https://reader035.vdocuments.pub/reader035/viewer/2022081513/58eef34e1a28ab386d8b4593/html5/thumbnails/29.jpg)
おしまい