SlideShare ist ein Scribd-Unternehmen logo
1 von 27
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(n-1) O(n^2)
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)
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
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
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 (switch)
Cons: overhead on client (still better than p2p)
Desk.
HD
MCU
SD
QVGA
Cr.
Book
Mobile
Desk.
HD
SD
QVGA
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
Heterogeneous – Case 3: streams management In MCU (SVC)
- PRO: Only 30% overhead on client.
- PRO: No need for raw media on server
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 RTP SRTP
stream
UDP
TCP
TLS
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
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
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
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 encrypt
H264 RTP SRTP
stream
UDP
TCP
TLS
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)
● None gave huge CPU saving but expect bandwidth saving
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
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/
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/
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)
QUESTIONS
THANK YOU!

Weitere ähnliche Inhalte

Mehr von Alexandre Gouaillard

DYI - Starting your own webrtc project
DYI - Starting your own webrtc projectDYI - Starting your own webrtc project
DYI - Starting your own webrtc projectAlexandre Gouaillard
 
2014 Webrtc Summit & Cloud Expo, RealTime Interactions for IoT
2014 Webrtc Summit & Cloud Expo, RealTime Interactions for IoT2014 Webrtc Summit & Cloud Expo, RealTime Interactions for IoT
2014 Webrtc Summit & Cloud Expo, RealTime Interactions for IoTAlexandre Gouaillard
 
2016 Q1 - WebRTC testing State of The Art
2016 Q1 - WebRTC testing State of The Art2016 Q1 - WebRTC testing State of The Art
2016 Q1 - WebRTC testing State of The ArtAlexandre Gouaillard
 
2016 February - WebRTC Conference japan - English
2016 February - WebRTC Conference japan - English2016 February - WebRTC Conference japan - English
2016 February - WebRTC Conference japan - EnglishAlexandre Gouaillard
 
2016 February - WebRTC Conference Japan - 日本語
2016 February - WebRTC Conference Japan - 日本語2016 February - WebRTC Conference Japan - 日本語
2016 February - WebRTC Conference Japan - 日本語Alexandre Gouaillard
 
WebRTC Object Model API - Transceivers
WebRTC Object Model API - TransceiversWebRTC Object Model API - Transceivers
WebRTC Object Model API - TransceiversAlexandre Gouaillard
 
Webrtc plugins for Desktop Browsers
Webrtc plugins for Desktop BrowsersWebrtc plugins for Desktop Browsers
Webrtc plugins for Desktop BrowsersAlexandre Gouaillard
 
WebRTC Browsers n Stacks Implementation differences
WebRTC Browsers n Stacks Implementation differencesWebRTC Browsers n Stacks Implementation differences
WebRTC Browsers n Stacks Implementation differencesAlexandre Gouaillard
 
Testing and packaging WebRTC Stack
Testing and packaging WebRTC StackTesting and packaging WebRTC Stack
Testing and packaging WebRTC StackAlexandre Gouaillard
 
Open Source Options for Building your WebRTC Solution, May 2015 @ WebRTC Conf...
Open Source Options for Building your WebRTC Solution, May 2015 @ WebRTC Conf...Open Source Options for Building your WebRTC Solution, May 2015 @ WebRTC Conf...
Open Source Options for Building your WebRTC Solution, May 2015 @ WebRTC Conf...Alexandre Gouaillard
 
WebRTC Infrastructure scalability notes - Geek'n Kranky - June 2014 @ Google SF
WebRTC Infrastructure scalability notes - Geek'n Kranky - June 2014 @ Google SFWebRTC Infrastructure scalability notes - Geek'n Kranky - June 2014 @ Google SF
WebRTC Infrastructure scalability notes - Geek'n Kranky - June 2014 @ Google SFAlexandre Gouaillard
 
WebRTC status and what to expect in 2015
WebRTC status and what to expect in 2015WebRTC status and what to expect in 2015
WebRTC status and what to expect in 2015Alexandre Gouaillard
 
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlantaPlugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlantaAlexandre Gouaillard
 
Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYC
Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYCPractical webRTC - from API to Solution - webRTC Summit 2014 @ NYC
Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYCAlexandre Gouaillard
 

Mehr von Alexandre Gouaillard (17)

WebRTC Status Update - 2017Q2
WebRTC Status Update - 2017Q2WebRTC Status Update - 2017Q2
WebRTC Status Update - 2017Q2
 
