SlideShare a Scribd company logo
1 of 50
Download to read offline
Can SFUs and MCUs be friends?
Lorenzo Miniero
@elminiero
IIT Real-Time Communication 2020 – WebRTC Track
October 14th 2020, Chicago, IL, USA
A few words about me
Lorenzo Miniero
• Ph.D @ UniNA
• Chairman @ Meetecho
• Main author of Janus®
Contacts and info
• lorenzo@meetecho.com
• https://twitter.com/elminiero
• https://www.slideshare.net/LorenzoMiniero
• https://soundcloud.com/lminiero
Fun fact: the first RTC server I ever wrote was an MCU
Fun fact: the first RTC server I ever wrote was an MCU
Fun fact: the first RTC server I ever wrote was an MCU
Fun fact: the first RTC server I ever wrote was an MCU
WebRTC topologies: full-mesh
https://webrtchacks.com/webrtc-beyond-one-one/
WebRTC topologies: MCU (Multipoint Control Unit)
https://webrtchacks.com/webrtc-beyond-one-one/
WebRTC topologies: SFU (Selective Forwarding Unit)
https://webrtchacks.com/webrtc-beyond-one-one/
How most “SFU vs. MCU” discussions look like
A few words on MCUs
• Been around for a long time (e.g., legacy SIP/H.323 conferencing systems)
• To simplify, mixes multiple streams into one
• Multiple participants send their streams to the MCU
• MCU decodes each stream and mixes/composes them
• Participants get a single encoded stream back
Some Pros
• Limited/consistent bandwidth usage
• Good for constrained endpoints
• Can compose/show many streams
• Endpoints can use different codecs
• Easier “legacy” interoperability
Some Cons
• CPU heavy on server (expensive)
• Needs smarter RTP buffering
• Can’t really use Simulcast/SVC
• Little flexibility on UI
• Can’t do end-to-end encryption
A few words on MCUs
• Been around for a long time (e.g., legacy SIP/H.323 conferencing systems)
• To simplify, mixes multiple streams into one
• Multiple participants send their streams to the MCU
• MCU decodes each stream and mixes/composes them
• Participants get a single encoded stream back
Some Pros
• Limited/consistent bandwidth usage
• Good for constrained endpoints
• Can compose/show many streams
• Endpoints can use different codecs
• Easier “legacy” interoperability
Some Cons
• CPU heavy on server (expensive)
• Needs smarter RTP buffering
• Can’t really use Simulcast/SVC
• Little flexibility on UI
• Can’t do end-to-end encryption
A few words on MCUs
• Been around for a long time (e.g., legacy SIP/H.323 conferencing systems)
• To simplify, mixes multiple streams into one
• Multiple participants send their streams to the MCU
• MCU decodes each stream and mixes/composes them
• Participants get a single encoded stream back
Some Pros
• Limited/consistent bandwidth usage
• Good for constrained endpoints
• Can compose/show many streams
• Endpoints can use different codecs
• Easier “legacy” interoperability
Some Cons
• CPU heavy on server (expensive)
• Needs smarter RTP buffering
• Can’t really use Simulcast/SVC
• Little flexibility on UI
• Can’t do end-to-end encryption
A few words on MCUs
• Been around for a long time (e.g., legacy SIP/H.323 conferencing systems)
• To simplify, mixes multiple streams into one
• Multiple participants send their streams to the MCU
• MCU decodes each stream and mixes/composes them
• Participants get a single encoded stream back
Some Pros
• Limited/consistent bandwidth usage
• Good for constrained endpoints
• Can compose/show many streams
• Endpoints can use different codecs
• Easier “legacy” interoperability
Some Cons
• CPU heavy on server (expensive)
• Needs smarter RTP buffering
• Can’t really use Simulcast/SVC
• Little flexibility on UI
• Can’t do end-to-end encryption
A few words on SFUs
• Relatively recent, and more widespread thanks to WebRTC
• No mixing performed, packets are just relayed
• Multiple participants send their streams to the SFU
• Streams forwarded separately (and optionally) to other subscribers
• No transcoding is performed on the media path
Some Pros
• Much more lightweight on CPU
• Feedback between users preserved
• Can take advantage of Simulcast/SVC
• Allows for end-to-end encryption
• Very flexible on UI side
Some Cons
• Higher bandwidth usage (expensive)
• Clients have to decode/render a lot
• They also need to support same codecs
• Harder to integrate with legacy systems
A few words on SFUs
• Relatively recent, and more widespread thanks to WebRTC
• No mixing performed, packets are just relayed
• Multiple participants send their streams to the SFU
• Streams forwarded separately (and optionally) to other subscribers
• No transcoding is performed on the media path
Some Pros
• Much more lightweight on CPU
• Feedback between users preserved
• Can take advantage of Simulcast/SVC
• Allows for end-to-end encryption
• Very flexible on UI side
Some Cons
• Higher bandwidth usage (expensive)
• Clients have to decode/render a lot
• They also need to support same codecs
• Harder to integrate with legacy systems
A few words on SFUs
• Relatively recent, and more widespread thanks to WebRTC
• No mixing performed, packets are just relayed
• Multiple participants send their streams to the SFU
• Streams forwarded separately (and optionally) to other subscribers
• No transcoding is performed on the media path
Some Pros
• Much more lightweight on CPU
• Feedback between users preserved
• Can take advantage of Simulcast/SVC
• Allows for end-to-end encryption
• Very flexible on UI side
Some Cons
• Higher bandwidth usage (expensive)
• Clients have to decode/render a lot
• They also need to support same codecs
• Harder to integrate with legacy systems
A few words on SFUs
• Relatively recent, and more widespread thanks to WebRTC
• No mixing performed, packets are just relayed
• Multiple participants send their streams to the SFU
• Streams forwarded separately (and optionally) to other subscribers
• No transcoding is performed on the media path
Some Pros
• Much more lightweight on CPU
• Feedback between users preserved
• Can take advantage of Simulcast/SVC
• Allows for end-to-end encryption
• Very flexible on UI side
Some Cons
• Higher bandwidth usage (expensive)
• Clients have to decode/render a lot
• They also need to support same codecs
• Harder to integrate with legacy systems
So they’re indeed very different...
But... can’t SFUs and MCUs be friends?
Audio MCU + Video SFU
• What we usually call the “hybrid approach”
• Audio from participants is mixed (MCU)
• Video from participants is relayed (SFU)
• Mixing only audio has a few advantages
1 Audiomixing lighter than Videomixing, so relative impact
2 Participants with constraints (CPU/BW) can stick to audio only
3 In case audio is SIP-based, easy to hook to PSTN
4 Decoupling audio from video allows for more options (e.g., interpreters)
5 Easy to distribute/broadcast (audio already mixed)
• SFU mode keeps flexibility for video
• Easy to subscribe to a subset of participants, or none at all
Audio MCU + Video SFU
• What we usually call the “hybrid approach”
• Audio from participants is mixed (MCU)
• Video from participants is relayed (SFU)
• Mixing only audio has a few advantages
1 Audiomixing lighter than Videomixing, so relative impact
2 Participants with constraints (CPU/BW) can stick to audio only
3 In case audio is SIP-based, easy to hook to PSTN
4 Decoupling audio from video allows for more options (e.g., interpreters)
5 Easy to distribute/broadcast (audio already mixed)
• SFU mode keeps flexibility for video
• Easy to subscribe to a subset of participants, or none at all
Audio MCU + Video SFU
• What we usually call the “hybrid approach”
• Audio from participants is mixed (MCU)
• Video from participants is relayed (SFU)
• Mixing only audio has a few advantages
1 Audiomixing lighter than Videomixing, so relative impact
2 Participants with constraints (CPU/BW) can stick to audio only
3 In case audio is SIP-based, easy to hook to PSTN
4 Decoupling audio from video allows for more options (e.g., interpreters)
5 Easy to distribute/broadcast (audio already mixed)
• SFU mode keeps flexibility for video
• Easy to subscribe to a subset of participants, or none at all
Audio MCU + Video SFU
https://commcon.xyz/session/turning-live-events-to-virtual-with-janus
Live Recording
Live Recording
Broadcasting to a CDN
A practical example: Meetecho @ IETF 108
A practical example: Meetecho @ IETF 108
https://www.youtube.com/watch?v=DV0q9s94RL8
A practical example: Meetecho @ IETF 108
https://www.youtube.com/watch?v=DV0q9s94RL8
A practical example: Meetecho @ IETF 108
https://www.youtube.com/watch?v=DV0q9s94RL8
A practical example: Meetecho @ IETF 108
https://www.youtube.com/watch?v=DV0q9s94RL8
Integrating with (legacy) conferencing systems
Integrating with (legacy) conferencing systems
Integrating with (legacy) conferencing systems
A few practical examples
A few practical examples
http://www.januscon.it/2019/talk.php?t=nexmo (Giacomo Vacca)
A few practical examples
http://www.januscon.it/2019/talk.php?t=mojolingo (Luca Pradovera)
Supporting less powerful devices
What about using browsers as an MCU?
• Browsers often already used that way for recording/broadcasting
• e.g., headless browser joining as participant
• External tool (e.g., ffmpeg) captures audio/video from browser
• Canvas (and WebRTC) allow for a more integrated functionality, though
• e.g., composition done on a canvas object (basically an MCU!)
• canvas.captureStream() to turn it into a WebRTC stream
• ...and, why not, WebAudio to do audio too!
• Used by companies like Streamyard and Stage TEN for broadcasting
An ugly canvas+WebRTC demo
• https://janus.conf.meetecho.com/canvas
What about using browsers as an MCU?
• Browsers often already used that way for recording/broadcasting
• e.g., headless browser joining as participant
• External tool (e.g., ffmpeg) captures audio/video from browser
• Canvas (and WebRTC) allow for a more integrated functionality, though
• e.g., composition done on a canvas object (basically an MCU!)
• canvas.captureStream() to turn it into a WebRTC stream
• ...and, why not, WebAudio to do audio too!
• Used by companies like Streamyard and Stage TEN for broadcasting
An ugly canvas+WebRTC demo
• https://janus.conf.meetecho.com/canvas
What about using browsers as an MCU?
• Browsers often already used that way for recording/broadcasting
• e.g., headless browser joining as participant
• External tool (e.g., ffmpeg) captures audio/video from browser
• Canvas (and WebRTC) allow for a more integrated functionality, though
• e.g., composition done on a canvas object (basically an MCU!)
• canvas.captureStream() to turn it into a WebRTC stream
• ...and, why not, WebAudio to do audio too!
• Used by companies like Streamyard and Stage TEN for broadcasting
An ugly canvas+WebRTC demo
• https://janus.conf.meetecho.com/canvas
What about using browsers as an MCU?
• Browsers often already used that way for recording/broadcasting
• e.g., headless browser joining as participant
• External tool (e.g., ffmpeg) captures audio/video from browser
• Canvas (and WebRTC) allow for a more integrated functionality, though
• e.g., composition done on a canvas object (basically an MCU!)
• canvas.captureStream() to turn it into a WebRTC stream
• ...and, why not, WebAudio to do audio too!
• Used by companies like Streamyard and Stage TEN for broadcasting
An ugly canvas+WebRTC demo
• https://janus.conf.meetecho.com/canvas
What about using browsers as an MCU?
• Browsers often already used that way for recording/broadcasting
• e.g., headless browser joining as participant
• External tool (e.g., ffmpeg) captures audio/video from browser
• Canvas (and WebRTC) allow for a more integrated functionality, though
• e.g., composition done on a canvas object (basically an MCU!)
• canvas.captureStream() to turn it into a WebRTC stream
• ...and, why not, WebAudio to do audio too!
• Used by companies like Streamyard and Stage TEN for broadcasting
An ugly canvas+WebRTC demo
• https://janus.conf.meetecho.com/canvas
What about using browsers as an MCU?
• Browsers often already used that way for recording/broadcasting
• e.g., headless browser joining as participant
• External tool (e.g., ffmpeg) captures audio/video from browser
• Canvas (and WebRTC) allow for a more integrated functionality, though
• e.g., composition done on a canvas object (basically an MCU!)
• canvas.captureStream() to turn it into a WebRTC stream
• ...and, why not, WebAudio to do audio too!
• Used by companies like Streamyard and Stage TEN for broadcasting
An ugly canvas+WebRTC demo
• https://janus.conf.meetecho.com/canvas
Masashi Ganeko’s MCU in a Browser
https://speakerdeck.com/mganeko/build-webrtc-mcu-on-browser
Masashi Ganeko’s MCU in a Browser
https://speakerdeck.com/mganeko/build-webrtc-mcu-on-browser
Tim Panton’s Book Club!
https://rendezvous.zone
Tim Panton’s Book Club!
https://rendezvous.zone
Thanks! Questions? Comments?
Get in touch!
• https://twitter.com/elminiero
• https://twitter.com/meetecho
• https://www.meetecho.com

