SlideShare una empresa de Scribd logo
1 de 32
Descargar para leer sin conexión
Janus as a WebRTC “enabler”
Having fun with RTP and external applications
Lorenzo Miniero
@elminiero
FOSDEM 2020 Real Time devroom
2nd February 2020, Brussels
Who am I?
Lorenzo Miniero
• Ph.D @ UniNA
• Chairman @ Meetecho
• Main author of Janus
Contacts and info
• lorenzo@meetecho.com
• https://twitter.com/elminiero
• https://www.slideshare.net/LorenzoMiniero
• https://soundcloud.com/lminiero
Remember Janus?
Janus
General purpose, open source WebRTC server
• https://github.com/meetecho/janus-gateway
• Demos and documentation: https://janus.conf.meetecho.com
• Community: https://groups.google.com/forum/#!forum/meetecho-janus
A quick recap: modular architecture
• The core only implements the WebRTC stack
• JSEP/SDP, ICE, DTLS-SRTP, Data Channels, ...
• Plugins expose Janus API over different “transports”
• Currently HTTP / WebSockets / RabbitMQ / Unix Sockets / MQTT / Nanomsg
• “Application” logic implemented in plugins too
• Users attach to plugins via the Janus core
• The core handles the WebRTC stuff
• Plugins route/manipulate the media/data
• Plugins can be combined on client side as “bricks”
• Video SFU, Audio MCU, SIP gatewaying, broadcasting, etc.
Exchanging RTP (1): SIP plugin
https://janus.conf.meetecho.com/docs/sip
Exchanging RTP (2): NoSIP plugin
https://janus.conf.meetecho.com/docs/nosip
Re-broadcasting RTP: Streaming plugin
https://janus.conf.meetecho.com/docs/streaming
WebRTC-only MCU: AudioBridge plugin
https://janus.conf.meetecho.com/docs/audiobridge
WebRTC-only SFU: VideoRoom plugin
https://janus.conf.meetecho.com/docs/videoroom
Enter “RTP forwarders”
• Plugins like AudioBridge and VideoRoom only deal with WebRTC users...
• ... but all plugins have access to unencrypted media!
• Why not just forward those unencrypted packets somewhere else?
• Quite simply, relay RTP packets to specified address
• Plain RTP packets by default; SDES-SRTP supported, though
• A lot of existing tools can handle RTP natively
• You can take advantage of multicast networks easily
• Simulcast streams can be forwarded individually
• Basic RTCP support can help in some scenarios
• e.g., ask WebRTC peer to send a keyframe via a PLI
What about data channels?
Forwarded on UDP datagrams! (and so limited by MTU, at the moment...)
Enter “RTP forwarders”
• Plugins like AudioBridge and VideoRoom only deal with WebRTC users...
• ... but all plugins have access to unencrypted media!
• Why not just forward those unencrypted packets somewhere else?
• Quite simply, relay RTP packets to specified address
• Plain RTP packets by default; SDES-SRTP supported, though
• A lot of existing tools can handle RTP natively
• You can take advantage of multicast networks easily
• Simulcast streams can be forwarded individually
• Basic RTCP support can help in some scenarios
• e.g., ask WebRTC peer to send a keyframe via a PLI
What about data channels?
Forwarded on UDP datagrams! (and so limited by MTU, at the moment...)
Enter “RTP forwarders”
• Plugins like AudioBridge and VideoRoom only deal with WebRTC users...
• ... but all plugins have access to unencrypted media!
• Why not just forward those unencrypted packets somewhere else?
• Quite simply, relay RTP packets to specified address
• Plain RTP packets by default; SDES-SRTP supported, though
• A lot of existing tools can handle RTP natively
• You can take advantage of multicast networks easily
• Simulcast streams can be forwarded individually
• Basic RTCP support can help in some scenarios
• e.g., ask WebRTC peer to send a keyframe via a PLI
What about data channels?
Forwarded on UDP datagrams! (and so limited by MTU, at the moment...)
Enter “RTP forwarders”
• Plugins like AudioBridge and VideoRoom only deal with WebRTC users...
• ... but all plugins have access to unencrypted media!
• Why not just forward those unencrypted packets somewhere else?
• Quite simply, relay RTP packets to specified address
• Plain RTP packets by default; SDES-SRTP supported, though
• A lot of existing tools can handle RTP natively
• You can take advantage of multicast networks easily
• Simulcast streams can be forwarded individually
• Basic RTCP support can help in some scenarios
• e.g., ask WebRTC peer to send a keyframe via a PLI
What about data channels?
Forwarded on UDP datagrams! (and so limited by MTU, at the moment...)
Forwarding an AudioBridge mix
Forwarding an AudioBridge mix
Forwarding an AudioBridge mix
{
"request" : "rtp_forward",
"room" : <unique ID of the room to add the forwarder to>,
"ssrc" : <SSRC to use to use when streaming; optional>,
"ptype" : <payload type to use when streaming; optional>,
"host" : <host address to forward the RTP packets to>,
"host_family" : <ipv4|ipv6; optional>,
"port" : <port to forward the RTP packets to>,
"srtp_suite" : <length of auth tag (32 or 80); optional>,
"srtp_crypto" : <crypto key (base64, like SDES); optional>,
"always_on" : <forward silence when the room is empty; optional>
}
Forwarding individual VideoRoom streams
Forwarding individual VideoRoom streams
Forwarding individual VideoRoom streams
Forwarding individual VideoRoom streams
{
"request" : "rtp_forward",
"room" : <unique ID of the room the publisher is in>,
"publisher_id" : <unique ID of the publisher to relay externally>,
"host" : <host address to forward the RTP packets to>,
"host_family" : <ipv4|ipv6; optional>,
"audio_port" : <port to forward the audio RTP packets to>,
"audio_ssrc" : <audio SSRC to use to use when streaming; optional>,
"audio_pt" : <audio payload type to use when streaming; optional>,
"audio_rtcp_port" : <latching port to get audio RTCP feedback; optional (unused)>,
"video_port" : <port to forward the video RTP packets to>,
"video_ssrc" : <video SSRC to use to use when streaming; optional>,
"video_pt" : <video payload type to use when streaming; optional>,
[.. video_XYZ_2 and video_XYZ_3 relay simulcast layers 1 and 2 ..]
"video_rtcp_port" : <latching port to get video RTCP feedback; optional>,
"data_port" : <port to forward the datachannel messages to>,
"srtp_suite" : <length of auth tag (32 or 80); optional>,
"srtp_crypto" : <crypto key (base64, like SDES); optional>
}
What can they be used for?
• Several use cases for such a functionality
• Remote media processing
• Recording outside of Janus
• Translation to different technology (e.g., RTMP)
• Videomixing or transcoding
• Transcriptions
• Identity verification
• Machine learning / Artificial Intelligence
• ...
• Scalability
• Large scale broadcasting
• Spreading same conference room in different regions
• ...
• More simply, whatever you might need need your favourite tool for
• Gstreamer, FFmpeg, libav, VLC, OpenCV, etc.
What can they be used for?
• Several use cases for such a functionality
• Remote media processing
• Recording outside of Janus
• Translation to different technology (e.g., RTMP)
• Videomixing or transcoding
• Transcriptions
• Identity verification
• Machine learning / Artificial Intelligence
• ...
• Scalability
• Large scale broadcasting
• Spreading same conference room in different regions
• ...
• More simply, whatever you might need need your favourite tool for
• Gstreamer, FFmpeg, libav, VLC, OpenCV, etc.
What can they be used for?
• Several use cases for such a functionality
• Remote media processing
• Recording outside of Janus
• Translation to different technology (e.g., RTMP)
• Videomixing or transcoding
• Transcriptions
• Identity verification
• Machine learning / Artificial Intelligence
• ...
• Scalability
• Large scale broadcasting
• Spreading same conference room in different regions
• ...
• More simply, whatever you might need need your favourite tool for
• Gstreamer, FFmpeg, libav, VLC, OpenCV, etc.
What can they be used for?
• Several use cases for such a functionality
• Remote media processing
• Recording outside of Janus
• Translation to different technology (e.g., RTMP)
• Videomixing or transcoding
• Transcriptions
• Identity verification
• Machine learning / Artificial Intelligence
• ...
• Scalability
• Large scale broadcasting
• Spreading same conference room in different regions
• ...
• More simply, whatever you might need need your favourite tool for
• Gstreamer, FFmpeg, libav, VLC, OpenCV, etc.
Large scale broadcasting
https://www.slideshare.net/LorenzoMiniero/scaling-webrtc-applications-with-janus
Large scale broadcasting
https://www.slideshare.net/LorenzoMiniero/scaling-webrtc-applications-with-janus
Spreading same room in different regions
https://www.slideshare.net/LorenzoMiniero/scaling-webrtc-applications-with-janus
Spreading same room in different regions
https://www.slideshare.net/LorenzoMiniero/scaling-webrtc-applications-with-janus
What to do next?
• The feature is pretty advanced already
• Used in production in different contexts
• Support for multicast and SDES-SRTP is a nice plus
• Some other plugins may benefit from the feature, though
• SIP/NoSIP, for call monitoring without another server
• Lua/DuktapeJS, for some easier-to-implement plugin logic
• Maybe implement RTP forwarding as a core feature instead?
• Right now each plugin does its own (duplicated features)
• Having it in the core would simplify extending to other plugins
• Might even become an Admin API feature (e.g., Lawful Interception?)
What to do next?
• The feature is pretty advanced already
• Used in production in different contexts
• Support for multicast and SDES-SRTP is a nice plus
• Some other plugins may benefit from the feature, though
• SIP/NoSIP, for call monitoring without another server
• Lua/DuktapeJS, for some easier-to-implement plugin logic
• Maybe implement RTP forwarding as a core feature instead?
• Right now each plugin does its own (duplicated features)
• Having it in the core would simplify extending to other plugins
• Might even become an Admin API feature (e.g., Lawful Interception?)
What to do next?
• The feature is pretty advanced already
• Used in production in different contexts
• Support for multicast and SDES-SRTP is a nice plus
• Some other plugins may benefit from the feature, though
• SIP/NoSIP, for call monitoring without another server
• Lua/DuktapeJS, for some easier-to-implement plugin logic
• Maybe implement RTP forwarding as a core feature instead?
• Right now each plugin does its own (duplicated features)
• Having it in the core would simplify extending to other plugins
• Might even become an Admin API feature (e.g., Lawful Interception?)
Thanks! Questions? Comments?
Get in touch!
• https://twitter.com/elminiero
• https://twitter.com/meetecho
• http://www.meetecho.com

