SlideShare a Scribd company logo
1 of 53
Download to read offline
WebRTC broadcasting: standardization,
challenges and opportunities
Lorenzo Miniero
@lminiero@fosstodon.org
TADSummit 2023
20th October 2023, Paris
Who am I?
Lorenzo Miniero
• Ph.D @ UniNA
• Chairman @ Meetecho
• Main author of Janus
Contacts and info
• lorenzo@meetecho.com
• https://fosstodon.org/@lminiero
• https://www.slideshare.net/LorenzoMiniero
• https://lminiero.bandcamp.com
Just a few words on Meetecho
• Co-founded in 2009 as an academic spin-off
• University research efforts brought to the market
• Completely independent from the University
• Focus on real-time multimedia applications
• Strong perspective on standardization and open source
• Several activities
• Consulting services
• Commercial support and Janus licenses
• Streaming of live events (IETF, RIPE, etc.)
• Proudly brewed in sunny Napoli(*), Italy
Hello from sunny Naples, Italy!
How “traditional” broadcasting typically works
What if we want more interactivity, though?
What if we want more interactivity, though?
What if we want more interactivity, though?
What if we want more interactivity, though?
Why not WebRTC instead?
• Traditional broadcasting efficient but higher latency
• At best (live), delay will typically be in the range of a few seconds
• Besides, different users may experience different delays (buffering)
• WebRTC natively conceived for very low latency, instead
• Born for conversational audio/video/data
• Can be (and often is) easily used for monodirectional streaming as well
• Strangely not really considered by the industry up until recently, though
• Good audio quality (Opus, RED/FEC, stereo/multiopus, etc.)
• Good video quality (multiple codecs, simulcast/SVC, etc.)
• Tooling an important aspect to foster WebRTC adoption, here
• e.g., a standard way to send media, and tools à la OBS, XSplit, or others
Why not WebRTC instead?
• Traditional broadcasting efficient but higher latency
• At best (live), delay will typically be in the range of a few seconds
• Besides, different users may experience different delays (buffering)
• WebRTC natively conceived for very low latency, instead
• Born for conversational audio/video/data
• Can be (and often is) easily used for monodirectional streaming as well
• Strangely not really considered by the industry up until recently, though
• Good audio quality (Opus, RED/FEC, stereo/multiopus, etc.)
• Good video quality (multiple codecs, simulcast/SVC, etc.)
• Tooling an important aspect to foster WebRTC adoption, here
• e.g., a standard way to send media, and tools à la OBS, XSplit, or others
Why not WebRTC instead?
• Traditional broadcasting efficient but higher latency
• At best (live), delay will typically be in the range of a few seconds
• Besides, different users may experience different delays (buffering)
• WebRTC natively conceived for very low latency, instead
• Born for conversational audio/video/data
• Can be (and often is) easily used for monodirectional streaming as well
• Strangely not really considered by the industry up until recently, though
• Good audio quality (Opus, RED/FEC, stereo/multiopus, etc.)
• Good video quality (multiple codecs, simulcast/SVC, etc.)
• Tooling an important aspect to foster WebRTC adoption, here
• e.g., a standard way to send media, and tools à la OBS, XSplit, or others
Why not WebRTC instead?
• Traditional broadcasting efficient but higher latency
• At best (live), delay will typically be in the range of a few seconds
• Besides, different users may experience different delays (buffering)
• WebRTC natively conceived for very low latency, instead
• Born for conversational audio/video/data
• Can be (and often is) easily used for monodirectional streaming as well
• Strangely not really considered by the industry up until recently, though
• Good audio quality (Opus, RED/FEC, stereo/multiopus, etc.)
• Good video quality (multiple codecs, simulcast/SVC, etc.)
• Tooling an important aspect to foster WebRTC adoption, here
• e.g., a standard way to send media, and tools à la OBS, XSplit, or others
Two main challenges: ingestion...
Two main challenges: ... and distribution
(and yeah, maybe scaling too! )
A new Working Group in the IETF
https://datatracker.ietf.org/wg/wish/about/
Making WebRTC ingestion easy: WHIP!
https://www.meetecho.com/blog/whip-janus/ (September 2020)
Making WebRTC ingestion easy: WHIP!
https://www.meetecho.com/blog/whip-janus-part-ii/
WebRTC-HTTP ingestion protocol (WHIP)
• HTTP-based signalling to create sendonly PeerConnections
• HTTP POST to send SDP offer, and get an SDP answer in the response
• Teardown of sessions using HTTP DELETE
• Authentication and authorization via Bearer tokens
• https://www.rfc-editor.org/rfc/rfc6750.html
• Trickle and ICE restart via HTTP PATCH and SDP fragments
• https://www.rfc-editor.org/rfc/rfc8840.html
• Everything else is your usual WebRTC!
• ICE, DTLS, etc.
WebRTC-HTTP ingestion protocol (WHIP)
• HTTP-based signalling to create sendonly PeerConnections
• HTTP POST to send SDP offer, and get an SDP answer in the response
• Teardown of sessions using HTTP DELETE
• Authentication and authorization via Bearer tokens
• https://www.rfc-editor.org/rfc/rfc6750.html
• Trickle and ICE restart via HTTP PATCH and SDP fragments
• https://www.rfc-editor.org/rfc/rfc8840.html
• Everything else is your usual WebRTC!
• ICE, DTLS, etc.
WebRTC-HTTP ingestion protocol (WHIP)
• HTTP-based signalling to create sendonly PeerConnections
• HTTP POST to send SDP offer, and get an SDP answer in the response
• Teardown of sessions using HTTP DELETE
• Authentication and authorization via Bearer tokens
• https://www.rfc-editor.org/rfc/rfc6750.html
• Trickle and ICE restart via HTTP PATCH and SDP fragments
• https://www.rfc-editor.org/rfc/rfc8840.html
• Everything else is your usual WebRTC!
• ICE, DTLS, etc.
WebRTC-HTTP ingestion protocol (WHIP)
• HTTP-based signalling to create sendonly PeerConnections
• HTTP POST to send SDP offer, and get an SDP answer in the response
• Teardown of sessions using HTTP DELETE
• Authentication and authorization via Bearer tokens
• https://www.rfc-editor.org/rfc/rfc6750.html
• Trickle and ICE restart via HTTP PATCH and SDP fragments
• https://www.rfc-editor.org/rfc/rfc8840.html
• Everything else is your usual WebRTC!
• ICE, DTLS, etc.
WebRTC-HTTP ingestion protocol (WHIP)
Enter the Janus WebRTC Server
Janus
General purpose, open source WebRTC server
• https://github.com/meetecho/janus-gateway
• Demos and documentation: https://janus.conf.meetecho.com
• Community: https://janus.discourse.group/
Prototyping WHIP with Janus
https://github.com/meetecho/simple-whip-server
https://github.com/meetecho/simple-whip-client
OBS + WebRTC = r (thanks Sean DuBois!)
https://webrtchacks.com/webrtc-cracks-the-whip-on-obs/
OBS + WebRTC = r (thanks Sean DuBois!)
https://webrtchacks.com/webrtc-cracks-the-whip-on-obs/
Next step: broadcasting the stream
• WHIP server allows ingestion, and it’s a good starting point
• We have a WebRTC stream in an SFU, now (e.g., Janus)
• This now needs to be distributed somehow, though
• Not a big problem per se
• It’s a “regular” 1-to-many distribution
• Most servers and services provide ways to do that
• What’s the standard way to consume this stream now, though?
• SFUs will obviously provide their own custom APIs...
• ... but a standard approach would be much better!
Enter WHEP!
https://www.ietf.org/archive/id/draft-murillo-whep-02.html
Next step: broadcasting the stream
• WHIP server allows ingestion, and it’s a good starting point
• We have a WebRTC stream in an SFU, now (e.g., Janus)
• This now needs to be distributed somehow, though
• Not a big problem per se
• It’s a “regular” 1-to-many distribution
• Most servers and services provide ways to do that
• What’s the standard way to consume this stream now, though?
• SFUs will obviously provide their own custom APIs...
• ... but a standard approach would be much better!
Enter WHEP!
https://www.ietf.org/archive/id/draft-murillo-whep-02.html
Next step: broadcasting the stream
• WHIP server allows ingestion, and it’s a good starting point
• We have a WebRTC stream in an SFU, now (e.g., Janus)
• This now needs to be distributed somehow, though
• Not a big problem per se
• It’s a “regular” 1-to-many distribution
• Most servers and services provide ways to do that
• What’s the standard way to consume this stream now, though?
• SFUs will obviously provide their own custom APIs...
• ... but a standard approach would be much better!
Enter WHEP!
https://www.ietf.org/archive/id/draft-murillo-whep-02.html
Next step: broadcasting the stream
• WHIP server allows ingestion, and it’s a good starting point
• We have a WebRTC stream in an SFU, now (e.g., Janus)
• This now needs to be distributed somehow, though
• Not a big problem per se
• It’s a “regular” 1-to-many distribution
• Most servers and services provide ways to do that
• What’s the standard way to consume this stream now, though?
• SFUs will obviously provide their own custom APIs...
• ... but a standard approach would be much better!
Enter WHEP!
https://www.ietf.org/archive/id/draft-murillo-whep-02.html
WHIP, WHEP & WHAP!
https://www.meetecho.com/blog/whip-whep/
WebRTC-HTTP egress protocol (WHEP)
• Twin protocol of WHIP
• WHIP takes care of ingestion (sendonly for users)
• WHEP takes care of consuming (recvonly for users)
• Pretty much the same approach too
• HTTP-based protocol (offer/answer)
• Bearer token authentication
• HTTP PATCH and SDP fragments for trickle/restarts
• WebRTC PeerConnection as a result
• Both WHIP and WHEP expecting an offer means they can’t be chained, though...
• https://www.meetecho.com/blog/whep-qui/
• </rant>
WebRTC-HTTP egress protocol (WHEP)
• Twin protocol of WHIP
• WHIP takes care of ingestion (sendonly for users)
• WHEP takes care of consuming (recvonly for users)
• Pretty much the same approach too
• HTTP-based protocol (offer/answer)
• Bearer token authentication
• HTTP PATCH and SDP fragments for trickle/restarts
• WebRTC PeerConnection as a result
• Both WHIP and WHEP expecting an offer means they can’t be chained, though...
• https://www.meetecho.com/blog/whep-qui/
• </rant>
WebRTC-HTTP egress protocol (WHEP)
• Twin protocol of WHIP
• WHIP takes care of ingestion (sendonly for users)
• WHEP takes care of consuming (recvonly for users)
• Pretty much the same approach too
• HTTP-based protocol (offer/answer)
• Bearer token authentication
• HTTP PATCH and SDP fragments for trickle/restarts
• WebRTC PeerConnection as a result
• Both WHIP and WHEP expecting an offer means they can’t be chained, though...
• https://www.meetecho.com/blog/whep-qui/
• </rant>
WebRTC-HTTP egress protocol (WHEP)
Prototyping WHEP (too) with Janus
https://github.com/meetecho/simple-whep-server
https://github.com/meetecho/simple-whep-client
Ingestion 2
, distribution 2
, what about scaling?
Ph.D Thesis on WebRTC broadcasting (2015)
Using SOLEIL for the purpose
• “Streaming Of Large scale Events over Internet cLouds” (Ph.D Thesis)
• In a nutshell, tree-based distribution of WebRTC feeds
• Ingest and edges are WebRTC (Janus), everything in the middle just RTP
• Working with RTP in intermediate layers has many advantages
• No WebRTC overhead, and easier to route/manipulate by non-WebRTC tools
• You can even take advantage of multicast and/or SDNs, here
• Just needs RTP forwarding to kickstart everything
• Simple WHIP Server does support it (VideoRoom −→ RTP)
• ... and Simple WHEP Server uses Streaming plugin, which consumes RTP!
Using SOLEIL for the purpose
• “Streaming Of Large scale Events over Internet cLouds” (Ph.D Thesis)
• In a nutshell, tree-based distribution of WebRTC feeds
• Ingest and edges are WebRTC (Janus), everything in the middle just RTP
• Working with RTP in intermediate layers has many advantages
• No WebRTC overhead, and easier to route/manipulate by non-WebRTC tools
• You can even take advantage of multicast and/or SDNs, here
• Just needs RTP forwarding to kickstart everything
• Simple WHIP Server does support it (VideoRoom −→ RTP)
• ... and Simple WHEP Server uses Streaming plugin, which consumes RTP!
Using SOLEIL for the purpose
• “Streaming Of Large scale Events over Internet cLouds” (Ph.D Thesis)
• In a nutshell, tree-based distribution of WebRTC feeds
• Ingest and edges are WebRTC (Janus), everything in the middle just RTP
• Working with RTP in intermediate layers has many advantages
• No WebRTC overhead, and easier to route/manipulate by non-WebRTC tools
• You can even take advantage of multicast and/or SDNs, here
• Just needs RTP forwarding to kickstart everything
• Simple WHIP Server does support it (VideoRoom −→ RTP)
• ... and Simple WHEP Server uses Streaming plugin, which consumes RTP!
Distributing WHIP Janus streams via SOLEIL
Distributing WHIP Janus streams via SOLEIL
Distributing WHIP Janus streams via SOLEIL
Distributing WHIP Janus streams via SOLEIL
Distributing WHIP Janus streams via SOLEIL
Leveraging multicast internally for RTP
Leveraging multicast internally for RTP
Thanks! Questions? Comments?
Contacts
• https://fosstodon.org/@lminiero
• https://twitter.com/elminiero
• https://twitter.com/meetecho
• https://www.meetecho.com/blog/
JanusCon is back, see you soon in Napoli!
April 29-30, 2024, Napoli — https://januscon.it
JanusCon is back, see you soon in Napoli!
April 29-30, 2024, Napoli — https://januscon.it