More Related Content

What's hot

Alphorm.com Formation SOPHOS XG FIREWALL: Les fondamentaux
Alphorm.com Formation SOPHOS XG FIREWALL: Les fondamentauxAlphorm.com Formation SOPHOS XG FIREWALL: Les fondamentaux
Alphorm.com Formation SOPHOS XG FIREWALL: Les fondamentauxAlphorm
 
6 pan-os software update & downgrade instruction
6 pan-os software update & downgrade instruction6 pan-os software update & downgrade instruction
6 pan-os software update & downgrade instructionMostafa El Lathy
 
14 palo alto quality of service(qos) concept
14 palo alto quality of service(qos) concept14 palo alto quality of service(qos) concept
14 palo alto quality of service(qos) conceptMostafa El Lathy
 
9 palo alto virtual routers concept (routing on palo alto)
9 palo alto virtual routers concept (routing on palo alto)9 palo alto virtual routers concept (routing on palo alto)
9 palo alto virtual routers concept (routing on palo alto)Mostafa El Lathy
 
8 palo alto security policy concepts
8 palo alto security policy concepts8 palo alto security policy concepts
8 palo alto security policy conceptsMostafa El Lathy
 
Alphorm.com Formation SOPHOS XG FIREWALL, Administration
Alphorm.com Formation SOPHOS XG FIREWALL, AdministrationAlphorm.com Formation SOPHOS XG FIREWALL, Administration
Alphorm.com Formation SOPHOS XG FIREWALL, AdministrationAlphorm
 