Más contenido relacionado

La actualidad más candente

Simulcast/SVC @ IIT-RTC 2019
Simulcast/SVC @ IIT-RTC 2019Simulcast/SVC @ IIT-RTC 2019
Simulcast/SVC @ IIT-RTC 2019Lorenzo Miniero
 
SIPREC RTPEngine Media Forking
SIPREC RTPEngine Media ForkingSIPREC RTPEngine Media Forking
SIPREC RTPEngine Media ForkingHossein Yavari
 
gRPC vs REST: let the battle begin!
gRPC vs REST: let the battle begin!gRPC vs REST: let the battle begin!
gRPC vs REST: let the battle begin!Alex Borysov
 
Architecting your WebRTC application for scalability, Arin Sime
Architecting your WebRTC application for scalability, Arin SimeArchitecting your WebRTC application for scalability, Arin Sime
Architecting your WebRTC application for scalability, Arin SimeAlan Quayle
 
An SFU/MCU integration for heterogeneous environments
An SFU/MCU integration for heterogeneous environmentsAn SFU/MCU integration for heterogeneous environments
An SFU/MCU integration for heterogeneous environmentsGiacomo Vacca
 
WebRTC, RED and Janus @ ClueCon21
WebRTC, RED and Janus @ ClueCon21WebRTC, RED and Janus @ ClueCon21
WebRTC, RED and Janus @ ClueCon21Lorenzo Miniero
 