More Related Content

Similar to WebRTC broadcasting standardization, challenges and opportunities

Janus @ WebRTC Meetup Stockholm
Janus @ WebRTC Meetup StockholmJanus @ WebRTC Meetup Stockholm
Janus @ WebRTC Meetup StockholmLorenzo Miniero
 
Multistream in Janus @ CommCon 2019
Multistream in Janus @ CommCon 2019Multistream in Janus @ CommCon 2019
Multistream in Janus @ CommCon 2019Lorenzo Miniero
 
Upperside Webinar - WebRTC Standards Update
Upperside Webinar - WebRTC Standards UpdateUpperside Webinar - WebRTC Standards Update
Upperside Webinar - WebRTC Standards UpdateUppersideConferences
 
Fuzzing Janus @ IPTComm 2019
Fuzzing Janus @ IPTComm 2019Fuzzing Janus @ IPTComm 2019
Fuzzing Janus @ IPTComm 2019Lorenzo Miniero
 
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
 
Fuzzing RTC @ Kamailio World 2019
Fuzzing RTC @ Kamailio World 2019Fuzzing RTC @ Kamailio World 2019
Fuzzing RTC @ Kamailio World 2019Lorenzo Miniero
 
Janus Workshop @ ClueCon 2020
Janus Workshop @ ClueCon 2020Janus Workshop @ ClueCon 2020
Janus Workshop @ ClueCon 2020Lorenzo Miniero
 
