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

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 

Recently uploaded (20)

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

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