Janus workshop @ RTC2019 Beijing
Janus workshop @ RTC2019 BeijingJanus workshop @ RTC2019 Beijing
Janus workshop @ RTC2019 BeijingLorenzo Miniero
 
Devops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at GitlabDevops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at GitlabFilipa Lacerda
 
GitOps: Git come unica fonte di verità per applicazioni e infrastruttura
GitOps: Git come unica fonte di verità per applicazioni e infrastrutturaGitOps: Git come unica fonte di verità per applicazioni e infrastruttura
GitOps: Git come unica fonte di verità per applicazioni e infrastrutturasparkfabrik
 
Containerd internals: building a core container runtime
Containerd internals: building a core container runtimeContainerd internals: building a core container runtime
Containerd internals: building a core container runtimeDocker, Inc.
 
OpenShift Container Platform 4.12 Release Notes
OpenShift Container Platform 4.12 Release NotesOpenShift Container Platform 4.12 Release Notes
OpenShift Container Platform 4.12 Release NotesGerryJamisola1
 
Cilium - Container Networking with BPF & XDP
Cilium - Container Networking with BPF & XDPCilium - Container Networking with BPF & XDP
Cilium - Container Networking with BPF & XDPThomas Graf
 
Asterisk WebRTC frontier: make client SIP Phone with sipML5 and Janus Gateway
Asterisk WebRTC frontier: make client SIP Phone with sipML5 and Janus GatewayAsterisk WebRTC frontier: make client SIP Phone with sipML5 and Janus Gateway
Asterisk WebRTC frontier: make client SIP Phone with sipML5 and Janus GatewayAlessandro Polidori
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetesRishabh Indoria
 
Exploring the power of OpenTelemetry on Kubernetes
Exploring the power of OpenTelemetry on KubernetesExploring the power of OpenTelemetry on Kubernetes
Exploring the power of OpenTelemetry on KubernetesRed Hat Developers
 