Insertable Streams and E2EE @ ClueCon2020
Insertable Streams and E2EE @ ClueCon2020Insertable Streams and E2EE @ ClueCon2020
Insertable Streams and E2EE @ ClueCon2020Lorenzo Miniero
 
Janus: an open source and general purpose WebRTC (gateway) server
Janus: an open source and general purpose WebRTC (gateway) serverJanus: an open source and general purpose WebRTC (gateway) server
Janus: an open source and general purpose WebRTC (gateway) serverDevDay
 
Can SFUs and MCUs be friends @ IIT-RTC 2020
Can SFUs and MCUs be friends @ IIT-RTC 2020Can SFUs and MCUs be friends @ IIT-RTC 2020
Can SFUs and MCUs be friends @ IIT-RTC 2020Lorenzo Miniero
 
WebRTC standards update - November 2014
WebRTC standards update - November 2014WebRTC standards update - November 2014
WebRTC standards update - November 2014Victor Pascual Ávila
 
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
 
WebRTC Rockstars Asian Tour 2017
WebRTC Rockstars Asian Tour 2017WebRTC Rockstars Asian Tour 2017
WebRTC Rockstars Asian Tour 2017Lorenzo 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
 

Similar to WebRTC broadcasting standardization, challenges and opportunities (20)

