This document discusses WebRTC and provides information about its capabilities and implementations. It covers topics like how WebRTC enables real-time communication directly in the browser between computers, mobile devices, and Internet of Things devices using APIs for audio/video streaming and peer-to-peer data sharing without plugins. It also discusses how WebRTC uses UDP and works around issues like NAT traversal using STUN, TURN, and ICE to establish connections.
This document discusses Yarn and its advantages over npm. It notes that Yarn uses yarn.lock files instead of npm-shrinkwrap.json files to lock down dependency versions. Yarn is also described as being faster, able to work offline by caching dependencies, and potentially more secure than npm with features like flat mode and module folders. The document suggests Yarn may handle dependencies and devDependencies differently than npm, and questions whether the yarn.lock file should be committed to source control.
This document discusses WebRTC Native Client (WebRTC NaCl), which allows using the WebRTC API from native applications. It describes how WebRTC NaCl can be used to build native clients for WebRTC using C++ on Windows, macOS, Linux, iOS, and Android. It also summarizes the WebRTC Native Client project Momo, which provides a C++ library for building WebRTC applications that can run on devices like Raspberry Pi.
This document discusses WebRTC Native Client (WebRTC NaCl), which allows using the WebRTC API from native applications. It describes how WebRTC NaCl can be used to build native clients for WebRTC using C++ on Windows, macOS, Linux, iOS, and Android. It also summarizes the WebRTC Native Client project Momo, which provides a C++ library for building WebRTC applications that can run on devices like Raspberry Pi.
WebRTC Conference Japan 2016 (2016年2月16日) の講演資料です。
発表者は中蔵聡哉と大津谷亮祐 http://www.slideshare.net/rotsuya です。
“Telexistence Robot controlled with WebRTC”
It's the presentation slides at WebRTC Conference Japan on Feb 16, 2016.
The presenters were Toshiya Nakakura and Ryosuke Otsuya http://www.slideshare.net/rotsuya .
6. MCU (Multi-point Control Unit)
サーバーサイドで映像加工を行う仕組み
? メリット
? PeerConnectionは一本でよい
? サーバーでデコードするため異種接続可
? 自動応答や動画再生も可能
? デメリット
? 画質の劣化が発生する
? サーバー負荷が非常に高い
? Videoが結合されて送られるため、
参加者ごとに別枠表示や拡大は難しい
MCU
A B C D
A B C D
デコード
エンコード
結合
A B
C D
A B C D
1フレームに
4人を収める
A B
C D
A B
C D
A B
C D
A B
C D
7. SFU (Selective Forwarding Unit)
サーバーが配信を代行する仕組み
? メリット
? クライアントはSFUにだけ、映像を送ればよい
? サーバー負荷がMCUに比べ非常に低い
? 個別の映像で来るため、Videoタグを分けて
自由なレイアウトが可能
? デメリット
? デコードの数は変わらず端末負荷がある
? 仕組みとして複雑なため、実装も複雑になる
MCU
A
C D
B
SFU
A
B C D
分配のみ
A A A
12. SFU (Selective Forwarding Unit)
サーバーが配信を代行する仕組み
SFU
A
B C D
PeerConnectionは
SFUとクライアント間で張る
A A A
SFUは
配信しかしない
クライアントは
配信者の映像を
受け取る
配信のみの場合はHLS (Http Live Streaming) が存在する
14. 映像品質低下を避ける技術
SFU
A B
C D
送信者 有線
WiFi携帯
SFU
A B
C D
送信者 有線
WiFi携帯
赤い電車が走ってきた。
駅のホームに。
汽笛をならして。
赤い電車が走ってきた。
駅のホームに。
汽笛をならして。
赤い電車が走ってきた。
駅のホームに。
赤い電車が走ってきた。
simulcast SVC
送信者が複数サイズの映像をSFUに送る
→送信者の負荷が高い
送信者がSVCコーデック映像をSFUに送る
→特許技術
SFUが受信相手の状況を把握して、送るパケットを変えるしかない