2 what is the best firewall (sizing)
2 what is the best firewall (sizing)2 what is the best firewall (sizing)
2 what is the best firewall (sizing)Mostafa El Lathy
 
17 palo alto threat prevention concept
17 palo alto threat prevention concept17 palo alto threat prevention concept
17 palo alto threat prevention conceptMostafa El Lathy
 
01- intro to firewall concepts
01- intro to firewall concepts01- intro to firewall concepts
01- intro to firewall conceptsMostafa El Lathy
 
12 palo alto app-id concept
12 palo alto app-id concept12 palo alto app-id concept
12 palo alto app-id conceptMostafa El Lathy
 
13 palo alto url web filtering concept
13 palo alto url web filtering concept13 palo alto url web filtering concept
13 palo alto url web filtering conceptMostafa El Lathy
 
3 palo alto ngfw architecture overview
3 palo alto ngfw architecture overview3 palo alto ngfw architecture overview
3 palo alto ngfw architecture overviewMostafa El Lathy
 
Custom policies in mule 4 and a circuit breaker example
Custom policies in mule 4 and a circuit breaker exampleCustom policies in mule 4 and a circuit breaker example
Custom policies in mule 4 and a circuit breaker exampleRoyston Lobo
 
7 palo alto security zones & interfaces concepts
7 palo alto security zones & interfaces concepts7 palo alto security zones & interfaces concepts
7 palo alto security zones & interfaces conceptsMostafa El Lathy
 

What's hot (20)

Janus & docker: friends or foe
Janus & docker: friends or foe Janus & docker: friends or foe
Janus & docker: friends or foe
 
19 high availability
19 high availability19 high availability
19 high availability
 
Network Management with Aruba AirWave
Network Management with Aruba AirWaveNetwork Management with Aruba AirWave
Network Management with Aruba AirWave
 
EMEA Airheads- Aruba OS- Mobile First Platform– Aruba OS 8.0 introduction
EMEA Airheads- Aruba OS- Mobile First Platform– Aruba OS 8.0 introductionEMEA Airheads- Aruba OS- Mobile First Platform– Aruba OS 8.0 introduction
EMEA Airheads- Aruba OS- Mobile First Platform– Aruba OS 8.0 introduction
 
Alphorm.com Formation SOPHOS XG FIREWALL: Les fondamentaux
Alphorm.com Formation SOPHOS XG FIREWALL: Les fondamentauxAlphorm.com Formation SOPHOS XG FIREWALL: Les fondamentaux
Alphorm.com Formation SOPHOS XG FIREWALL: Les fondamentaux
 
6 pan-os software update & downgrade instruction
6 pan-os software update & downgrade instruction6 pan-os software update & downgrade instruction
6 pan-os software update & downgrade instruction
 
14 palo alto quality of service(qos) concept
14 palo alto quality of service(qos) concept14 palo alto quality of service(qos) concept
14 palo alto quality of service(qos) concept
 
9 palo alto virtual routers concept (routing on palo alto)
9 palo alto virtual routers concept (routing on palo alto)9 palo alto virtual routers concept (routing on palo alto)
9 palo alto virtual routers concept (routing on palo alto)
 
8 palo alto security policy concepts
8 palo alto security policy concepts8 palo alto security policy concepts
8 palo alto security policy concepts
 
Alphorm.com Formation SOPHOS XG FIREWALL, Administration
Alphorm.com Formation SOPHOS XG FIREWALL, AdministrationAlphorm.com Formation SOPHOS XG FIREWALL, Administration
Alphorm.com Formation SOPHOS XG FIREWALL, Administration
 
2 what is the best firewall (sizing)
2 what is the best firewall (sizing)2 what is the best firewall (sizing)
2 what is the best firewall (sizing)
 
Advanced ClearPass Workshop
Advanced ClearPass WorkshopAdvanced ClearPass Workshop
Advanced ClearPass Workshop
 