Janus @ WebRTC Meetup Stockholm
Janus @ WebRTC Meetup StockholmJanus @ WebRTC Meetup Stockholm
Janus @ WebRTC Meetup Stockholm
 
Multistream in Janus @ CommCon 2019
Multistream in Janus @ CommCon 2019Multistream in Janus @ CommCon 2019
Multistream in Janus @ CommCon 2019
 
Upperside Webinar - WebRTC Standards Update
Upperside Webinar - WebRTC Standards UpdateUpperside Webinar - WebRTC Standards Update
Upperside Webinar - WebRTC Standards Update
 
Janus @ ClueCon 2019
Janus @ ClueCon 2019Janus @ ClueCon 2019
Janus @ ClueCon 2019
 
Janus @ RTC2017 Beijing
Janus @ RTC2017 BeijingJanus @ RTC2017 Beijing
Janus @ RTC2017 Beijing
 
Fuzzing Janus @ IPTComm 2019
Fuzzing Janus @ IPTComm 2019Fuzzing Janus @ IPTComm 2019
Fuzzing Janus @ IPTComm 2019
 
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
 
Fuzzing RTC @ Kamailio World 2019
Fuzzing RTC @ Kamailio World 2019Fuzzing RTC @ Kamailio World 2019
Fuzzing RTC @ Kamailio World 2019
 
