Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Scaling Video
Infrastructure
Dr. Alex Gouaillard
CTO Temasys Communications
Limits of P2P
Other interesting configurations / use cases
MCU internals
Open Source MCUs
Limits of P2P
Other interesting configurations / use cases
MCU internals
Open Source MCUs
Limits of P2P: client side scalability
Alice Bob
Alice Bob
Chris
Alice Bob
Chris David
2
6
12
Alice
Bob
Chris
EdDave
20
n(...
Business as usual MCU: multiplexing streams
- wow, super bandwidth !
- Hum, wait, what about latency?
- What happen if pee...
Smarter topology ?
Alice
Bob
Chris
EdDave
broad
cast
12,5
(n^2)/2 O(n^2)
type
Streams
IN
Streams
OUT
p2p N-1 N-1
MCU 1 1
H...
Smarter topology ?
- bandwidth optimization WITH layout freedom
0
100
200
300
400
500
600
2 7 12 17 22
type
Streams
IN
Str...
Limits of P2P
Other interesting configurations / use cases
MCU internals
Open Source MCUs
Broadcast / seminar
Prof
Broad
cast
Broad
cast
Broad
cast
Broad
cast
Broad
cast
S
S
S
S
S
S
S
SS
S
S
S
SS
S
S
Heterogeneous – Bandwidth, CPU, Display - Concept
Desk.
Desk.
Cr.
Book
Mobil
e
Mobil
e
MCU
HD
HD
SD
QVGA
QVGA
Heterogeneous – Case 1: simulcast
The user send the same stream at different resolutions
Pro: easy on the server side (swi...
Heterogeneous – Case 2: video Proc. In MCU
Scale down and/or drop frames in the MCU
Pro: no overhead on client
Con: full o...
Heterogeneous – Case 3: streams management In MCU (SVC)
- PRO: Only 30% overhead on client.
- PRO: No need for raw media o...
Limits of P2P
Other interesting configurations / use cases
MCU internals
Open Source MCUs
MCU Internals – The Onion
decryptunstream unload
UDP
TCP
TLS
SRTP RTP VP8
Decode
MAGIC
Raw Media
loadencode encrypt
VP8 RT...
MCU Internals – Variation 1: old school MCU
decryptunstream unload
UDP
TCP
TLS
SRTP RTP VP8
Decode
Scale &
Rotate
Raw
Medi...
MCU Internals – Variation 2: relay / TURN
decryptunstream unload
UDP
TCP
TLS
SRTP RTP VP8
Decode
MAGIC
Raw Media
loadencod...
MCU Internals – Variation 3: Broadcast
unstream
UDP
TCP
TLS
stream
UDP
TCP
TLS
multicopy
stream
UDP
TCP
TLS
stream
UDP
TCP...
MCU Internals – Variation 4: Recording
decryptunstream unload
UDP
TCP
TLS
SRTP RTP VP8
Decode
record
Raw Media
MCU Internals – Variation 5: Transcoding
decryptunstream unload
UDP
TCP
TLS
SRTP RTP VP8
Decode
Raw Media
loadencode encry...
Limits of P2P
Other interesting configurations / use cases
MCU internals
Open Source MCUs
Foreword on Open Source MCUs
● All Chrome/Mozilla ready (except Jitsi)
● No data channel (Janus is the closest to have it)...
Kurento (Total files:210/LoC:25000) - JAVA
PROS CONS
● Licensed under L-GPL License.
● 2$M EUR support from EU
● Using GSt...
Licode/ Lynckia (Total files:110/LoC:26000) – C++
PROS CONS
● MIT License ● No working example/demo
● Project dead? (last ...
Jitsi (Total files:15/LoC:8000) - JAVA
PROS CONS
● Licensed under MIT license
● Small code base
● Bandwidth improvement
● ...
Janus (Total files:30/LoC:14,000) - C
PROS CONS
● Low level. CPU efficient.
● Easy to install/use
● Bandwidth management
●...
QUESTIONS
THANK YOU!
Upcoming SlideShare
Loading in …5
×

Scaling WebRTC Video Infrastructure, June 2014 @ WebRTC conference and Expo

2,204 views

Published on

Slides of the corresponding presentation at webRTC Conf. and Expo June 2014.

Published in: Software
  • Be the first to comment

Scaling WebRTC Video Infrastructure, June 2014 @ WebRTC conference and Expo

  1. 1. Scaling Video Infrastructure Dr. Alex Gouaillard CTO Temasys Communications
  2. 2. Limits of P2P Other interesting configurations / use cases MCU internals Open Source MCUs
  3. 3. Limits of P2P Other interesting configurations / use cases MCU internals Open Source MCUs
  4. 4. Limits of P2P: client side scalability Alice Bob Alice Bob Chris Alice Bob Chris David 2 6 12 Alice Bob Chris EdDave 20 n(n-1) O(n^2)
  5. 5. Business as usual MCU: multiplexing streams - wow, super bandwidth ! - Hum, wait, what about latency? - What happen if peers are far away …. ? - Interface layout ?? => CP, VAS Ok, that’s great but …. - Chat? I mean, if only to pass a link - Collaboration (white board?) - Services other than A/V? - Usage beyond the boardroom model: BYOD device, work from home, …. Alice Bob Chris EdDave MCU 5 n O(n)
  6. 6. Smarter topology ? Alice Bob Chris EdDave broad cast 12,5 (n^2)/2 O(n^2) type Streams IN Streams OUT p2p N-1 N-1 MCU 1 1 Hybrid N-1 1
  7. 7. Smarter topology ? - bandwidth optimization WITH layout freedom 0 100 200 300 400 500 600 2 7 12 17 22 type Streams IN Streams OUT p2p N-1 N-1 MCU 1 1 Hybrid N-1 1
  8. 8. Limits of P2P Other interesting configurations / use cases MCU internals Open Source MCUs
  9. 9. Broadcast / seminar Prof Broad cast Broad cast Broad cast Broad cast Broad cast S S S S S S S SS S S S SS S S
  10. 10. Heterogeneous – Bandwidth, CPU, Display - Concept Desk. Desk. Cr. Book Mobil e Mobil e MCU HD HD SD QVGA QVGA
  11. 11. Heterogeneous – Case 1: simulcast The user send the same stream at different resolutions Pro: easy on the server side (switch) Cons: overhead on client (still better than p2p) Desk. HD MCU SD QVGA Cr. Book Mobile Desk. HD SD QVGA
  12. 12. Heterogeneous – Case 2: video Proc. In MCU Scale down and/or drop frames in the MCU Pro: no overhead on client Con: full overhead on server (need access to raw frame) Desk. MCU HD Cr. Book Mobile Desk. HD SD QVGA
  13. 13. Heterogeneous – Case 3: streams management In MCU (SVC) - PRO: Only 30% overhead on client. - PRO: No need for raw media on server
  14. 14. Limits of P2P Other interesting configurations / use cases MCU internals Open Source MCUs
  15. 15. MCU Internals – The Onion decryptunstream unload UDP TCP TLS SRTP RTP VP8 Decode MAGIC Raw Media loadencode encrypt VP8 RTP SRTP stream UDP TCP TLS
  16. 16. MCU Internals – Variation 1: old school MCU decryptunstream unload UDP TCP TLS SRTP RTP VP8 Decode Scale & Rotate Raw Media loadencode encrypt VP8 RTP SRTP stream UDP TCP TLS decryptunstream unload UDP TCP TLS SRTP RTP VP8 Decode Scale & Rotate Raw Media decryptunstream unload UDP TCP TLS SRTP RTP VP8 Decode Scale & Rotate Raw Media
  17. 17. MCU Internals – Variation 2: relay / TURN decryptunstream unload UDP TCP TLS SRTP RTP VP8 Decode MAGIC Raw Media loadencode encrypt VP8 RTP SRTP stream UDP TCP TLS
  18. 18. MCU Internals – Variation 3: Broadcast unstream UDP TCP TLS stream UDP TCP TLS multicopy stream UDP TCP TLS stream UDP TCP TLS stream UDP TCP TLS stream UDP TCP TLS
  19. 19. MCU Internals – Variation 4: Recording decryptunstream unload UDP TCP TLS SRTP RTP VP8 Decode record Raw Media
  20. 20. MCU Internals – Variation 5: Transcoding decryptunstream unload UDP TCP TLS SRTP RTP VP8 Decode Raw Media loadencode encrypt H264 RTP SRTP stream UDP TCP TLS
  21. 21. Limits of P2P Other interesting configurations / use cases MCU internals Open Source MCUs
  22. 22. Foreword on Open Source MCUs ● All Chrome/Mozilla ready (except Jitsi) ● No data channel (Janus is the closest to have it) ● None gave huge CPU saving but expect bandwidth saving
  23. 23. Kurento (Total files:210/LoC:25000) - JAVA PROS CONS ● Licensed under L-GPL License. ● 2$M EUR support from EU ● Using GStreamer ● Developers answering quickly ● Large project, Complicated design ● no low level API ● 3 entities: Web Server -> Connector- >Media Server ● Academic driven. ● Webrtc Loopback to Http player. Http player = possibility to integrate into IE or Safari but latency of 5 secs. Currently there is a bug on the IE/Safari support. ● Audio + Video recorder into webm or mp4 format (one user only) Currently the javascript API is “one user only”. This means that it is not possible to mix source of different session (availability expected: end of the month). Available with the JAVA API: ● Video conferencing up to 4 peers
  24. 24. Licode/ Lynckia (Total files:110/LoC:26000) – C++ PROS CONS ● MIT License ● No working example/demo ● Project dead? (last commit on the MCU 2 months ago: https://github.com/ging/licode/tree/m aster/erizo) Personal Comment: Even the demos on their website are down: http://chotis2.dit.upm.es/
  25. 25. Jitsi (Total files:15/LoC:8000) - JAVA PROS CONS ● Licensed under MIT license ● Small code base ● Bandwidth improvement ● XMPP (federation, presence, …) ● Installation can be difficult ● No real CPU improvement What I did with it/Available demos tested: ● Video conferencing https://meet.jit.si/
  26. 26. Janus (Total files:30/LoC:14,000) - C PROS CONS ● Low level. CPU efficient. ● Easy to install/use ● Bandwidth management ● Easy Extension through plugin arch. ● Developer answering FAST. ● License: GPL • Each function needs to be a plugin Personal Comment: I have been able to test many functionalities and easily. After one day studying the source code I’m able to understand the main functionalities What I did with it/Available demos tested: ● Video/Audio conferencing with control for the number of publisher (1 publisher = broadcasting) and number of person in the room ● Screensharing ● Streaming Audio file: on demand (different streaming contexts for each client) or live (same streaming context for each client) ● Streaming rtp source using a rtp source generator (gstreamer = audio+video -> gateway -> clients) ● Audio conferencing: mix all audio of other peers into one audio stream. Possible to record the audio into wav. ● Audio recording into .opus format ● NOT TESTED Sip Gateway (works with Asterisk)
  27. 27. QUESTIONS THANK YOU!

×