17 palo alto threat prevention concept
17 palo alto threat prevention concept17 palo alto threat prevention concept
17 palo alto threat prevention concept
 
01- intro to firewall concepts
01- intro to firewall concepts01- intro to firewall concepts
01- intro to firewall concepts
 
Palo alto-review
Palo alto-reviewPalo alto-review
Palo alto-review
 
12 palo alto app-id concept
12 palo alto app-id concept12 palo alto app-id concept
12 palo alto app-id concept
 
13 palo alto url web filtering concept
13 palo alto url web filtering concept13 palo alto url web filtering concept
13 palo alto url web filtering concept
 
3 palo alto ngfw architecture overview
3 palo alto ngfw architecture overview3 palo alto ngfw architecture overview
3 palo alto ngfw architecture overview
 
Custom policies in mule 4 and a circuit breaker example
Custom policies in mule 4 and a circuit breaker exampleCustom policies in mule 4 and a circuit breaker example
Custom policies in mule 4 and a circuit breaker example
 
7 palo alto security zones & interfaces concepts
7 palo alto security zones & interfaces concepts7 palo alto security zones & interfaces concepts
7 palo alto security zones & interfaces concepts
 

Similar to Can SFUs and MCUs be friends @ IIT-RTC 2020

Janus + Audio @ Open Source World
Janus + Audio @ Open Source WorldJanus + Audio @ Open Source World
Janus + Audio @ Open Source WorldLorenzo Miniero
 
Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021Lorenzo Miniero
 
How to Architect your WebRTC application, Alberto Gonzalez and Arin Sime, Web...
How to Architect your WebRTC application, Alberto Gonzalez and Arin Sime, Web...How to Architect your WebRTC application, Alberto Gonzalez and Arin Sime, Web...
How to Architect your WebRTC application, Alberto Gonzalez and Arin Sime, Web...Alan Quayle
 
WebRTC Broadcasting @ TADSummit 2023
WebRTC Broadcasting @ TADSummit 2023WebRTC Broadcasting @ TADSummit 2023
WebRTC Broadcasting @ TADSummit 2023Lorenzo Miniero
 
WHIP WebRTC Broadcasting @ FOSDEM 2022
WHIP WebRTC Broadcasting @ FOSDEM 2022WHIP WebRTC Broadcasting @ FOSDEM 2022
WHIP WebRTC Broadcasting @ FOSDEM 2022Lorenzo Miniero
 
Bridging_WebRTC_with_SIP_Alberto_WebRTCventures_Cluecon2023_NoVideo.pptx
Bridging_WebRTC_with_SIP_Alberto_WebRTCventures_Cluecon2023_NoVideo.pptxBridging_WebRTC_with_SIP_Alberto_WebRTCventures_Cluecon2023_NoVideo.pptx
Bridging_WebRTC_with_SIP_Alberto_WebRTCventures_Cluecon2023_NoVideo.pptxAlberto González Trastoy
 
Multistream in Janus @ CommCon 2019
Multistream in Janus @ CommCon 2019Multistream in Janus @ CommCon 2019
Multistream in Janus @ CommCon 2019Lorenzo Miniero
 
Janus/SIP @ OpenSIPS 2019
Janus/SIP @ OpenSIPS 2019Janus/SIP @ OpenSIPS 2019
Janus/SIP @ OpenSIPS 2019Lorenzo Miniero
 
WebRTC Real time media P2P, Server, Infrastructure, and Platform
WebRTC Real time media P2P, Server, Infrastructure, and PlatformWebRTC Real time media P2P, Server, Infrastructure, and Platform
WebRTC Real time media P2P, Server, Infrastructure, and PlatformRyan Jespersen
 
WebRTC, RED and Janus @ ClueCon21
WebRTC, RED and Janus @ ClueCon21WebRTC, RED and Janus @ ClueCon21
WebRTC, RED and Janus @ ClueCon21Lorenzo Miniero
 
WebRTC for Telco: Informa's WebRTC Global Summit Preconference
WebRTC for Telco: Informa's WebRTC Global Summit PreconferenceWebRTC for Telco: Informa's WebRTC Global Summit Preconference
WebRTC for Telco: Informa's WebRTC Global Summit PreconferenceTsahi Levent-levi
 
Architecting your WebRTC application for scalability, Arin Sime
Architecting your WebRTC application for scalability, Arin SimeArchitecting your WebRTC application for scalability, Arin Sime
Architecting your WebRTC application for scalability, Arin SimeAlan Quayle
 
The challenges of hybrid meetings @ CommCon 2023
The challenges of hybrid meetings @ CommCon 2023The challenges of hybrid meetings @ CommCon 2023
The challenges of hybrid meetings @ CommCon 2023Lorenzo Miniero
 
WebRTC, Whats in it for me?
WebRTC, Whats in it for me?WebRTC, Whats in it for me?
WebRTC, Whats in it for me?SeanDuBois3
 
Recording and media manipulation of WebRTC streams
Recording and media manipulation of WebRTC streamsRecording and media manipulation of WebRTC streams
Recording and media manipulation of WebRTC streamsLuis Lopez
 
0150519-kurento.pdf
0150519-kurento.pdf0150519-kurento.pdf
0150519-kurento.pdfDejVoleti
 
Architecting Low Latency Applications Alberto Gonzalez
Architecting Low Latency Applications Alberto GonzalezArchitecting Low Latency Applications Alberto Gonzalez
Architecting Low Latency Applications Alberto GonzalezAlberto González Trastoy
 
Insertable Streams and E2EE @ ClueCon2020
Insertable Streams and E2EE @ ClueCon2020Insertable Streams and E2EE @ ClueCon2020
Insertable Streams and E2EE @ ClueCon2020Lorenzo Miniero
 

Similar to Can SFUs and MCUs be friends @ IIT-RTC 2020 (20)

Janus + Audio @ Open Source World
Janus + Audio @ Open Source WorldJanus + Audio @ Open Source World
Janus + Audio @ Open Source World
 
Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021
 
How to Architect your WebRTC application, Alberto Gonzalez and Arin Sime, Web...
How to Architect your WebRTC application, Alberto Gonzalez and Arin Sime, Web...How to Architect your WebRTC application, Alberto Gonzalez and Arin Sime, Web...
How to Architect your WebRTC application, Alberto Gonzalez and Arin Sime, Web...
 