Janus Workshop @ ClueCon 2020
Janus Workshop @ ClueCon 2020Janus Workshop @ ClueCon 2020
Janus Workshop @ ClueCon 2020
 
Insertable Streams and E2EE @ ClueCon2020
Insertable Streams and E2EE @ ClueCon2020Insertable Streams and E2EE @ ClueCon2020
Insertable Streams and E2EE @ ClueCon2020
 
Kurento FIWARE
Kurento FIWAREKurento FIWARE
Kurento FIWARE
 
Janus: an open source and general purpose WebRTC (gateway) server
Janus: an open source and general purpose WebRTC (gateway) serverJanus: an open source and general purpose WebRTC (gateway) server
Janus: an open source and general purpose WebRTC (gateway) server
 
Janus @ DevDay Napoli
Janus @ DevDay NapoliJanus @ DevDay Napoli
Janus @ DevDay Napoli
 
Can SFUs and MCUs be friends @ IIT-RTC 2020
Can SFUs and MCUs be friends @ IIT-RTC 2020Can SFUs and MCUs be friends @ IIT-RTC 2020
Can SFUs and MCUs be friends @ IIT-RTC 2020
 
WebRTC standards update - November 2014
WebRTC standards update - November 2014WebRTC standards update - November 2014
WebRTC standards update - November 2014
 
WebRTC standards update (Jul 2014)
WebRTC standards update (Jul 2014)WebRTC standards update (Jul 2014)
WebRTC standards update (Jul 2014)
 
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
 
WebRTC Rockstars Asian Tour 2017
WebRTC Rockstars Asian Tour 2017WebRTC Rockstars Asian Tour 2017
WebRTC Rockstars Asian Tour 2017
 
Torino js
Torino jsTorino js
Torino js
 
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
 

More from Lorenzo 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
 
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
 
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
 
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 (16)

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
 
BWE in Janus
BWE in JanusBWE in Janus
BWE in Janus
 
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
 
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
 
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
 
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

APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
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
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
"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
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
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
 
"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
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
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
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
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
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
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
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
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
 

Recently uploaded (20)

APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
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
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
"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...
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
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...
 
"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
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
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
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
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
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
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
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
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)
 