DYI - Starting your own webrtc project
DYI - Starting your own webrtc projectDYI - Starting your own webrtc project
DYI - Starting your own webrtc project
 
2014 Webrtc Summit & Cloud Expo, RealTime Interactions for IoT
2014 Webrtc Summit & Cloud Expo, RealTime Interactions for IoT2014 Webrtc Summit & Cloud Expo, RealTime Interactions for IoT
2014 Webrtc Summit & Cloud Expo, RealTime Interactions for IoT
 
2016 Q1 - WebRTC testing State of The Art
2016 Q1 - WebRTC testing State of The Art2016 Q1 - WebRTC testing State of The Art
2016 Q1 - WebRTC testing State of The Art
 
2016 February - WebRTC Conference japan - English
2016 February - WebRTC Conference japan - English2016 February - WebRTC Conference japan - English
2016 February - WebRTC Conference japan - English
 
2016 February - WebRTC Conference Japan - 日本語
2016 February - WebRTC Conference Japan - 日本語2016 February - WebRTC Conference Japan - 日本語
2016 February - WebRTC Conference Japan - 日本語
 
WebRTC Object Model API - Transceivers
WebRTC Object Model API - TransceiversWebRTC Object Model API - Transceivers
WebRTC Object Model API - Transceivers
 
2015 Q4 webrtc standards update
2015 Q4 webrtc standards update2015 Q4 webrtc standards update
2015 Q4 webrtc standards update
 
overview-peerconnection-lifetime
overview-peerconnection-lifetimeoverview-peerconnection-lifetime
overview-peerconnection-lifetime
 
Webrtc plugins for Desktop Browsers
Webrtc plugins for Desktop BrowsersWebrtc plugins for Desktop Browsers
Webrtc plugins for Desktop Browsers
 
WebRTC Browsers n Stacks Implementation differences
WebRTC Browsers n Stacks Implementation differencesWebRTC Browsers n Stacks Implementation differences
WebRTC Browsers n Stacks Implementation differences
 
Testing and packaging WebRTC Stack
Testing and packaging WebRTC StackTesting and packaging WebRTC Stack
Testing and packaging WebRTC Stack
 
Open Source Options for Building your WebRTC Solution, May 2015 @ WebRTC Conf...
Open Source Options for Building your WebRTC Solution, May 2015 @ WebRTC Conf...Open Source Options for Building your WebRTC Solution, May 2015 @ WebRTC Conf...
Open Source Options for Building your WebRTC Solution, May 2015 @ WebRTC Conf...
 
WebRTC Infrastructure scalability notes - Geek'n Kranky - June 2014 @ Google SF
WebRTC Infrastructure scalability notes - Geek'n Kranky - June 2014 @ Google SFWebRTC Infrastructure scalability notes - Geek'n Kranky - June 2014 @ Google SF
WebRTC Infrastructure scalability notes - Geek'n Kranky - June 2014 @ Google SF
 
WebRTC status and what to expect in 2015
WebRTC status and what to expect in 2015WebRTC status and what to expect in 2015
WebRTC status and what to expect in 2015
 
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlantaPlugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
 
Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYC
Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYCPractical webRTC - from API to Solution - webRTC Summit 2014 @ NYC
Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYC
 

Kürzlich hochgeladen

Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptrcbcrtm
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 

Kürzlich hochgeladen (20)

Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.ppt
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 

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

  • 1. Scaling Video Infrastructure Dr. Alex Gouaillard CTO Temasys Communications
  • 2. Limits of P2P Other interesting configurations / use cases MCU internals Open Source MCUs
  • 3. Limits of P2P Other interesting configurations / use cases MCU internals Open Source MCUs
  • 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. 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. 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. 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. Limits of P2P Other interesting configurations / use cases MCU internals Open Source MCUs
  • 10. Heterogeneous – Bandwidth, CPU, Display - Concept Desk. Desk. Cr. Book Mobil e Mobil e MCU HD HD SD QVGA QVGA
  • 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. 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. Heterogeneous – Case 3: streams management In MCU (SVC) - PRO: Only 30% overhead on client. - PRO: No need for raw media on server
  • 14. Limits of P2P Other interesting configurations / use cases MCU internals Open Source MCUs
  • 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. 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. 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. 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. MCU Internals – Variation 4: Recording decryptunstream unload UDP TCP TLS SRTP RTP VP8 Decode record Raw Media
  • 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. Limits of P2P Other interesting configurations / use cases MCU internals Open Source MCUs
  • 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. 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. 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. 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. 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)