WebRTC Broadcasting @ TADSummit 2023
WebRTC Broadcasting @ TADSummit 2023WebRTC Broadcasting @ TADSummit 2023
WebRTC Broadcasting @ TADSummit 2023
 
WHIP WebRTC Broadcasting @ FOSDEM 2022
WHIP WebRTC Broadcasting @ FOSDEM 2022WHIP WebRTC Broadcasting @ FOSDEM 2022
WHIP WebRTC Broadcasting @ FOSDEM 2022
 
Bridging_WebRTC_with_SIP_Alberto_WebRTCventures_Cluecon2023_NoVideo.pptx
Bridging_WebRTC_with_SIP_Alberto_WebRTCventures_Cluecon2023_NoVideo.pptxBridging_WebRTC_with_SIP_Alberto_WebRTCventures_Cluecon2023_NoVideo.pptx
Bridging_WebRTC_with_SIP_Alberto_WebRTCventures_Cluecon2023_NoVideo.pptx
 
Multistream in Janus @ CommCon 2019
Multistream in Janus @ CommCon 2019Multistream in Janus @ CommCon 2019
Multistream in Janus @ CommCon 2019
 
Janus/SIP @ OpenSIPS 2019
Janus/SIP @ OpenSIPS 2019Janus/SIP @ OpenSIPS 2019
Janus/SIP @ OpenSIPS 2019
 
WebRTC Real time media P2P, Server, Infrastructure, and Platform
WebRTC Real time media P2P, Server, Infrastructure, and PlatformWebRTC Real time media P2P, Server, Infrastructure, and Platform
WebRTC Real time media P2P, Server, Infrastructure, and Platform
 
BWE in Janus
BWE in JanusBWE in Janus
BWE in Janus
 
WebRTC, RED and Janus @ ClueCon21
WebRTC, RED and Janus @ ClueCon21WebRTC, RED and Janus @ ClueCon21
WebRTC, RED and Janus @ ClueCon21
 
WebRTC for Telco: Informa's WebRTC Global Summit Preconference
WebRTC for Telco: Informa's WebRTC Global Summit PreconferenceWebRTC for Telco: Informa's WebRTC Global Summit Preconference
WebRTC for Telco: Informa's WebRTC Global Summit Preconference
 
Janus @ ClueCon 2019
Janus @ ClueCon 2019Janus @ ClueCon 2019
Janus @ ClueCon 2019
 
Architecting your WebRTC application for scalability, Arin Sime
Architecting your WebRTC application for scalability, Arin SimeArchitecting your WebRTC application for scalability, Arin Sime
Architecting your WebRTC application for scalability, Arin Sime
 
The challenges of hybrid meetings @ CommCon 2023
The challenges of hybrid meetings @ CommCon 2023The challenges of hybrid meetings @ CommCon 2023
The challenges of hybrid meetings @ CommCon 2023
 
WebRTC, Whats in it for me?
WebRTC, Whats in it for me?WebRTC, Whats in it for me?
WebRTC, Whats in it for me?
 
Recording and media manipulation of WebRTC streams
Recording and media manipulation of WebRTC streamsRecording and media manipulation of WebRTC streams
Recording and media manipulation of WebRTC streams
 
0150519-kurento.pdf
0150519-kurento.pdf0150519-kurento.pdf
0150519-kurento.pdf
 
Architecting Low Latency Applications Alberto Gonzalez
Architecting Low Latency Applications Alberto GonzalezArchitecting Low Latency Applications Alberto Gonzalez
Architecting Low Latency Applications Alberto Gonzalez
 
Insertable Streams and E2EE @ ClueCon2020
Insertable Streams and E2EE @ ClueCon2020Insertable Streams and E2EE @ ClueCon2020
Insertable Streams and E2EE @ ClueCon2020
 

More from Lorenzo Miniero

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Getting AV1/SVC to work in the Janus WebRTC Server
Getting AV1/SVC to work in the Janus WebRTC ServerGetting AV1/SVC to work in the Janus WebRTC Server
Getting AV1/SVC to work in the Janus WebRTC ServerLorenzo Miniero
 
Real-Time Text and WebRTC @ Kamailio World 2023
Real-Time Text and WebRTC @ Kamailio World 2023Real-Time Text and WebRTC @ Kamailio World 2023
Real-Time Text and WebRTC @ Kamailio World 2023Lorenzo Miniero
 
Become a rockstar using FOSS!
Become a rockstar using FOSS!Become a rockstar using FOSS!
Become a rockstar using FOSS!Lorenzo Miniero
 
Janus SFU cascading @ IIT-RTC 2022
Janus SFU cascading @ IIT-RTC 2022Janus SFU cascading @ IIT-RTC 2022
Janus SFU cascading @ IIT-RTC 2022Lorenzo Miniero
 
WHIP and Janus @ IIT-RTC 2021
WHIP and Janus @ IIT-RTC 2021WHIP and Janus @ IIT-RTC 2021
WHIP and Janus @ IIT-RTC 2021Lorenzo Miniero
 
JamRTC @ Wonder WebRTC unConference
JamRTC @ Wonder WebRTC unConferenceJamRTC @ Wonder WebRTC unConference
JamRTC @ Wonder WebRTC unConferenceLorenzo Miniero
 
Janus Workshop pt.2 @ ClueCon 2021
Janus Workshop pt.2 @ ClueCon 2021Janus Workshop pt.2 @ ClueCon 2021
Janus Workshop pt.2 @ ClueCon 2021Lorenzo Miniero
 
Janus + NDI @ ClueCon 2021
Janus + NDI @ ClueCon 2021Janus + NDI @ ClueCon 2021
Janus + NDI @ ClueCon 2021Lorenzo Miniero
 
Can WebRTC help musicians? @ FOSDEM 2021
Can WebRTC help musicians? @ FOSDEM 2021Can WebRTC help musicians? @ FOSDEM 2021
Can WebRTC help musicians? @ FOSDEM 2021Lorenzo Miniero
 