WebRTC broadcasting standardization, challenges and opportunities

  • 1. WebRTC broadcasting: standardization, challenges and opportunities Lorenzo Miniero @lminiero@fosstodon.org TADSummit 2023 20th October 2023, Paris
  • 2. Who am I? Lorenzo Miniero • Ph.D @ UniNA • Chairman @ Meetecho • Main author of Janus Contacts and info • lorenzo@meetecho.com • https://fosstodon.org/@lminiero • https://www.slideshare.net/LorenzoMiniero • https://lminiero.bandcamp.com
  • 3. Just a few words on Meetecho • Co-founded in 2009 as an academic spin-off • University research efforts brought to the market • Completely independent from the University • Focus on real-time multimedia applications • Strong perspective on standardization and open source • Several activities • Consulting services • Commercial support and Janus licenses • Streaming of live events (IETF, RIPE, etc.) • Proudly brewed in sunny Napoli(*), Italy
  • 4. Hello from sunny Naples, Italy!
  • 6. What if we want more interactivity, though?
  • 7. What if we want more interactivity, though?
  • 8. What if we want more interactivity, though?
  • 9. What if we want more interactivity, though?
  • 10. Why not WebRTC instead? • Traditional broadcasting efficient but higher latency • At best (live), delay will typically be in the range of a few seconds • Besides, different users may experience different delays (buffering) • WebRTC natively conceived for very low latency, instead • Born for conversational audio/video/data • Can be (and often is) easily used for monodirectional streaming as well • Strangely not really considered by the industry up until recently, though • Good audio quality (Opus, RED/FEC, stereo/multiopus, etc.) • Good video quality (multiple codecs, simulcast/SVC, etc.) • Tooling an important aspect to foster WebRTC adoption, here • e.g., a standard way to send media, and tools à la OBS, XSplit, or others
  • 11. Why not WebRTC instead? • Traditional broadcasting efficient but higher latency • At best (live), delay will typically be in the range of a few seconds • Besides, different users may experience different delays (buffering) • WebRTC natively conceived for very low latency, instead • Born for conversational audio/video/data • Can be (and often is) easily used for monodirectional streaming as well • Strangely not really considered by the industry up until recently, though • Good audio quality (Opus, RED/FEC, stereo/multiopus, etc.) • Good video quality (multiple codecs, simulcast/SVC, etc.) • Tooling an important aspect to foster WebRTC adoption, here • e.g., a standard way to send media, and tools à la OBS, XSplit, or others
  • 12. Why not WebRTC instead? • Traditional broadcasting efficient but higher latency • At best (live), delay will typically be in the range of a few seconds • Besides, different users may experience different delays (buffering) • WebRTC natively conceived for very low latency, instead • Born for conversational audio/video/data • Can be (and often is) easily used for monodirectional streaming as well • Strangely not really considered by the industry up until recently, though • Good audio quality (Opus, RED/FEC, stereo/multiopus, etc.) • Good video quality (multiple codecs, simulcast/SVC, etc.) • Tooling an important aspect to foster WebRTC adoption, here • e.g., a standard way to send media, and tools à la OBS, XSplit, or others
  • 13. Why not WebRTC instead? • Traditional broadcasting efficient but higher latency • At best (live), delay will typically be in the range of a few seconds • Besides, different users may experience different delays (buffering) • WebRTC natively conceived for very low latency, instead • Born for conversational audio/video/data • Can be (and often is) easily used for monodirectional streaming as well • Strangely not really considered by the industry up until recently, though • Good audio quality (Opus, RED/FEC, stereo/multiopus, etc.) • Good video quality (multiple codecs, simulcast/SVC, etc.) • Tooling an important aspect to foster WebRTC adoption, here • e.g., a standard way to send media, and tools à la OBS, XSplit, or others
  • 14. Two main challenges: ingestion...
  • 15. Two main challenges: ... and distribution
  • 16. (and yeah, maybe scaling too! )
  • 17. A new Working Group in the IETF https://datatracker.ietf.org/wg/wish/about/
  • 18. Making WebRTC ingestion easy: WHIP! https://www.meetecho.com/blog/whip-janus/ (September 2020)
  • 19. Making WebRTC ingestion easy: WHIP! https://www.meetecho.com/blog/whip-janus-part-ii/
  • 20. WebRTC-HTTP ingestion protocol (WHIP) • HTTP-based signalling to create sendonly PeerConnections • HTTP POST to send SDP offer, and get an SDP answer in the response • Teardown of sessions using HTTP DELETE • Authentication and authorization via Bearer tokens • https://www.rfc-editor.org/rfc/rfc6750.html • Trickle and ICE restart via HTTP PATCH and SDP fragments • https://www.rfc-editor.org/rfc/rfc8840.html • Everything else is your usual WebRTC! • ICE, DTLS, etc.
  • 21. WebRTC-HTTP ingestion protocol (WHIP) • HTTP-based signalling to create sendonly PeerConnections • HTTP POST to send SDP offer, and get an SDP answer in the response • Teardown of sessions using HTTP DELETE • Authentication and authorization via Bearer tokens • https://www.rfc-editor.org/rfc/rfc6750.html • Trickle and ICE restart via HTTP PATCH and SDP fragments • https://www.rfc-editor.org/rfc/rfc8840.html • Everything else is your usual WebRTC! • ICE, DTLS, etc.
  • 22. WebRTC-HTTP ingestion protocol (WHIP) • HTTP-based signalling to create sendonly PeerConnections • HTTP POST to send SDP offer, and get an SDP answer in the response • Teardown of sessions using HTTP DELETE • Authentication and authorization via Bearer tokens • https://www.rfc-editor.org/rfc/rfc6750.html • Trickle and ICE restart via HTTP PATCH and SDP fragments • https://www.rfc-editor.org/rfc/rfc8840.html • Everything else is your usual WebRTC! • ICE, DTLS, etc.
  • 23. WebRTC-HTTP ingestion protocol (WHIP) • HTTP-based signalling to create sendonly PeerConnections • HTTP POST to send SDP offer, and get an SDP answer in the response • Teardown of sessions using HTTP DELETE • Authentication and authorization via Bearer tokens • https://www.rfc-editor.org/rfc/rfc6750.html • Trickle and ICE restart via HTTP PATCH and SDP fragments • https://www.rfc-editor.org/rfc/rfc8840.html • Everything else is your usual WebRTC! • ICE, DTLS, etc.
  • 25. Enter the Janus WebRTC Server Janus General purpose, open source WebRTC server • https://github.com/meetecho/janus-gateway • Demos and documentation: https://janus.conf.meetecho.com • Community: https://janus.discourse.group/
  • 26. Prototyping WHIP with Janus https://github.com/meetecho/simple-whip-server https://github.com/meetecho/simple-whip-client
  • 27. OBS + WebRTC = r (thanks Sean DuBois!) https://webrtchacks.com/webrtc-cracks-the-whip-on-obs/
  • 28. OBS + WebRTC = r (thanks Sean DuBois!) https://webrtchacks.com/webrtc-cracks-the-whip-on-obs/
  • 29. Next step: broadcasting the stream • WHIP server allows ingestion, and it’s a good starting point • We have a WebRTC stream in an SFU, now (e.g., Janus) • This now needs to be distributed somehow, though • Not a big problem per se • It’s a “regular” 1-to-many distribution • Most servers and services provide ways to do that • What’s the standard way to consume this stream now, though? • SFUs will obviously provide their own custom APIs... • ... but a standard approach would be much better! Enter WHEP! https://www.ietf.org/archive/id/draft-murillo-whep-02.html
  • 30. Next step: broadcasting the stream • WHIP server allows ingestion, and it’s a good starting point • We have a WebRTC stream in an SFU, now (e.g., Janus) • This now needs to be distributed somehow, though • Not a big problem per se • It’s a “regular” 1-to-many distribution • Most servers and services provide ways to do that • What’s the standard way to consume this stream now, though? • SFUs will obviously provide their own custom APIs... • ... but a standard approach would be much better! Enter WHEP! https://www.ietf.org/archive/id/draft-murillo-whep-02.html
  • 31. Next step: broadcasting the stream • WHIP server allows ingestion, and it’s a good starting point • We have a WebRTC stream in an SFU, now (e.g., Janus) • This now needs to be distributed somehow, though • Not a big problem per se • It’s a “regular” 1-to-many distribution • Most servers and services provide ways to do that • What’s the standard way to consume this stream now, though? • SFUs will obviously provide their own custom APIs... • ... but a standard approach would be much better! Enter WHEP! https://www.ietf.org/archive/id/draft-murillo-whep-02.html
  • 32. Next step: broadcasting the stream • WHIP server allows ingestion, and it’s a good starting point • We have a WebRTC stream in an SFU, now (e.g., Janus) • This now needs to be distributed somehow, though • Not a big problem per se • It’s a “regular” 1-to-many distribution • Most servers and services provide ways to do that • What’s the standard way to consume this stream now, though? • SFUs will obviously provide their own custom APIs... • ... but a standard approach would be much better! Enter WHEP! https://www.ietf.org/archive/id/draft-murillo-whep-02.html
  • 33. WHIP, WHEP & WHAP! https://www.meetecho.com/blog/whip-whep/
  • 34. WebRTC-HTTP egress protocol (WHEP) • Twin protocol of WHIP • WHIP takes care of ingestion (sendonly for users) • WHEP takes care of consuming (recvonly for users) • Pretty much the same approach too • HTTP-based protocol (offer/answer) • Bearer token authentication • HTTP PATCH and SDP fragments for trickle/restarts • WebRTC PeerConnection as a result • Both WHIP and WHEP expecting an offer means they can’t be chained, though... • https://www.meetecho.com/blog/whep-qui/ • </rant>
  • 35. WebRTC-HTTP egress protocol (WHEP) • Twin protocol of WHIP • WHIP takes care of ingestion (sendonly for users) • WHEP takes care of consuming (recvonly for users) • Pretty much the same approach too • HTTP-based protocol (offer/answer) • Bearer token authentication • HTTP PATCH and SDP fragments for trickle/restarts • WebRTC PeerConnection as a result • Both WHIP and WHEP expecting an offer means they can’t be chained, though... • https://www.meetecho.com/blog/whep-qui/ • </rant>
  • 36. WebRTC-HTTP egress protocol (WHEP) • Twin protocol of WHIP • WHIP takes care of ingestion (sendonly for users) • WHEP takes care of consuming (recvonly for users) • Pretty much the same approach too • HTTP-based protocol (offer/answer) • Bearer token authentication • HTTP PATCH and SDP fragments for trickle/restarts • WebRTC PeerConnection as a result • Both WHIP and WHEP expecting an offer means they can’t be chained, though... • https://www.meetecho.com/blog/whep-qui/ • </rant>
  • 38. Prototyping WHEP (too) with Janus https://github.com/meetecho/simple-whep-server https://github.com/meetecho/simple-whep-client
  • 39. Ingestion 2 , distribution 2 , what about scaling?
  • 40. Ph.D Thesis on WebRTC broadcasting (2015)
  • 41. Using SOLEIL for the purpose • “Streaming Of Large scale Events over Internet cLouds” (Ph.D Thesis) • In a nutshell, tree-based distribution of WebRTC feeds • Ingest and edges are WebRTC (Janus), everything in the middle just RTP • Working with RTP in intermediate layers has many advantages • No WebRTC overhead, and easier to route/manipulate by non-WebRTC tools • You can even take advantage of multicast and/or SDNs, here • Just needs RTP forwarding to kickstart everything • Simple WHIP Server does support it (VideoRoom −→ RTP) • ... and Simple WHEP Server uses Streaming plugin, which consumes RTP!
  • 42. Using SOLEIL for the purpose • “Streaming Of Large scale Events over Internet cLouds” (Ph.D Thesis) • In a nutshell, tree-based distribution of WebRTC feeds • Ingest and edges are WebRTC (Janus), everything in the middle just RTP • Working with RTP in intermediate layers has many advantages • No WebRTC overhead, and easier to route/manipulate by non-WebRTC tools • You can even take advantage of multicast and/or SDNs, here • Just needs RTP forwarding to kickstart everything • Simple WHIP Server does support it (VideoRoom −→ RTP) • ... and Simple WHEP Server uses Streaming plugin, which consumes RTP!
  • 43. Using SOLEIL for the purpose • “Streaming Of Large scale Events over Internet cLouds” (Ph.D Thesis) • In a nutshell, tree-based distribution of WebRTC feeds • Ingest and edges are WebRTC (Janus), everything in the middle just RTP • Working with RTP in intermediate layers has many advantages • No WebRTC overhead, and easier to route/manipulate by non-WebRTC tools • You can even take advantage of multicast and/or SDNs, here • Just needs RTP forwarding to kickstart everything • Simple WHIP Server does support it (VideoRoom −→ RTP) • ... and Simple WHEP Server uses Streaming plugin, which consumes RTP!
  • 44. Distributing WHIP Janus streams via SOLEIL
  • 45. Distributing WHIP Janus streams via SOLEIL
  • 46. Distributing WHIP Janus streams via SOLEIL
  • 47. Distributing WHIP Janus streams via SOLEIL
  • 48. Distributing WHIP Janus streams via SOLEIL
  • 51. Thanks! Questions? Comments? Contacts • https://fosstodon.org/@lminiero • https://twitter.com/elminiero • https://twitter.com/meetecho • https://www.meetecho.com/blog/
  • 52. JanusCon is back, see you soon in Napoli! April 29-30, 2024, Napoli — https://januscon.it
  • 53. JanusCon is back, see you soon in Napoli! April 29-30, 2024, Napoli — https://januscon.it