SlideShare une entreprise Scribd logo
1  sur  50
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Kafka as Message Broker
Kafka as Message BrokerKafka as Message Broker
Kafka as Message BrokerHaluan Irsad
 
Understanding docker networking
Understanding docker networkingUnderstanding docker networking
Understanding docker networkingLorenzo Fontana
 
Janus + Audio @ Open Source World
Janus + Audio @ Open Source WorldJanus + Audio @ Open Source World
Janus + Audio @ Open Source WorldLorenzo Miniero
 
Room 3 - 6 - Nguyễn Văn Thắng & Dzung Nguyen - Ứng dụng openzfs làm lưu trữ t...
Room 3 - 6 - Nguyễn Văn Thắng & Dzung Nguyen - Ứng dụng openzfs làm lưu trữ t...Room 3 - 6 - Nguyễn Văn Thắng & Dzung Nguyen - Ứng dụng openzfs làm lưu trữ t...
Room 3 - 6 - Nguyễn Văn Thắng & Dzung Nguyen - Ứng dụng openzfs làm lưu trữ t...Vietnam Open Infrastructure User Group
 
Heterogeneous multiprocessing on androd and i.mx7
Heterogeneous multiprocessing on androd and i.mx7Heterogeneous multiprocessing on androd and i.mx7
Heterogeneous multiprocessing on androd and i.mx7Kynetics
 
Best Practices for Streaming IoT Data with MQTT and Apache Kafka®
Best Practices for Streaming IoT Data with MQTT and Apache Kafka®Best Practices for Streaming IoT Data with MQTT and Apache Kafka®
Best Practices for Streaming IoT Data with MQTT and Apache Kafka®confluent
 
Using Kafka: Anatomy of the Flowable event registry
Using Kafka: Anatomy of the Flowable event registryUsing Kafka: Anatomy of the Flowable event registry
Using Kafka: Anatomy of the Flowable event registryFlowable
 
Kafka’s New Control Plane: The Quorum Controller | Colin McCabe, Confluent
Kafka’s New Control Plane: The Quorum Controller | Colin McCabe, ConfluentKafka’s New Control Plane: The Quorum Controller | Colin McCabe, Confluent
Kafka’s New Control Plane: The Quorum Controller | Colin McCabe, ConfluentHostedbyConfluent
 
OpenShift 4 installation
OpenShift 4 installationOpenShift 4 installation
OpenShift 4 installationRobert Bohne
 
Client Side Monitoring With Prometheus
Client Side Monitoring With PrometheusClient Side Monitoring With Prometheus
Client Side Monitoring With PrometheusWeaveworks
 
Fuzzing Linux Kernel
Fuzzing Linux KernelFuzzing Linux Kernel
Fuzzing Linux KernelPiyush Mishra
 
Deep dive into Kubernetes Networking
Deep dive into Kubernetes NetworkingDeep dive into Kubernetes Networking
Deep dive into Kubernetes NetworkingSreenivas Makam
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetesDongwon Kim
 
Room 1 - 7 - Lê Quốc Đạt - Upgrading network of Openstack to SDN with Tungste...
Room 1 - 7 - Lê Quốc Đạt - Upgrading network of Openstack to SDN with Tungste...Room 1 - 7 - Lê Quốc Đạt - Upgrading network of Openstack to SDN with Tungste...
Room 1 - 7 - Lê Quốc Đạt - Upgrading network of Openstack to SDN with Tungste...Vietnam Open Infrastructure User Group
 
Istio service mesh introduction
Istio service mesh introductionIstio service mesh introduction
Istio service mesh introductionKyohei Mizumoto
 
KVM High Availability Regardless of Storage - Gabriel Brascher, VP of Apache ...
KVM High Availability Regardless of Storage - Gabriel Brascher, VP of Apache ...KVM High Availability Regardless of Storage - Gabriel Brascher, VP of Apache ...
KVM High Availability Regardless of Storage - Gabriel Brascher, VP of Apache ...ShapeBlue
 

Tendances (20)

Kafka as Message Broker
Kafka as Message BrokerKafka as Message Broker
Kafka as Message Broker
 
Understanding docker networking
Understanding docker networkingUnderstanding docker networking
Understanding docker networking
 
Janus + Audio @ Open Source World
Janus + Audio @ Open Source WorldJanus + Audio @ Open Source World
Janus + Audio @ Open Source World
 
Room 3 - 6 - Nguyễn Văn Thắng & Dzung Nguyen - Ứng dụng openzfs làm lưu trữ t...
Room 3 - 6 - Nguyễn Văn Thắng & Dzung Nguyen - Ứng dụng openzfs làm lưu trữ t...Room 3 - 6 - Nguyễn Văn Thắng & Dzung Nguyen - Ứng dụng openzfs làm lưu trữ t...
Room 3 - 6 - Nguyễn Văn Thắng & Dzung Nguyen - Ứng dụng openzfs làm lưu trữ t...
 