Virtual IETF meetings with WebRTC @ IETF 109 MOPS
Virtual IETF meetings with WebRTC @ IETF 109 MOPSVirtual IETF meetings with WebRTC @ IETF 109 MOPS
Virtual IETF meetings with WebRTC @ IETF 109 MOPSLorenzo Miniero
 
Janus Workshop @ ClueCon 2020
Janus Workshop @ ClueCon 2020Janus Workshop @ ClueCon 2020
Janus Workshop @ ClueCon 2020Lorenzo Miniero
 
Turning live events to virtual with Janus
Turning live events to virtual with JanusTurning live events to virtual with Janus
Turning live events to virtual with JanusLorenzo Miniero
 
Janus RTP forwarders @ FOSDEM 2020
Janus RTP forwarders @ FOSDEM 2020Janus RTP forwarders @ FOSDEM 2020
Janus RTP forwarders @ FOSDEM 2020Lorenzo Miniero
 
Janus workshop @ RTC2019 Beijing
Janus workshop @ RTC2019 BeijingJanus workshop @ RTC2019 Beijing
Janus workshop @ RTC2019 BeijingLorenzo Miniero
 
Simulcast/SVC @ IIT-RTC 2019
Simulcast/SVC @ IIT-RTC 2019Simulcast/SVC @ IIT-RTC 2019
Simulcast/SVC @ IIT-RTC 2019Lorenzo Miniero
 
Fuzzing Janus @ IPTComm 2019
Fuzzing Janus @ IPTComm 2019Fuzzing Janus @ IPTComm 2019
Fuzzing Janus @ IPTComm 2019Lorenzo Miniero
 
Welcome to JanusCon! -- Past, Present and Future of Janus
Welcome to JanusCon! -- Past, Present and Future of JanusWelcome to JanusCon! -- Past, Present and Future of Janus
Welcome to JanusCon! -- Past, Present and Future of JanusLorenzo Miniero
 

More from Lorenzo Miniero (18)

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Getting AV1/SVC to work in the Janus WebRTC Server
Getting AV1/SVC to work in the Janus WebRTC ServerGetting AV1/SVC to work in the Janus WebRTC Server
Getting AV1/SVC to work in the Janus WebRTC Server
 
Real-Time Text and WebRTC @ Kamailio World 2023
Real-Time Text and WebRTC @ Kamailio World 2023Real-Time Text and WebRTC @ Kamailio World 2023
Real-Time Text and WebRTC @ Kamailio World 2023
 
Become a rockstar using FOSS!
Become a rockstar using FOSS!Become a rockstar using FOSS!
Become a rockstar using FOSS!
 
Janus SFU cascading @ IIT-RTC 2022
Janus SFU cascading @ IIT-RTC 2022Janus SFU cascading @ IIT-RTC 2022
Janus SFU cascading @ IIT-RTC 2022
 
WHIP and Janus @ IIT-RTC 2021
WHIP and Janus @ IIT-RTC 2021WHIP and Janus @ IIT-RTC 2021
WHIP and Janus @ IIT-RTC 2021
 
JamRTC @ Wonder WebRTC unConference
JamRTC @ Wonder WebRTC unConferenceJamRTC @ Wonder WebRTC unConference
JamRTC @ Wonder WebRTC unConference
 
Janus Workshop pt.2 @ ClueCon 2021
Janus Workshop pt.2 @ ClueCon 2021Janus Workshop pt.2 @ ClueCon 2021
Janus Workshop pt.2 @ ClueCon 2021
 
Janus + NDI @ ClueCon 2021
Janus + NDI @ ClueCon 2021Janus + NDI @ ClueCon 2021
Janus + NDI @ ClueCon 2021
 
Can WebRTC help musicians? @ FOSDEM 2021
Can WebRTC help musicians? @ FOSDEM 2021Can WebRTC help musicians? @ FOSDEM 2021
Can WebRTC help musicians? @ FOSDEM 2021
 
Virtual IETF meetings with WebRTC @ IETF 109 MOPS
Virtual IETF meetings with WebRTC @ IETF 109 MOPSVirtual IETF meetings with WebRTC @ IETF 109 MOPS
Virtual IETF meetings with WebRTC @ IETF 109 MOPS
 
Janus Workshop @ ClueCon 2020
Janus Workshop @ ClueCon 2020Janus Workshop @ ClueCon 2020
Janus Workshop @ ClueCon 2020
 
Turning live events to virtual with Janus
Turning live events to virtual with JanusTurning live events to virtual with Janus
Turning live events to virtual with Janus
 
Janus RTP forwarders @ FOSDEM 2020
Janus RTP forwarders @ FOSDEM 2020Janus RTP forwarders @ FOSDEM 2020
Janus RTP forwarders @ FOSDEM 2020
 
Janus workshop @ RTC2019 Beijing
Janus workshop @ RTC2019 BeijingJanus workshop @ RTC2019 Beijing
Janus workshop @ RTC2019 Beijing
 
Simulcast/SVC @ IIT-RTC 2019
Simulcast/SVC @ IIT-RTC 2019Simulcast/SVC @ IIT-RTC 2019
Simulcast/SVC @ IIT-RTC 2019
 
Fuzzing Janus @ IPTComm 2019
Fuzzing Janus @ IPTComm 2019Fuzzing Janus @ IPTComm 2019
Fuzzing Janus @ IPTComm 2019
 
Welcome to JanusCon! -- Past, Present and Future of Janus
Welcome to JanusCon! -- Past, Present and Future of JanusWelcome to JanusCon! -- Past, Present and Future of Janus
Welcome to JanusCon! -- Past, Present and Future of Janus
 

Recently uploaded

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsAndrey Dotsenko
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 

Recently uploaded (20)

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 