[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...
[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...
[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...Akihiro Suda
 

La actualidad más candente (20)

Simulcast/SVC @ IIT-RTC 2019
Simulcast/SVC @ IIT-RTC 2019Simulcast/SVC @ IIT-RTC 2019
Simulcast/SVC @ IIT-RTC 2019
 
SIPREC RTPEngine Media Forking
SIPREC RTPEngine Media ForkingSIPREC RTPEngine Media Forking
SIPREC RTPEngine Media Forking
 
gRPC vs REST: let the battle begin!
gRPC vs REST: let the battle begin!gRPC vs REST: let the battle begin!
gRPC vs REST: let the battle begin!
 
Intro to Git and GitHub
Intro to Git and GitHubIntro to Git and GitHub
Intro to Git and GitHub
 
Architecting your WebRTC application for scalability, Arin Sime
Architecting your WebRTC application for scalability, Arin SimeArchitecting your WebRTC application for scalability, Arin Sime
Architecting your WebRTC application for scalability, Arin Sime
 
Introducing GitLab
Introducing GitLabIntroducing GitLab
Introducing GitLab
 
Janus & docker: friends or foe
Janus & docker: friends or foe Janus & docker: friends or foe
Janus & docker: friends or foe
 
An SFU/MCU integration for heterogeneous environments
An SFU/MCU integration for heterogeneous environmentsAn SFU/MCU integration for heterogeneous environments
An SFU/MCU integration for heterogeneous environments
 
WebRTC, RED and Janus @ ClueCon21
WebRTC, RED and Janus @ ClueCon21WebRTC, RED and Janus @ ClueCon21
WebRTC, RED and Janus @ ClueCon21
 
Janus workshop @ RTC2019 Beijing
Janus workshop @ RTC2019 BeijingJanus workshop @ RTC2019 Beijing
Janus workshop @ RTC2019 Beijing
 
Devops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at GitlabDevops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at Gitlab
 
GitOps: Git come unica fonte di verità per applicazioni e infrastruttura
GitOps: Git come unica fonte di verità per applicazioni e infrastrutturaGitOps: Git come unica fonte di verità per applicazioni e infrastruttura
GitOps: Git come unica fonte di verità per applicazioni e infrastruttura
 
Containerd internals: building a core container runtime
Containerd internals: building a core container runtimeContainerd internals: building a core container runtime
Containerd internals: building a core container runtime
 
OpenShift Container Platform 4.12 Release Notes
OpenShift Container Platform 4.12 Release NotesOpenShift Container Platform 4.12 Release Notes
OpenShift Container Platform 4.12 Release Notes
 
Cilium - Container Networking with BPF & XDP
Cilium - Container Networking with BPF & XDPCilium - Container Networking with BPF & XDP
Cilium - Container Networking with BPF & XDP
 
Asterisk WebRTC frontier: make client SIP Phone with sipML5 and Janus Gateway
Asterisk WebRTC frontier: make client SIP Phone with sipML5 and Janus GatewayAsterisk WebRTC frontier: make client SIP Phone with sipML5 and Janus Gateway
Asterisk WebRTC frontier: make client SIP Phone with sipML5 and Janus Gateway
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
Exploring the power of OpenTelemetry on Kubernetes
Exploring the power of OpenTelemetry on KubernetesExploring the power of OpenTelemetry on Kubernetes
Exploring the power of OpenTelemetry on Kubernetes
 
Apache ZooKeeper
Apache ZooKeeperApache ZooKeeper
Apache ZooKeeper
 
[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...
[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...
[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...
 

Similar a Janus RTP forwarders @ FOSDEM 2020

Janus Workshop pt.2 @ ClueCon 2021
Janus Workshop pt.2 @ ClueCon 2021Janus Workshop pt.2 @ ClueCon 2021
Janus Workshop pt.2 @ ClueCon 2021Lorenzo Miniero
 
Fuzzing Janus @ IPTComm 2019
Fuzzing Janus @ IPTComm 2019Fuzzing Janus @ IPTComm 2019
Fuzzing Janus @ IPTComm 2019Lorenzo Miniero
 
Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021Lorenzo Miniero
 
WebRTC Broadcasting @ TADSummit 2023
WebRTC Broadcasting @ TADSummit 2023WebRTC Broadcasting @ TADSummit 2023
WebRTC Broadcasting @ TADSummit 2023Lorenzo Miniero
 
Second screen iot_day_stockholm_2014
Second screen iot_day_stockholm_2014Second screen iot_day_stockholm_2014
Second screen iot_day_stockholm_2014Steffen Larsen
 
Fuzzing RTC @ Kamailio World 2019
Fuzzing RTC @ Kamailio World 2019Fuzzing RTC @ Kamailio World 2019
Fuzzing RTC @ Kamailio World 2019Lorenzo Miniero
 
Insertable Streams and E2EE @ ClueCon2020
Insertable Streams and E2EE @ ClueCon2020Insertable Streams and E2EE @ ClueCon2020
Insertable Streams and E2EE @ ClueCon2020Lorenzo Miniero
 
WebRTC security+more @ KamailioWorld 2018
WebRTC security+more @ KamailioWorld 2018WebRTC security+more @ KamailioWorld 2018
WebRTC security+more @ KamailioWorld 2018Lorenzo Miniero
 
WebRTC Real time media P2P, Server, Infrastructure, and Platform
WebRTC Real time media P2P, Server, Infrastructure, and PlatformWebRTC Real time media P2P, Server, Infrastructure, and Platform
WebRTC Real time media P2P, Server, Infrastructure, and PlatformRyan Jespersen
 
Making and breaking security in embedded devices
Making and breaking security in embedded devicesMaking and breaking security in embedded devices
Making and breaking security in embedded devicesYashin Mehaboobe
 
Janus/Asterisk @ Astricon 2017
Janus/Asterisk @ Astricon 2017Janus/Asterisk @ Astricon 2017
Janus/Asterisk @ Astricon 2017Lorenzo Miniero
 
MPLAB® Harmony Ecosystem
MPLAB® Harmony EcosystemMPLAB® Harmony Ecosystem
MPLAB® Harmony EcosystemDesign World
 
FOSDEM 2020: How can we make WebRTC Easier?
FOSDEM 2020: How can we make WebRTC Easier?FOSDEM 2020: How can we make WebRTC Easier?
FOSDEM 2020: How can we make WebRTC Easier?SeanDuBois3
 
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...Amir Zmora
 
From Device to Data Center to Insights: Architectural Considerations for the ...
From Device to Data Center to Insights: Architectural Considerations for the ...From Device to Data Center to Insights: Architectural Considerations for the ...
From Device to Data Center to Insights: Architectural Considerations for the ...P. Taylor Goetz
 
IP Multicasting - An Overview
IP Multicasting - An OverviewIP Multicasting - An Overview
IP Multicasting - An Overviewh_marvin
 
Balázs Bucsay - XFLTReaT: Building a Tunnel
Balázs Bucsay - XFLTReaT: Building a TunnelBalázs Bucsay - XFLTReaT: Building a Tunnel
Balázs Bucsay - XFLTReaT: Building a Tunnelhacktivity
 

Similar a Janus RTP forwarders @ FOSDEM 2020 (20)

Janus Workshop pt.2 @ ClueCon 2021
Janus Workshop pt.2 @ ClueCon 2021Janus Workshop pt.2 @ ClueCon 2021
Janus Workshop pt.2 @ ClueCon 2021
 
Fuzzing Janus @ IPTComm 2019
Fuzzing Janus @ IPTComm 2019Fuzzing Janus @ IPTComm 2019
Fuzzing Janus @ IPTComm 2019
 
Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021
 
WebRTC Broadcasting @ TADSummit 2023
WebRTC Broadcasting @ TADSummit 2023WebRTC Broadcasting @ TADSummit 2023
WebRTC Broadcasting @ TADSummit 2023
 
Second screen iot_day_stockholm_2014
Second screen iot_day_stockholm_2014Second screen iot_day_stockholm_2014
Second screen iot_day_stockholm_2014
 
Fuzzing RTC @ Kamailio World 2019
Fuzzing RTC @ Kamailio World 2019Fuzzing RTC @ Kamailio World 2019
Fuzzing RTC @ Kamailio World 2019
 
Insertable Streams and E2EE @ ClueCon2020
Insertable Streams and E2EE @ ClueCon2020Insertable Streams and E2EE @ ClueCon2020
Insertable Streams and E2EE @ ClueCon2020
 
WebRTC security+more @ KamailioWorld 2018
WebRTC security+more @ KamailioWorld 2018WebRTC security+more @ KamailioWorld 2018
WebRTC security+more @ KamailioWorld 2018
 
WebRTC Real time media P2P, Server, Infrastructure, and Platform
WebRTC Real time media P2P, Server, Infrastructure, and PlatformWebRTC Real time media P2P, Server, Infrastructure, and Platform
WebRTC Real time media P2P, Server, Infrastructure, and Platform
 
Hacking QNX
Hacking QNXHacking QNX
Hacking QNX
 
BWE in Janus
BWE in JanusBWE in Janus
BWE in Janus
 
Making and breaking security in embedded devices
Making and breaking security in embedded devicesMaking and breaking security in embedded devices
Making and breaking security in embedded devices
 
Janus/Asterisk @ Astricon 2017
Janus/Asterisk @ Astricon 2017Janus/Asterisk @ Astricon 2017
Janus/Asterisk @ Astricon 2017
 
MPLAB® Harmony Ecosystem
MPLAB® Harmony EcosystemMPLAB® Harmony Ecosystem
MPLAB® Harmony Ecosystem
 
FOSDEM 2020: How can we make WebRTC Easier?
FOSDEM 2020: How can we make WebRTC Easier?FOSDEM 2020: How can we make WebRTC Easier?
FOSDEM 2020: How can we make WebRTC Easier?
 
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
 
From Device to Data Center to Insights
From Device to Data Center to InsightsFrom Device to Data Center to Insights
From Device to Data Center to Insights
 
From Device to Data Center to Insights: Architectural Considerations for the ...
From Device to Data Center to Insights: Architectural Considerations for the ...From Device to Data Center to Insights: Architectural Considerations for the ...
From Device to Data Center to Insights: Architectural Considerations for the ...
 
IP Multicasting - An Overview
IP Multicasting - An OverviewIP Multicasting - An Overview
IP Multicasting - An Overview
 
Balázs Bucsay - XFLTReaT: Building a Tunnel
Balázs Bucsay - XFLTReaT: Building a TunnelBalázs Bucsay - XFLTReaT: Building a Tunnel
Balázs Bucsay - XFLTReaT: Building a Tunnel
 

Más de Lorenzo Miniero

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Getting AV1/SVC to work in the Janus WebRTC Server
Getting AV1/SVC to work in the Janus WebRTC ServerGetting AV1/SVC to work in the Janus WebRTC Server
Getting AV1/SVC to work in the Janus WebRTC ServerLorenzo Miniero
 
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
 
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
 
WHIP and Janus @ IIT-RTC 2021
WHIP and Janus @ IIT-RTC 2021WHIP and Janus @ IIT-RTC 2021
WHIP and Janus @ IIT-RTC 2021Lorenzo Miniero
 
JamRTC @ Wonder WebRTC unConference
JamRTC @ Wonder WebRTC unConferenceJamRTC @ Wonder WebRTC unConference
JamRTC @ Wonder WebRTC unConferenceLorenzo Miniero
 
Janus + 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
 
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
 
Janus Workshop @ ClueCon 2020
Janus Workshop @ ClueCon 2020Janus Workshop @ ClueCon 2020
Janus Workshop @ ClueCon 2020Lorenzo Miniero
 
Turning live events to virtual with Janus
Turning live events to virtual with JanusTurning live events to virtual with Janus
Turning live events to virtual with JanusLorenzo Miniero
 
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
 

Más de Lorenzo Miniero (15)

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Getting AV1/SVC to work in the Janus WebRTC Server
Getting AV1/SVC to work in the Janus WebRTC ServerGetting AV1/SVC to work in the Janus WebRTC Server
Getting AV1/SVC to work in the Janus WebRTC Server
 
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
 
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!
 
WHIP and Janus @ IIT-RTC 2021
WHIP and Janus @ IIT-RTC 2021WHIP and Janus @ IIT-RTC 2021
WHIP and Janus @ IIT-RTC 2021
 
JamRTC @ Wonder WebRTC unConference
JamRTC @ Wonder WebRTC unConferenceJamRTC @ Wonder WebRTC unConference
JamRTC @ Wonder WebRTC unConference
 
Janus + 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
 
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
 
Janus Workshop @ ClueCon 2020
Janus Workshop @ ClueCon 2020Janus Workshop @ ClueCon 2020
Janus Workshop @ ClueCon 2020
 
Turning live events to virtual with Janus
Turning live events to virtual with JanusTurning live events to virtual with Janus
Turning live events to virtual with Janus
 
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
 
Janus @ ClueCon 2019
Janus @ ClueCon 2019Janus @ ClueCon 2019
Janus @ ClueCon 2019
 

Último

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 

Último (20)

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 

Janus RTP forwarders @ FOSDEM 2020

  • 1. Janus as a WebRTC “enabler” Having fun with RTP and external applications Lorenzo Miniero @elminiero FOSDEM 2020 Real Time devroom 2nd February 2020, Brussels
  • 2. Who am I? Lorenzo Miniero • Ph.D @ UniNA • Chairman @ Meetecho • Main author of Janus Contacts and info • lorenzo@meetecho.com • https://twitter.com/elminiero • https://www.slideshare.net/LorenzoMiniero • https://soundcloud.com/lminiero
  • 3. Remember Janus? Janus General purpose, open source WebRTC server • https://github.com/meetecho/janus-gateway • Demos and documentation: https://janus.conf.meetecho.com • Community: https://groups.google.com/forum/#!forum/meetecho-janus
  • 4. A quick recap: modular architecture • The core only implements the WebRTC stack • JSEP/SDP, ICE, DTLS-SRTP, Data Channels, ... • Plugins expose Janus API over different “transports” • Currently HTTP / WebSockets / RabbitMQ / Unix Sockets / MQTT / Nanomsg • “Application” logic implemented in plugins too • Users attach to plugins via the Janus core • The core handles the WebRTC stuff • Plugins route/manipulate the media/data • Plugins can be combined on client side as “bricks” • Video SFU, Audio MCU, SIP gatewaying, broadcasting, etc.
  • 5. Exchanging RTP (1): SIP plugin https://janus.conf.meetecho.com/docs/sip
  • 6. Exchanging RTP (2): NoSIP plugin https://janus.conf.meetecho.com/docs/nosip
  • 7. Re-broadcasting RTP: Streaming plugin https://janus.conf.meetecho.com/docs/streaming
  • 8. WebRTC-only MCU: AudioBridge plugin https://janus.conf.meetecho.com/docs/audiobridge
  • 9. WebRTC-only SFU: VideoRoom plugin https://janus.conf.meetecho.com/docs/videoroom
  • 10. Enter “RTP forwarders” • Plugins like AudioBridge and VideoRoom only deal with WebRTC users... • ... but all plugins have access to unencrypted media! • Why not just forward those unencrypted packets somewhere else? • Quite simply, relay RTP packets to specified address • Plain RTP packets by default; SDES-SRTP supported, though • A lot of existing tools can handle RTP natively • You can take advantage of multicast networks easily • Simulcast streams can be forwarded individually • Basic RTCP support can help in some scenarios • e.g., ask WebRTC peer to send a keyframe via a PLI What about data channels? Forwarded on UDP datagrams! (and so limited by MTU, at the moment...)
  • 11. Enter “RTP forwarders” • Plugins like AudioBridge and VideoRoom only deal with WebRTC users... • ... but all plugins have access to unencrypted media! • Why not just forward those unencrypted packets somewhere else? • Quite simply, relay RTP packets to specified address • Plain RTP packets by default; SDES-SRTP supported, though • A lot of existing tools can handle RTP natively • You can take advantage of multicast networks easily • Simulcast streams can be forwarded individually • Basic RTCP support can help in some scenarios • e.g., ask WebRTC peer to send a keyframe via a PLI What about data channels? Forwarded on UDP datagrams! (and so limited by MTU, at the moment...)
  • 12. Enter “RTP forwarders” • Plugins like AudioBridge and VideoRoom only deal with WebRTC users... • ... but all plugins have access to unencrypted media! • Why not just forward those unencrypted packets somewhere else? • Quite simply, relay RTP packets to specified address • Plain RTP packets by default; SDES-SRTP supported, though • A lot of existing tools can handle RTP natively • You can take advantage of multicast networks easily • Simulcast streams can be forwarded individually • Basic RTCP support can help in some scenarios • e.g., ask WebRTC peer to send a keyframe via a PLI What about data channels? Forwarded on UDP datagrams! (and so limited by MTU, at the moment...)
  • 13. Enter “RTP forwarders” • Plugins like AudioBridge and VideoRoom only deal with WebRTC users... • ... but all plugins have access to unencrypted media! • Why not just forward those unencrypted packets somewhere else? • Quite simply, relay RTP packets to specified address • Plain RTP packets by default; SDES-SRTP supported, though • A lot of existing tools can handle RTP natively • You can take advantage of multicast networks easily • Simulcast streams can be forwarded individually • Basic RTCP support can help in some scenarios • e.g., ask WebRTC peer to send a keyframe via a PLI What about data channels? Forwarded on UDP datagrams! (and so limited by MTU, at the moment...)
  • 16. Forwarding an AudioBridge mix { "request" : "rtp_forward", "room" : <unique ID of the room to add the forwarder to>, "ssrc" : <SSRC to use to use when streaming; optional>, "ptype" : <payload type to use when streaming; optional>, "host" : <host address to forward the RTP packets to>, "host_family" : <ipv4|ipv6; optional>, "port" : <port to forward the RTP packets to>, "srtp_suite" : <length of auth tag (32 or 80); optional>, "srtp_crypto" : <crypto key (base64, like SDES); optional>, "always_on" : <forward silence when the room is empty; optional> }
  • 20. Forwarding individual VideoRoom streams { "request" : "rtp_forward", "room" : <unique ID of the room the publisher is in>, "publisher_id" : <unique ID of the publisher to relay externally>, "host" : <host address to forward the RTP packets to>, "host_family" : <ipv4|ipv6; optional>, "audio_port" : <port to forward the audio RTP packets to>, "audio_ssrc" : <audio SSRC to use to use when streaming; optional>, "audio_pt" : <audio payload type to use when streaming; optional>, "audio_rtcp_port" : <latching port to get audio RTCP feedback; optional (unused)>, "video_port" : <port to forward the video RTP packets to>, "video_ssrc" : <video SSRC to use to use when streaming; optional>, "video_pt" : <video payload type to use when streaming; optional>, [.. video_XYZ_2 and video_XYZ_3 relay simulcast layers 1 and 2 ..] "video_rtcp_port" : <latching port to get video RTCP feedback; optional>, "data_port" : <port to forward the datachannel messages to>, "srtp_suite" : <length of auth tag (32 or 80); optional>, "srtp_crypto" : <crypto key (base64, like SDES); optional> }
  • 21. What can they be used for? • Several use cases for such a functionality • Remote media processing • Recording outside of Janus • Translation to different technology (e.g., RTMP) • Videomixing or transcoding • Transcriptions • Identity verification • Machine learning / Artificial Intelligence • ... • Scalability • Large scale broadcasting • Spreading same conference room in different regions • ... • More simply, whatever you might need need your favourite tool for • Gstreamer, FFmpeg, libav, VLC, OpenCV, etc.
  • 22. What can they be used for? • Several use cases for such a functionality • Remote media processing • Recording outside of Janus • Translation to different technology (e.g., RTMP) • Videomixing or transcoding • Transcriptions • Identity verification • Machine learning / Artificial Intelligence • ... • Scalability • Large scale broadcasting • Spreading same conference room in different regions • ... • More simply, whatever you might need need your favourite tool for • Gstreamer, FFmpeg, libav, VLC, OpenCV, etc.
  • 23. What can they be used for? • Several use cases for such a functionality • Remote media processing • Recording outside of Janus • Translation to different technology (e.g., RTMP) • Videomixing or transcoding • Transcriptions • Identity verification • Machine learning / Artificial Intelligence • ... • Scalability • Large scale broadcasting • Spreading same conference room in different regions • ... • More simply, whatever you might need need your favourite tool for • Gstreamer, FFmpeg, libav, VLC, OpenCV, etc.
  • 24. What can they be used for? • Several use cases for such a functionality • Remote media processing • Recording outside of Janus • Translation to different technology (e.g., RTMP) • Videomixing or transcoding • Transcriptions • Identity verification • Machine learning / Artificial Intelligence • ... • Scalability • Large scale broadcasting • Spreading same conference room in different regions • ... • More simply, whatever you might need need your favourite tool for • Gstreamer, FFmpeg, libav, VLC, OpenCV, etc.
  • 27. Spreading same room in different regions https://www.slideshare.net/LorenzoMiniero/scaling-webrtc-applications-with-janus
  • 28. Spreading same room in different regions https://www.slideshare.net/LorenzoMiniero/scaling-webrtc-applications-with-janus
  • 29. What to do next? • The feature is pretty advanced already • Used in production in different contexts • Support for multicast and SDES-SRTP is a nice plus • Some other plugins may benefit from the feature, though • SIP/NoSIP, for call monitoring without another server • Lua/DuktapeJS, for some easier-to-implement plugin logic • Maybe implement RTP forwarding as a core feature instead? • Right now each plugin does its own (duplicated features) • Having it in the core would simplify extending to other plugins • Might even become an Admin API feature (e.g., Lawful Interception?)
  • 30. What to do next? • The feature is pretty advanced already • Used in production in different contexts • Support for multicast and SDES-SRTP is a nice plus • Some other plugins may benefit from the feature, though • SIP/NoSIP, for call monitoring without another server • Lua/DuktapeJS, for some easier-to-implement plugin logic • Maybe implement RTP forwarding as a core feature instead? • Right now each plugin does its own (duplicated features) • Having it in the core would simplify extending to other plugins • Might even become an Admin API feature (e.g., Lawful Interception?)
  • 31. What to do next? • The feature is pretty advanced already • Used in production in different contexts • Support for multicast and SDES-SRTP is a nice plus • Some other plugins may benefit from the feature, though • SIP/NoSIP, for call monitoring without another server • Lua/DuktapeJS, for some easier-to-implement plugin logic • Maybe implement RTP forwarding as a core feature instead? • Right now each plugin does its own (duplicated features) • Having it in the core would simplify extending to other plugins • Might even become an Admin API feature (e.g., Lawful Interception?)
  • 32. Thanks! Questions? Comments? Get in touch! • https://twitter.com/elminiero • https://twitter.com/meetecho • http://www.meetecho.com