Heterogeneous multiprocessing on androd and i.mx7
Heterogeneous multiprocessing on androd and i.mx7Heterogeneous multiprocessing on androd and i.mx7
Heterogeneous multiprocessing on androd and i.mx7
 
Docker & Kubernetes intro
Docker & Kubernetes introDocker & Kubernetes intro
Docker & Kubernetes intro
 
Best Practices for Streaming IoT Data with MQTT and Apache Kafka®
Best Practices for Streaming IoT Data with MQTT and Apache Kafka®Best Practices for Streaming IoT Data with MQTT and Apache Kafka®
Best Practices for Streaming IoT Data with MQTT and Apache Kafka®
 
Using Kafka: Anatomy of the Flowable event registry
Using Kafka: Anatomy of the Flowable event registryUsing Kafka: Anatomy of the Flowable event registry
Using Kafka: Anatomy of the Flowable event registry
 
Kafka’s New Control Plane: The Quorum Controller | Colin McCabe, Confluent
Kafka’s New Control Plane: The Quorum Controller | Colin McCabe, ConfluentKafka’s New Control Plane: The Quorum Controller | Colin McCabe, Confluent
Kafka’s New Control Plane: The Quorum Controller | Colin McCabe, Confluent
 
Intro to kubernetes
Intro to kubernetesIntro to kubernetes
Intro to kubernetes
 
WASM! WASI! WAGI! WAT?
WASM! WASI! WAGI! WAT?WASM! WASI! WAGI! WAT?
WASM! WASI! WAGI! WAT?
 
OpenShift 4 installation
OpenShift 4 installationOpenShift 4 installation
OpenShift 4 installation
 
Client Side Monitoring With Prometheus
Client Side Monitoring With PrometheusClient Side Monitoring With Prometheus
Client Side Monitoring With Prometheus
 
Neutron packet logging framework
Neutron packet logging frameworkNeutron packet logging framework
Neutron packet logging framework
 
Fuzzing Linux Kernel
Fuzzing Linux KernelFuzzing Linux Kernel
Fuzzing Linux Kernel
 
Deep dive into Kubernetes Networking
Deep dive into Kubernetes NetworkingDeep dive into Kubernetes Networking
Deep dive into Kubernetes Networking
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetes
 
Room 1 - 7 - Lê Quốc Đạt - Upgrading network of Openstack to SDN with Tungste...
Room 1 - 7 - Lê Quốc Đạt - Upgrading network of Openstack to SDN with Tungste...Room 1 - 7 - Lê Quốc Đạt - Upgrading network of Openstack to SDN with Tungste...
Room 1 - 7 - Lê Quốc Đạt - Upgrading network of Openstack to SDN with Tungste...
 
Istio service mesh introduction
Istio service mesh introductionIstio service mesh introduction
Istio service mesh introduction
 
KVM High Availability Regardless of Storage - Gabriel Brascher, VP of Apache ...
KVM High Availability Regardless of Storage - Gabriel Brascher, VP of Apache ...KVM High Availability Regardless of Storage - Gabriel Brascher, VP of Apache ...
KVM High Availability Regardless of Storage - Gabriel Brascher, VP of Apache ...
 

Similaire à Can SFUs and MCUs be friends @ IIT-RTC 2020

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
 
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
 
BP503 IBM Connect 2014
BP503 IBM Connect 2014BP503 IBM Connect 2014
BP503 IBM Connect 2014Peter Lurie
 
Three years of OFELIA - taking stock
Three years of OFELIA - taking stockThree years of OFELIA - taking stock
Three years of OFELIA - taking stockFIBRE Testbed
 

Similaire à Can SFUs and MCUs be friends @ IIT-RTC 2020 (20)

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
 
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
 
BP503 IBM Connect 2014
BP503 IBM Connect 2014BP503 IBM Connect 2014
BP503 IBM Connect 2014
 
Three years of OFELIA - taking stock
Three years of OFELIA - taking stockThree years of OFELIA - taking stock
Three years of OFELIA - taking stock
 

Plus de 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
 
SIP transfer with Janus/WebRTC @ OpenSIPS 2022
SIP transfer with Janus/WebRTC @ OpenSIPS 2022SIP transfer with Janus/WebRTC @ OpenSIPS 2022
SIP transfer with Janus/WebRTC @ OpenSIPS 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 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
 

Plus de 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
 
SIP transfer with Janus/WebRTC @ OpenSIPS 2022
SIP transfer with Janus/WebRTC @ OpenSIPS 2022SIP transfer with Janus/WebRTC @ OpenSIPS 2022
SIP transfer with Janus/WebRTC @ OpenSIPS 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 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
 

Dernier

The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 

Dernier (20)

The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 

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