Can SFUs and MCUs be friends @ IIT-RTC 2020

  • 1. Can SFUs and MCUs be friends? Lorenzo Miniero @elminiero IIT Real-Time Communication 2020 – WebRTC Track October 14th 2020, Chicago, IL, USA
  • 2. A few words about me Lorenzo Miniero • Ph.D @ UniNA • Chairman @ Meetecho • Main author of Janus® Contacts and info • lorenzo@meetecho.com • https://twitter.com/elminiero • https://www.slideshare.net/LorenzoMiniero • https://soundcloud.com/lminiero
  • 3. Fun fact: the first RTC server I ever wrote was an MCU
  • 4. Fun fact: the first RTC server I ever wrote was an MCU
  • 5. Fun fact: the first RTC server I ever wrote was an MCU
  • 6. Fun fact: the first RTC server I ever wrote was an MCU
  • 8. WebRTC topologies: MCU (Multipoint Control Unit) https://webrtchacks.com/webrtc-beyond-one-one/
  • 9. WebRTC topologies: SFU (Selective Forwarding Unit) https://webrtchacks.com/webrtc-beyond-one-one/
  • 10. How most “SFU vs. MCU” discussions look like
  • 11. A few words on MCUs • Been around for a long time (e.g., legacy SIP/H.323 conferencing systems) • To simplify, mixes multiple streams into one • Multiple participants send their streams to the MCU • MCU decodes each stream and mixes/composes them • Participants get a single encoded stream back Some Pros • Limited/consistent bandwidth usage • Good for constrained endpoints • Can compose/show many streams • Endpoints can use different codecs • Easier “legacy” interoperability Some Cons • CPU heavy on server (expensive) • Needs smarter RTP buffering • Can’t really use Simulcast/SVC • Little flexibility on UI • Can’t do end-to-end encryption
  • 12. A few words on MCUs • Been around for a long time (e.g., legacy SIP/H.323 conferencing systems) • To simplify, mixes multiple streams into one • Multiple participants send their streams to the MCU • MCU decodes each stream and mixes/composes them • Participants get a single encoded stream back Some Pros • Limited/consistent bandwidth usage • Good for constrained endpoints • Can compose/show many streams • Endpoints can use different codecs • Easier “legacy” interoperability Some Cons • CPU heavy on server (expensive) • Needs smarter RTP buffering • Can’t really use Simulcast/SVC • Little flexibility on UI • Can’t do end-to-end encryption
  • 13. A few words on MCUs • Been around for a long time (e.g., legacy SIP/H.323 conferencing systems) • To simplify, mixes multiple streams into one • Multiple participants send their streams to the MCU • MCU decodes each stream and mixes/composes them • Participants get a single encoded stream back Some Pros • Limited/consistent bandwidth usage • Good for constrained endpoints • Can compose/show many streams • Endpoints can use different codecs • Easier “legacy” interoperability Some Cons • CPU heavy on server (expensive) • Needs smarter RTP buffering • Can’t really use Simulcast/SVC • Little flexibility on UI • Can’t do end-to-end encryption
  • 14. A few words on MCUs • Been around for a long time (e.g., legacy SIP/H.323 conferencing systems) • To simplify, mixes multiple streams into one • Multiple participants send their streams to the MCU • MCU decodes each stream and mixes/composes them • Participants get a single encoded stream back Some Pros • Limited/consistent bandwidth usage • Good for constrained endpoints • Can compose/show many streams • Endpoints can use different codecs • Easier “legacy” interoperability Some Cons • CPU heavy on server (expensive) • Needs smarter RTP buffering • Can’t really use Simulcast/SVC • Little flexibility on UI • Can’t do end-to-end encryption
  • 15. A few words on SFUs • Relatively recent, and more widespread thanks to WebRTC • No mixing performed, packets are just relayed • Multiple participants send their streams to the SFU • Streams forwarded separately (and optionally) to other subscribers • No transcoding is performed on the media path Some Pros • Much more lightweight on CPU • Feedback between users preserved • Can take advantage of Simulcast/SVC • Allows for end-to-end encryption • Very flexible on UI side Some Cons • Higher bandwidth usage (expensive) • Clients have to decode/render a lot • They also need to support same codecs • Harder to integrate with legacy systems
  • 16. A few words on SFUs • Relatively recent, and more widespread thanks to WebRTC • No mixing performed, packets are just relayed • Multiple participants send their streams to the SFU • Streams forwarded separately (and optionally) to other subscribers • No transcoding is performed on the media path Some Pros • Much more lightweight on CPU • Feedback between users preserved • Can take advantage of Simulcast/SVC • Allows for end-to-end encryption • Very flexible on UI side Some Cons • Higher bandwidth usage (expensive) • Clients have to decode/render a lot • They also need to support same codecs • Harder to integrate with legacy systems
  • 17. A few words on SFUs • Relatively recent, and more widespread thanks to WebRTC • No mixing performed, packets are just relayed • Multiple participants send their streams to the SFU • Streams forwarded separately (and optionally) to other subscribers • No transcoding is performed on the media path Some Pros • Much more lightweight on CPU • Feedback between users preserved • Can take advantage of Simulcast/SVC • Allows for end-to-end encryption • Very flexible on UI side Some Cons • Higher bandwidth usage (expensive) • Clients have to decode/render a lot • They also need to support same codecs • Harder to integrate with legacy systems
  • 18. A few words on SFUs • Relatively recent, and more widespread thanks to WebRTC • No mixing performed, packets are just relayed • Multiple participants send their streams to the SFU • Streams forwarded separately (and optionally) to other subscribers • No transcoding is performed on the media path Some Pros • Much more lightweight on CPU • Feedback between users preserved • Can take advantage of Simulcast/SVC • Allows for end-to-end encryption • Very flexible on UI side Some Cons • Higher bandwidth usage (expensive) • Clients have to decode/render a lot • They also need to support same codecs • Harder to integrate with legacy systems
  • 19. So they’re indeed very different...
  • 20. But... can’t SFUs and MCUs be friends?
  • 21. Audio MCU + Video SFU • What we usually call the “hybrid approach” • Audio from participants is mixed (MCU) • Video from participants is relayed (SFU) • Mixing only audio has a few advantages 1 Audiomixing lighter than Videomixing, so relative impact 2 Participants with constraints (CPU/BW) can stick to audio only 3 In case audio is SIP-based, easy to hook to PSTN 4 Decoupling audio from video allows for more options (e.g., interpreters) 5 Easy to distribute/broadcast (audio already mixed) • SFU mode keeps flexibility for video • Easy to subscribe to a subset of participants, or none at all
  • 22. Audio MCU + Video SFU • What we usually call the “hybrid approach” • Audio from participants is mixed (MCU) • Video from participants is relayed (SFU) • Mixing only audio has a few advantages 1 Audiomixing lighter than Videomixing, so relative impact 2 Participants with constraints (CPU/BW) can stick to audio only 3 In case audio is SIP-based, easy to hook to PSTN 4 Decoupling audio from video allows for more options (e.g., interpreters) 5 Easy to distribute/broadcast (audio already mixed) • SFU mode keeps flexibility for video • Easy to subscribe to a subset of participants, or none at all
  • 23. Audio MCU + Video SFU • What we usually call the “hybrid approach” • Audio from participants is mixed (MCU) • Video from participants is relayed (SFU) • Mixing only audio has a few advantages 1 Audiomixing lighter than Videomixing, so relative impact 2 Participants with constraints (CPU/BW) can stick to audio only 3 In case audio is SIP-based, easy to hook to PSTN 4 Decoupling audio from video allows for more options (e.g., interpreters) 5 Easy to distribute/broadcast (audio already mixed) • SFU mode keeps flexibility for video • Easy to subscribe to a subset of participants, or none at all
  • 24. Audio MCU + Video SFU https://commcon.xyz/session/turning-live-events-to-virtual-with-janus
  • 28. A practical example: Meetecho @ IETF 108
  • 29. A practical example: Meetecho @ IETF 108 https://www.youtube.com/watch?v=DV0q9s94RL8
  • 30. A practical example: Meetecho @ IETF 108 https://www.youtube.com/watch?v=DV0q9s94RL8
  • 31. A practical example: Meetecho @ IETF 108 https://www.youtube.com/watch?v=DV0q9s94RL8
  • 32. A practical example: Meetecho @ IETF 108 https://www.youtube.com/watch?v=DV0q9s94RL8
  • 33. Integrating with (legacy) conferencing systems
  • 34. Integrating with (legacy) conferencing systems
  • 35. Integrating with (legacy) conferencing systems
  • 36. A few practical examples
  • 37. A few practical examples http://www.januscon.it/2019/talk.php?t=nexmo (Giacomo Vacca)
  • 38. A few practical examples http://www.januscon.it/2019/talk.php?t=mojolingo (Luca Pradovera)
  • 40. What about using browsers as an MCU? • Browsers often already used that way for recording/broadcasting • e.g., headless browser joining as participant • External tool (e.g., ffmpeg) captures audio/video from browser • Canvas (and WebRTC) allow for a more integrated functionality, though • e.g., composition done on a canvas object (basically an MCU!) • canvas.captureStream() to turn it into a WebRTC stream • ...and, why not, WebAudio to do audio too! • Used by companies like Streamyard and Stage TEN for broadcasting An ugly canvas+WebRTC demo • https://janus.conf.meetecho.com/canvas
  • 41. What about using browsers as an MCU? • Browsers often already used that way for recording/broadcasting • e.g., headless browser joining as participant • External tool (e.g., ffmpeg) captures audio/video from browser • Canvas (and WebRTC) allow for a more integrated functionality, though • e.g., composition done on a canvas object (basically an MCU!) • canvas.captureStream() to turn it into a WebRTC stream • ...and, why not, WebAudio to do audio too! • Used by companies like Streamyard and Stage TEN for broadcasting An ugly canvas+WebRTC demo • https://janus.conf.meetecho.com/canvas
  • 42. What about using browsers as an MCU? • Browsers often already used that way for recording/broadcasting • e.g., headless browser joining as participant • External tool (e.g., ffmpeg) captures audio/video from browser • Canvas (and WebRTC) allow for a more integrated functionality, though • e.g., composition done on a canvas object (basically an MCU!) • canvas.captureStream() to turn it into a WebRTC stream • ...and, why not, WebAudio to do audio too! • Used by companies like Streamyard and Stage TEN for broadcasting An ugly canvas+WebRTC demo • https://janus.conf.meetecho.com/canvas
  • 43. What about using browsers as an MCU? • Browsers often already used that way for recording/broadcasting • e.g., headless browser joining as participant • External tool (e.g., ffmpeg) captures audio/video from browser • Canvas (and WebRTC) allow for a more integrated functionality, though • e.g., composition done on a canvas object (basically an MCU!) • canvas.captureStream() to turn it into a WebRTC stream • ...and, why not, WebAudio to do audio too! • Used by companies like Streamyard and Stage TEN for broadcasting An ugly canvas+WebRTC demo • https://janus.conf.meetecho.com/canvas
  • 44. What about using browsers as an MCU? • Browsers often already used that way for recording/broadcasting • e.g., headless browser joining as participant • External tool (e.g., ffmpeg) captures audio/video from browser • Canvas (and WebRTC) allow for a more integrated functionality, though • e.g., composition done on a canvas object (basically an MCU!) • canvas.captureStream() to turn it into a WebRTC stream • ...and, why not, WebAudio to do audio too! • Used by companies like Streamyard and Stage TEN for broadcasting An ugly canvas+WebRTC demo • https://janus.conf.meetecho.com/canvas
  • 45. What about using browsers as an MCU? • Browsers often already used that way for recording/broadcasting • e.g., headless browser joining as participant • External tool (e.g., ffmpeg) captures audio/video from browser • Canvas (and WebRTC) allow for a more integrated functionality, though • e.g., composition done on a canvas object (basically an MCU!) • canvas.captureStream() to turn it into a WebRTC stream • ...and, why not, WebAudio to do audio too! • Used by companies like Streamyard and Stage TEN for broadcasting An ugly canvas+WebRTC demo • https://janus.conf.meetecho.com/canvas
  • 46. Masashi Ganeko’s MCU in a Browser https://speakerdeck.com/mganeko/build-webrtc-mcu-on-browser
  • 47. Masashi Ganeko’s MCU in a Browser https://speakerdeck.com/mganeko/build-webrtc-mcu-on-browser
  • 48. Tim Panton’s Book Club! https://rendezvous.zone
  • 49. Tim Panton’s Book Club! https://rendezvous.zone
  • 50. Thanks! Questions? Comments? Get in touch! • https://twitter.com/elminiero • https://twitter.com/meetecho • https://www.meetecho.com