Slides for the talk I made at the virtual edition of FOSDEM 2022, on how to use WHIP for WebRTC broadcasting ingestion, and how the distribution process could be done via WebRTC as well, e.g., via Janus (and the SOLEIL architecture).
An SFU/MCU integration for heterogeneous environmentsGiacomo Vacca
Ā
Janus and FreeSWITCH are two open source real-time communications projects that can be used to build conferencing systems.
Among other things, Janus implements an SFU (Selective Forwarding Unit).
FreeSWITCH includes a conference module, which works as MCU (Multipoint Control Unit).
Often we are asked to build solutions integrating existing applications and services: this presentation shows an approach and example.
Slides for the presentation I did remotely at Open Source World, to talk about audio-only WebRTC applications, and what we've done in Janus to improve and cover the requirements so far.
SIP transfer with Janus/WebRTC @ OpenSIPS 2022Lorenzo Miniero
Ā
These are the slides I presented at the OpenSIPS Summit 2022, where I talked about support for SIP call transfer and multiple lines in Janus, to make those features available to SIP-unaware WebRTC endpoints easily. The presentation also included a few details on a practical interaction with OpenSIPS instances.
PromQL Deep Dive - The Prometheus Query Language Weaveworks
Ā
- What is PromQL
- PromQL operators
- PromQL functions
- Hands on: Building queries in PromQL
- Hands on: Visualizing PromQL in Grafana
- Prometheus alerts in PromQL
- Hands on: Creating an alert in Prometheus with PromQL
Put some Web in your RTC SIP infrastructure! A good intro and updates on the Janus SIP and NoSIP plugins, and when it makes sense to use them (e.g., for PSTN integration, contact centers, etc.), from a presentation made at the OpenSIPS Summit 2019 in Amsterdam.
Intelligently Collecting Data at the Edge - Intro to Apache MiNiFiDataWorks Summit
Ā
Apache NiFi provided a revolutionary data flow management system with a broad range of integrations with existing data production, consumption, and analysis ecosystems, all covered with robust data delivery and provenance infrastructure. Now learn about the follow-on project which expands the reach of NiFi to the edge, Apache MiNiFi. MiNiFi is a lightweight application which can be deployed on hardware orders of magnitude smaller and less powerful than the existing standard data collection platforms. With both a JVM compatible and native agent, MiNiFi allows data collection in brand new environments ā sensors with tiny footprints, distributed systems with intermittent or restricted bandwidth, and even disposable or ephemeral hardware. Not only can this data be prioritized and have some initial analysis performed at the edge, it can be encrypted and secured immediately. Local governance and regulatory policies can be applied across geopolitical boundaries to conform with legal requirements. And all of this configuration can be done from central command & control using an existing NiFi with the trusted and stable UI data flow managers already love.
Expected prior knowledge / intended audience: developers and data flow managers should have passing knowledge of Apache NiFi as a platform for routing, transforming, and delivering data through systems (a brief overview will be provided). The talk will focus on extending the data collection, routing, provenance, and governance capabilities of NiFi to IoT/edge integration via MiNiFi.
Speaker
Andy LoPresto, Sr. Member of Technical Staff, Hortonworks
An SFU/MCU integration for heterogeneous environmentsGiacomo Vacca
Ā
Janus and FreeSWITCH are two open source real-time communications projects that can be used to build conferencing systems.
Among other things, Janus implements an SFU (Selective Forwarding Unit).
FreeSWITCH includes a conference module, which works as MCU (Multipoint Control Unit).
Often we are asked to build solutions integrating existing applications and services: this presentation shows an approach and example.
Slides for the presentation I did remotely at Open Source World, to talk about audio-only WebRTC applications, and what we've done in Janus to improve and cover the requirements so far.
SIP transfer with Janus/WebRTC @ OpenSIPS 2022Lorenzo Miniero
Ā
These are the slides I presented at the OpenSIPS Summit 2022, where I talked about support for SIP call transfer and multiple lines in Janus, to make those features available to SIP-unaware WebRTC endpoints easily. The presentation also included a few details on a practical interaction with OpenSIPS instances.
PromQL Deep Dive - The Prometheus Query Language Weaveworks
Ā
- What is PromQL
- PromQL operators
- PromQL functions
- Hands on: Building queries in PromQL
- Hands on: Visualizing PromQL in Grafana
- Prometheus alerts in PromQL
- Hands on: Creating an alert in Prometheus with PromQL
Put some Web in your RTC SIP infrastructure! A good intro and updates on the Janus SIP and NoSIP plugins, and when it makes sense to use them (e.g., for PSTN integration, contact centers, etc.), from a presentation made at the OpenSIPS Summit 2019 in Amsterdam.
Intelligently Collecting Data at the Edge - Intro to Apache MiNiFiDataWorks Summit
Ā
Apache NiFi provided a revolutionary data flow management system with a broad range of integrations with existing data production, consumption, and analysis ecosystems, all covered with robust data delivery and provenance infrastructure. Now learn about the follow-on project which expands the reach of NiFi to the edge, Apache MiNiFi. MiNiFi is a lightweight application which can be deployed on hardware orders of magnitude smaller and less powerful than the existing standard data collection platforms. With both a JVM compatible and native agent, MiNiFi allows data collection in brand new environments ā sensors with tiny footprints, distributed systems with intermittent or restricted bandwidth, and even disposable or ephemeral hardware. Not only can this data be prioritized and have some initial analysis performed at the edge, it can be encrypted and secured immediately. Local governance and regulatory policies can be applied across geopolitical boundaries to conform with legal requirements. And all of this configuration can be done from central command & control using an existing NiFi with the trusted and stable UI data flow managers already love.
Expected prior knowledge / intended audience: developers and data flow managers should have passing knowledge of Apache NiFi as a platform for routing, transforming, and delivering data through systems (a brief overview will be provided). The talk will focus on extending the data collection, routing, provenance, and governance capabilities of NiFi to IoT/edge integration via MiNiFi.
Speaker
Andy LoPresto, Sr. Member of Technical Staff, Hortonworks
TRex is an open source, low cost, stateful traffic generator fuelled by DPDK. It generates L4-7 traffic based on pre-processing and a smart replay of real traffic templates. TRex amplifies both client and server side traffic and can scale to 200Gb/sec with one UCS.
Monitoring Kafka without instrumentation using eBPF with AntĆ³n RodrĆguez | Ka...HostedbyConfluent
Ā
Imagine a world where you can access metrics, events, traces, and logs in seconds without changing code. Even more, a world where you can run scripts to debug metrics as code. In this session, you will learn about eBPF, a powerful technology with origins in the Linux kernel that holds the potential to fundamentally change how Networking, Observability, and Security are delivered.
Weāll see eBPF in action applied to the Kafka world: identify Kafka consumers, producers, and brokers, see how they interact with each other and how many resources they consume. We'll even learn how to measure consumer lag without external components. If you want to know whatās next in Kafka observability, this session is for you.
Orchestration tool roundup kubernetes vs. docker vs. heat vs. terra form vs...Nati Shalom
Ā
Video recording: https://www.youtube.com/watch?v=tGlIgUeoGz8
Itās no news that containers represent a portable unit of deployment, and OpenStack has proven an ideal environment for running container workloads. However, where it usually becomes more complex is that many times an application is often built out of multiple containers. Whatās more, setting up a cluster of container images can be fairly cumbersome because you need to make one container aware of another and expose intimate details that are required for them to communicate which is not trivial especially if theyāre not on the same host.
These scenarios have instigated the demand for some kind of orchestrator. The list of container orchestrators is growing fairly fast. This session will compare the different orchestation projects out there - from Heat to Kubernetes to TOSCA - and help you choose the right tool for the job.
Session link from teh summit: https://openstacksummitmay2015vancouver.sched.org/event/abd484e0dedcb9774edda1548ad47518#.VV5eh5NViko
In this talk we discuss the mechanisms of utilizing the eBPF language to perform hardware accelerated network packet manipulation and filtering. P4 programs can be compiled into eBPF scripts for offload in the Linux kernel using the Traffic Classifier (TC) subsystem. We demonstrate how, using eBPF as an intermediate language, it has been possible to extend the TC to either Just In Time (JIT) compile eBPF code to x86 assembler for software offload or to IXP byte code for execution in a trusted hardware environment within the Netronome Agilio intelligent server adapter. We finish by encouraging the audience to experiment with their own eBPF applications within the TC hardware accelerated system. The TC kernel patches are available on the Linux Kernel Networking mailing list as a Request For Comment (RFC) contribution.
Dinan Gunawardena, Director, Software Engineering, Netronome
Dinan Gunawardena is a Software Director focusing on running the driver team at Netronome. Previously, Dinan founded a software startup and was a Senior Research Engineer within the Operating Systems and Networking Group at Microsoft Research for 12 years, shipping technology in several versions of Microsoft Windows and the Bing Search Engine. Dinan has received over 20 patents and is a Chartered Software Engineer. Dinan has a Masters in Computer Science from University of Cambridge and a M.B.A. from WBS.
Jakub Kicinski, Software Engineering, Netronome
Jakub Kicinski is a Software Engineer specializing in the Linux Kernel drivers for Netronome SmartNICs. Jakub has previously worked as an intern for Intel Corporation. Jakub is also a researcher with expertise in Linux kernel. Experience in application development on complex multi-CPU and FPGA platforms. He is interested in high-performance software exploiting hardware capabilities and is passionate about networking. Jakub has a Masters in Computer Science from Gdansk University of Technology.
Using eBPF for High-Performance Networking in CiliumScyllaDB
Ā
The Cilium project is a popular networking solution for Kubernetes, based on eBPF. This talk uses eBPF code and demos to explore the basics of how Cilium makes network connections, and manipulates packets so that they can avoid traversing the kernel's built-in networking stack. You'll see how eBPF enables high-performance networking as well as deep network observability and security.
Slides from #PromCon2018 Munich.
https://promcon.io/2018-munich/talks/thanos-prometheus-at-scale/
BartÅomiej PÅotka
Fabian Reinartz
The Prometheus Monitoring system has been thriving for several years. Along with its powerful data model, operational simplicity and reliability have been a key factor in its success. However, some questions were still largely unaddressed to this day. How can we store historical data at the order of petabytes in a reliable and cost-efficient way? Can we do so without sacrificing responsive query times? And what about a global view of all our metrics and transparent handling of HA setups?
Thanos takes Prometheus' strong foundations and extends it into a clustered, yet coordination free, globally scalable metric system. It retains Prometheus's simple operational model and even simplifies deployments further. Under the hood, Thanos uses highly cost-efficient object storage that's available in virtually all environments today. By building directly on top of the storage format introduced with Prometheus 2.0, Thanos achieves near real-time responsiveness even for cold queries against historical data. All while having virtually no cost overhead beyond that of the underlying object storage.
We will show the theoretical concepts behind Thanos and demonstrate how it seamlessly integrates into existing Prometheus setups.
My (quite boring) slides on what we needed to do in Janus to support multiple streams of the same type (e.g., 3 video streams) on the same PeerConnection.
Cloud native architecture is emerging for Telecom workloads. To support these emerging trends, Intel is targeting enhancements to the Dataplane Development Kit (DPDK). The enhancements would target network service mesh with dedicated sidecar accelerators and the mechanism to build the mesh dynamically.
Speaker: Gerald Rogers. Gerald Rogers is a Principal Engineer in the Network Products Group focused on virtual switching, network function virtualization and Data Plane Development Kit (DPDK). After joining Intel in 2005, Gerald has worked as a software engineer and architect in the embedded and networking groups.Ā For the past 7 years Gerald has led the network virtual switching software and hardware acceleration effort to drive Intel architecture into the networking and telecommunications industry. Gerald holds a Bachelorās degree in Electrical Engineering and a Masterās degree in Computer Science, and has 20 years of experience in the networking and telecommunications industry.
Slides for the presentation I made at ClueCon 21 on the experimental RED support in WebRTC, and how we've started tinkering with it in Janus. The presentation also addresses a more generic overview on audio features in WebRTC.
In the glorious future, cancer will be cured, world hunger will solved and all because everything was directly instrumented for Prometheus. Until then however, we need to write exporters. This talk will look at how to go about this and all the tradeoffs involved in writing a good exporter.
Slides for the "WebRTC broadcasting: standardization, challenges and opportunities" presentation I made at TADSummit 2023 in Paris. It presents the problems traditional broadcasting has with new scenarios that would benefit from a much lower latency solution, and how WebRTC can help. It also introduces the standard WHIP and WHEP protocols for ingestion and egress, with a few details on how a WebRTC stream could be scaled to a very wide audience using something like SOLEIL (Streaming Of Large scale Events over Internet cLouds).
Slides for the talk I made at IIT-RTC 2021 about WHIP (WebRTC-HTTP ingestion protocol) and how it can help foster adoption of WebRTC in traditional broadcasting tools. The slides also cover my open source implementations of WHIP server (based on Janus) and WHIP client (based on GStreamer), and interoperability tests with other implementations.
TRex is an open source, low cost, stateful traffic generator fuelled by DPDK. It generates L4-7 traffic based on pre-processing and a smart replay of real traffic templates. TRex amplifies both client and server side traffic and can scale to 200Gb/sec with one UCS.
Monitoring Kafka without instrumentation using eBPF with AntĆ³n RodrĆguez | Ka...HostedbyConfluent
Ā
Imagine a world where you can access metrics, events, traces, and logs in seconds without changing code. Even more, a world where you can run scripts to debug metrics as code. In this session, you will learn about eBPF, a powerful technology with origins in the Linux kernel that holds the potential to fundamentally change how Networking, Observability, and Security are delivered.
Weāll see eBPF in action applied to the Kafka world: identify Kafka consumers, producers, and brokers, see how they interact with each other and how many resources they consume. We'll even learn how to measure consumer lag without external components. If you want to know whatās next in Kafka observability, this session is for you.
Orchestration tool roundup kubernetes vs. docker vs. heat vs. terra form vs...Nati Shalom
Ā
Video recording: https://www.youtube.com/watch?v=tGlIgUeoGz8
Itās no news that containers represent a portable unit of deployment, and OpenStack has proven an ideal environment for running container workloads. However, where it usually becomes more complex is that many times an application is often built out of multiple containers. Whatās more, setting up a cluster of container images can be fairly cumbersome because you need to make one container aware of another and expose intimate details that are required for them to communicate which is not trivial especially if theyāre not on the same host.
These scenarios have instigated the demand for some kind of orchestrator. The list of container orchestrators is growing fairly fast. This session will compare the different orchestation projects out there - from Heat to Kubernetes to TOSCA - and help you choose the right tool for the job.
Session link from teh summit: https://openstacksummitmay2015vancouver.sched.org/event/abd484e0dedcb9774edda1548ad47518#.VV5eh5NViko
In this talk we discuss the mechanisms of utilizing the eBPF language to perform hardware accelerated network packet manipulation and filtering. P4 programs can be compiled into eBPF scripts for offload in the Linux kernel using the Traffic Classifier (TC) subsystem. We demonstrate how, using eBPF as an intermediate language, it has been possible to extend the TC to either Just In Time (JIT) compile eBPF code to x86 assembler for software offload or to IXP byte code for execution in a trusted hardware environment within the Netronome Agilio intelligent server adapter. We finish by encouraging the audience to experiment with their own eBPF applications within the TC hardware accelerated system. The TC kernel patches are available on the Linux Kernel Networking mailing list as a Request For Comment (RFC) contribution.
Dinan Gunawardena, Director, Software Engineering, Netronome
Dinan Gunawardena is a Software Director focusing on running the driver team at Netronome. Previously, Dinan founded a software startup and was a Senior Research Engineer within the Operating Systems and Networking Group at Microsoft Research for 12 years, shipping technology in several versions of Microsoft Windows and the Bing Search Engine. Dinan has received over 20 patents and is a Chartered Software Engineer. Dinan has a Masters in Computer Science from University of Cambridge and a M.B.A. from WBS.
Jakub Kicinski, Software Engineering, Netronome
Jakub Kicinski is a Software Engineer specializing in the Linux Kernel drivers for Netronome SmartNICs. Jakub has previously worked as an intern for Intel Corporation. Jakub is also a researcher with expertise in Linux kernel. Experience in application development on complex multi-CPU and FPGA platforms. He is interested in high-performance software exploiting hardware capabilities and is passionate about networking. Jakub has a Masters in Computer Science from Gdansk University of Technology.
Using eBPF for High-Performance Networking in CiliumScyllaDB
Ā
The Cilium project is a popular networking solution for Kubernetes, based on eBPF. This talk uses eBPF code and demos to explore the basics of how Cilium makes network connections, and manipulates packets so that they can avoid traversing the kernel's built-in networking stack. You'll see how eBPF enables high-performance networking as well as deep network observability and security.
Slides from #PromCon2018 Munich.
https://promcon.io/2018-munich/talks/thanos-prometheus-at-scale/
BartÅomiej PÅotka
Fabian Reinartz
The Prometheus Monitoring system has been thriving for several years. Along with its powerful data model, operational simplicity and reliability have been a key factor in its success. However, some questions were still largely unaddressed to this day. How can we store historical data at the order of petabytes in a reliable and cost-efficient way? Can we do so without sacrificing responsive query times? And what about a global view of all our metrics and transparent handling of HA setups?
Thanos takes Prometheus' strong foundations and extends it into a clustered, yet coordination free, globally scalable metric system. It retains Prometheus's simple operational model and even simplifies deployments further. Under the hood, Thanos uses highly cost-efficient object storage that's available in virtually all environments today. By building directly on top of the storage format introduced with Prometheus 2.0, Thanos achieves near real-time responsiveness even for cold queries against historical data. All while having virtually no cost overhead beyond that of the underlying object storage.
We will show the theoretical concepts behind Thanos and demonstrate how it seamlessly integrates into existing Prometheus setups.
My (quite boring) slides on what we needed to do in Janus to support multiple streams of the same type (e.g., 3 video streams) on the same PeerConnection.
Cloud native architecture is emerging for Telecom workloads. To support these emerging trends, Intel is targeting enhancements to the Dataplane Development Kit (DPDK). The enhancements would target network service mesh with dedicated sidecar accelerators and the mechanism to build the mesh dynamically.
Speaker: Gerald Rogers. Gerald Rogers is a Principal Engineer in the Network Products Group focused on virtual switching, network function virtualization and Data Plane Development Kit (DPDK). After joining Intel in 2005, Gerald has worked as a software engineer and architect in the embedded and networking groups.Ā For the past 7 years Gerald has led the network virtual switching software and hardware acceleration effort to drive Intel architecture into the networking and telecommunications industry. Gerald holds a Bachelorās degree in Electrical Engineering and a Masterās degree in Computer Science, and has 20 years of experience in the networking and telecommunications industry.
Slides for the presentation I made at ClueCon 21 on the experimental RED support in WebRTC, and how we've started tinkering with it in Janus. The presentation also addresses a more generic overview on audio features in WebRTC.
In the glorious future, cancer will be cured, world hunger will solved and all because everything was directly instrumented for Prometheus. Until then however, we need to write exporters. This talk will look at how to go about this and all the tradeoffs involved in writing a good exporter.
Slides for the "WebRTC broadcasting: standardization, challenges and opportunities" presentation I made at TADSummit 2023 in Paris. It presents the problems traditional broadcasting has with new scenarios that would benefit from a much lower latency solution, and how WebRTC can help. It also introduces the standard WHIP and WHEP protocols for ingestion and egress, with a few details on how a WebRTC stream could be scaled to a very wide audience using something like SOLEIL (Streaming Of Large scale Events over Internet cLouds).
Slides for the talk I made at IIT-RTC 2021 about WHIP (WebRTC-HTTP ingestion protocol) and how it can help foster adoption of WebRTC in traditional broadcasting tools. The slides also cover my open source implementations of WHIP server (based on Janus) and WHIP client (based on GStreamer), and interoperability tests with other implementations.
WebRTC and SIP not just audio and video @ OpenSIPS 2024Lorenzo Miniero
Ā
Slides for my "WebRTC-to-SIP and back: it's not all about audio and video" presentation at the OpenSIPS Summit 2024.
They describe my prototype efforts to add gatewaying support for a few SIP application protocols (T.140 for real-time text and MSRP) to Janus via data channels, with the related implementation challenges and the interesting opportunities they open.
Scaling WebRTC deployments with multicast @ IETF 110 MBONEDLorenzo Miniero
Ā
An overview of how multicast can be used to scale WebRTC deployments, with focus on the Virtual Event Platform used to provide remote participation support to IETF meetings, given during the MBONED WG session at IETF 110.
WebRTC enables real-time communication through the web, while SIP is a protocol commonly used for initiating and maintaining real-time communication sessions, particularly in telephony networks.
Bridging WebRTC with SIP is essential in many industries, such as remote healthcare, education, and customer support, where current modern video solutions must communicate with telephony infrastructure at scale. The integration of WebRTC-based video conferencing with legacy SIP-based systems enables seamless communication across platforms and devices. In this presentation, we will talk about lessons learned and explore different approaches to bridging WebRTC and SIP, discussing their advantages and disadvantages.
The slides for the "Fuzzing Janus for fun and profit" paper I presented at IPTComm 2019, in Chicago. Simon (Romano) came up with the title, as a homage to the famous "Smashing the stack for fun and profit" article.
This is the presentation I made at Astricon on how to use Janus and Asterisk together for WebRTC applications. It focuses on the reasons why it might make sense to have Janus as a frontend to Asterisk, rather than let Asterisk handle WebRTC by itself, with real examples of applications doing this.
These slides cover a workshop called "Having fun with Janus and WebRTC" at the virtual edition of OpenSIPS 2021. The workshop guided viewers to how they could use different features in Janus to build a WebRTC Social TV application, including how to write a new plugin in JavaScript to build a virtual remote.
Slides for the presentation on Insertable Streams and E2EE in WebRTC I presented at the virtual edition of ClueCon 2020. After an introduction on the past and recent E2EE efforts, the slides also present some efforts to integrate the technology in the Janus WebRTC server as well.
A Webinar by Victor Pascual Avila and Amir Zmora about WebRTC standards. IETF and W3C work on WebRTC as well as interworking with other networks such as IMS. The Webinar also talks about WebRTC signaling options and video codecs.
Slides for the presentation on how you can get SFUs and MCUs to actually be friends, which I presented at the virtual edition of IIT-RTC 2020. The slides cover some of the pros and cons of both, and some use cases where you may actually want to use both. At the end, a few words are spent on how to use browsers as an MCU instead, which might make them being used with SFUs even easier.
WebRTC (Web Real-Time Communication) is an API definition drafted by the World Wide Web Consortium (W3C) that supports browser-to-browser applications for voice calling, video chat, and P2P file sharing without plugins. Web RTC is a young but is a promising & powerful technology. The possibilities are endless that includes HD audio, video, file sharing, screen sharing, conference application and more. www.2600hz.com
Slides for the 60 minutes "part 2" Janus workshop I presented at the virtual edition of ClueCon 2021. This time the slides covered Janus ability to bridge WebRTC and non-WebRTC applications to do interesting things, especially with the help of plain RTP and RTP forwarders. Check the conference recordings to see the actual demos in action.
WebRTC for Telco: Informa's WebRTC Global Summit PreconferenceTsahi Levent-levi
Ā
The preconference workshop I did at Informa's WebRTC Global Summit in London, 31st of March 2014
It is targeted at bringing people up to speed with what WebRTC is, how people and vendors are using it today and placing it also in the context of the telecom world (which is the focus of this specific conference).
2600hz WebRTC Meetup at WeWork, San Francisco, CA2600Hz
Ā
2600hz Engineers Peter Defebvre and Maxime Roux will lead an intense discussion on WebRTC, what it is and how to build your own phone. We will also discuss how 2600hz is able to provide enterprise grade connectivity to any HTML5 endpoint.
Slides for the "Bandwidth Estimation in the Janus WebRTC Server" presentation I made at the new RTC.ON event in Krakow. It covers my journey in BWE, starting from the existing options, up to the decision to start from scratch and create a new approach to create a Janus-based testbed for simulcast subscribers.
Slides for my "Am I sober or am I trunk? A Janus story" presentation at Kamailio World 2024.
They describe my prototype efforts to add an option to create a trunk between a Janus instance and a SIP server, with the related implementation challenges and the interesting opportunities it opens.
Getting AV1/SVC to work in the Janus WebRTC ServerLorenzo Miniero
Ā
Slides for the "Getting AV1/SVC to work in the Janus WebRTC Server" presentation I made at the Real-Time Communications devroom of FOSDEM 2024 in Brussels. It describes in detail how AV1 is used in real-time communications (e.g., RTP packetization rules) and how the Dependency Descriptor extensions allows for SVC to be used in a server, by sharing my experience integrating it in the Janus WebRTC Server.
The challenges of hybrid meetings @ CommCon 2023Lorenzo Miniero
Ā
Slides for "The challenges of hybrid meetings" presentation I made at CommCon 2023. It covers how we provided remote participation services to live events before the pandemic, how we had to refactor everything for virtual only events, and what had to be changed again to accomodate audiences that may be evenly split between local and remote participants, with IETF meetings as a practical test case.
Real-Time Text and WebRTC @ Kamailio World 2023Lorenzo Miniero
Ā
Slides for my "Bringing real-time text to WebRTC for NG Emergency Services" presentation at Kamailio World 2023.
They describe my prototype efforts to get SIP-based T.140 Real-Time Text to work with WebRTC endpoints via data channels, thanks to Janus acting as a gateway for the purpose.
Slides I presented in the Open Media devroom at FOSDEM 2023, where I gave an intro on how to capture, record and produce music using just open source software on Linux. It's a very high level overview on available software to do different things, and how they can be used together using JACK and/or Pipewire.
These are the slides for the presentation I shared at the virtual edition of IIT-RTC 2022. I talked about how cascading/scalability worked with Janus 0.x, and what steps we've taken to do the same for 1.x (multistream) as well. In particular, the focus is on the new integrated cascading support in the VideoRoom plugin.
Just a few slides to talk about the first efforts on JamRTC, a native application based on GStreamer to do live jam sessions using WebRTC and Janus as an SFU. Mostly an overview of the initial architecture, with questions at the end to figure out if the approach is right or not, how to minimize latency, etc.
Virtual IETF meetings with WebRTC @ IETF 109 MOPSLorenzo Miniero
Ā
An overview of how the Janus WebRTC Server was used to serve virtual IETF meetings at scale, with focus on how audio and video streams were handled in different ways, given during the MOPS WG session at IETF 109. Some considerations on some specific enhancements made between IETF 108 and 109 are provided as well.
Slides for the 60 minutes workshop I presented at the virtual edition of ClueCon 2020 (ClueCon Deconstructed). The many slides cover different aspects in Janus, ranging from configuration, to plugins, how to write your own plugin, core features, recording, monitoring, and so on. Unfortunately I didn't have enough time to talk about everything, but slides should be easy to follow anyway.
Slides for the "Turning live events to virtual with Janus" talk I presented at the Virtual CommCon 2020 edition. It covers how we streamed live events in the past, and how we had to shift to a completely virtual approach because of the troubling times we live in.
An overview on the different ways Janus can interact with endpoints dealing with plain RTP, whether it's for receiving and sending media, and thus allow Janus to act as a WebRTC "enabler" for non-WebRTC infrastructures,
Slides for the 90 minutes workshop I presented at the RTC2019 event in Beijing. The many slides cover different aspects in Janus, ranging from configuration, to plugins, how to write your own plugin, core features, recording, monitoring, and so on.
The slides for a talk I presented at the WebRTC track of IIT-RTC in Chicago, titled "SFU's, Simulcast and SVC: what's new in WebRTC?". Mostly a high-level introduction to how simulcast and SVC work (or not) today in browsers, how they came to be and where they might be headed from a standards perspective.
Welcome to JanusCon! -- Past, Present and Future of JanusLorenzo Miniero
Ā
The slides for my "Welcome" presentation at JanusCon '19, with an overview on the history of Janus (how it changed in this first five years) and on some possible future directions for the project. Unfortunately, my talk was not recorded, so some slides may look a bit "cryptic" without some vocal context.
This is an introduction on Janus and its WebRTC features to the ClueCon audience, with a few words on how it can be used to complement FreeSwitch in some interesting scenarios.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Ā
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
Ā
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Ā
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
DevOps and Testing slides at DASA ConnectKari Kakkonen
Ā
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
Ā
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more āmechanicalā approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
Ā
As AI technology is pushing into IT I was wondering myself, as an āinfrastructure container kubernetes guyā, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefitās both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Ā
Are you looking to streamline your workflows and boost your projectsā efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, youāre in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part āEssentials of Automationā series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Hereās what youāll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
Weāll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Donāt miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Ā
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Ā
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Ā
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Monitoring Java Application Security with JDK Tools and JFR Events
Ā
WHIP WebRTC Broadcasting @ FOSDEM 2022
1. WebRTC broadcasting with WHIP
Lorenzo Miniero
@elminiero
FOSDEM 2022 Real Time Communications
5th February 2022, Brussels My couch
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://lminiero.bandcamp.com
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
ā¢ Topic of my Ph.D years ago (āStreaming Of Large scale Events over Internet cLoudsā)
ā¢ Clearing the industry FUD: https://webrtcbydralex.com/index.php/2020/04/14/
ā¢ 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
ā¢ Topic of my Ph.D years ago (āStreaming Of Large scale Events over Internet cLoudsā)
ā¢ Clearing the industry FUD: https://webrtcbydralex.com/index.php/2020/04/14/
ā¢ 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
ā¢ Topic of my Ph.D years ago (āStreaming Of Large scale Events over Internet cLoudsā)
ā¢ Clearing the industry FUD: https://webrtcbydralex.com/index.php/2020/04/14/
ā¢ 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. 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
ā¢ Topic of my Ph.D years ago (āStreaming Of Large scale Events over Internet cLoudsā)
ā¢ Clearing the industry FUD: https://webrtcbydralex.com/index.php/2020/04/14/
ā¢ Tooling an important aspect to foster WebRTC adoption, here
ā¢ e.g., a standard way to send media, and tools Ć la OBS, XSplit, or others
15. WebRTC audio: Opus
ā¢ WebRTC mandates Opus, and itās a good thing
ā¢ High quality audio codec designed for the Internet
ā¢ Very flexible in sampling rates, bitrates, FEC, etc.
ā¢ Different profiles for voice and music/other
ā¢ Both encoding and decoding vary, in case
ā¢ Can be mono and stereo, with dynamic sampling rates and bitrates
ā¢ Multiopus (5.1 and 7.1)1
ā¢ Each packet is basically OGG with multiple stereo Opus streams
ā¢ Number of streams determines number of channels
ā¢ Not documented, but used by Google for Stadia
1
https://webrtcbydralex.com/index.php/2020/04/08/surround-sound-5-1-and-7-1-in-libwebrtc-and-chrome/
16. WebRTC audio: Opus
ā¢ WebRTC mandates Opus, and itās a good thing
ā¢ High quality audio codec designed for the Internet
ā¢ Very flexible in sampling rates, bitrates, FEC, etc.
ā¢ Different profiles for voice and music/other
ā¢ Both encoding and decoding vary, in case
ā¢ Can be mono and stereo, with dynamic sampling rates and bitrates
ā¢ Multiopus (5.1 and 7.1)1
ā¢ Each packet is basically OGG with multiple stereo Opus streams
ā¢ Number of streams determines number of channels
ā¢ Not documented, but used by Google for Stadia
1
https://webrtcbydralex.com/index.php/2020/04/08/surround-sound-5-1-and-7-1-in-libwebrtc-and-chrome/
17. WebRTC audio: Opus
ā¢ WebRTC mandates Opus, and itās a good thing
ā¢ High quality audio codec designed for the Internet
ā¢ Very flexible in sampling rates, bitrates, FEC, etc.
ā¢ Different profiles for voice and music/other
ā¢ Both encoding and decoding vary, in case
ā¢ Can be mono and stereo, with dynamic sampling rates and bitrates
ā¢ Multiopus (5.1 and 7.1)1
ā¢ Each packet is basically OGG with multiple stereo Opus streams
ā¢ Number of streams determines number of channels
ā¢ Not documented, but used by Google for Stadia
1
https://webrtcbydralex.com/index.php/2020/04/08/surround-sound-5-1-and-7-1-in-libwebrtc-and-chrome/
26. A new Working Group in the IETF...
https://datatracker.ietf.org/wg/wish/about/
27. ... and a new draft for the WHIP specification!
https://www.ietf.org/archive/id/draft-ietf-wish-whip-01.html
28. 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.
29. 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.
30. 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.
31. 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.
35. A WHIP server based on Janus
ā¢ Janus is a popular WebRTC server, so good option for WHIP
ā¢ It implements its own JSON-based API, though (Janus API)
ā¢ Simple (and transparent) solution: basic API translator in front of Janus
ā¢ WHIP API maps quite simply to set of Janus API primitives
ā¢ No need to change anything in the WebRTC stack
ā¢ Implemented simple prototype using node.js and Express
ā¢ REST server that implements the WHIP API, and talks to Janus accordingly
ā¢ Only takes care of ingest: distribution out of scope (e.g., via SOLEIL)
Simple WHIP Server
https://github.com/lminiero/simple-whip-server/
36. A WHIP server based on Janus
ā¢ Janus is a popular WebRTC server, so good option for WHIP
ā¢ It implements its own JSON-based API, though (Janus API)
ā¢ Simple (and transparent) solution: basic API translator in front of Janus
ā¢ WHIP API maps quite simply to set of Janus API primitives
ā¢ No need to change anything in the WebRTC stack
ā¢ Implemented simple prototype using node.js and Express
ā¢ REST server that implements the WHIP API, and talks to Janus accordingly
ā¢ Only takes care of ingest: distribution out of scope (e.g., via SOLEIL)
Simple WHIP Server
https://github.com/lminiero/simple-whip-server/
37. A WHIP server based on Janus
ā¢ Janus is a popular WebRTC server, so good option for WHIP
ā¢ It implements its own JSON-based API, though (Janus API)
ā¢ Simple (and transparent) solution: basic API translator in front of Janus
ā¢ WHIP API maps quite simply to set of Janus API primitives
ā¢ No need to change anything in the WebRTC stack
ā¢ Implemented simple prototype using node.js and Express
ā¢ REST server that implements the WHIP API, and talks to Janus accordingly
ā¢ Only takes care of ingest: distribution out of scope (e.g., via SOLEIL)
Simple WHIP Server
https://github.com/lminiero/simple-whip-server/
38. A WHIP server based on Janus
ā¢ Janus is a popular WebRTC server, so good option for WHIP
ā¢ It implements its own JSON-based API, though (Janus API)
ā¢ Simple (and transparent) solution: basic API translator in front of Janus
ā¢ WHIP API maps quite simply to set of Janus API primitives
ā¢ No need to change anything in the WebRTC stack
ā¢ Implemented simple prototype using node.js and Express
ā¢ REST server that implements the WHIP API, and talks to Janus accordingly
ā¢ Only takes care of ingest: distribution out of scope (e.g., via SOLEIL)
Simple WHIP Server
https://github.com/lminiero/simple-whip-server/
46. Writing a WHIP client for testing
ā¢ Needs to support HTTP (WHIP API) and have a WebRTC stack
ā¢ Browsers are the obvious choice, but what about a native solution?
ā¢ Many broadcasters today use custom tools (e.g., OBS)
ā¢ Unfortunately OBS-WebRTC is not currently an option
ā¢ Used legacy WHIP API, and currently only supports Millicast ingestion
ā¢ Chose GStreamerās webrtcbin2 for the purpose
ā¢ Used it already with success in other applications (e.g., JamRTC)
ā¢ Modular and very powerful, so easy to feed with external sources
Simple WHIP Client
https://github.com/lminiero/simple-whip-client/
2
https://gstreamer.freedesktop.org/documentation/webrtc/
47. Writing a WHIP client for testing
ā¢ Needs to support HTTP (WHIP API) and have a WebRTC stack
ā¢ Browsers are the obvious choice, but what about a native solution?
ā¢ Many broadcasters today use custom tools (e.g., OBS)
ā¢ Unfortunately OBS-WebRTC is not currently an option
ā¢ Used legacy WHIP API, and currently only supports Millicast ingestion
ā¢ Chose GStreamerās webrtcbin2 for the purpose
ā¢ Used it already with success in other applications (e.g., JamRTC)
ā¢ Modular and very powerful, so easy to feed with external sources
Simple WHIP Client
https://github.com/lminiero/simple-whip-client/
2
https://gstreamer.freedesktop.org/documentation/webrtc/
48. Writing a WHIP client for testing
ā¢ Needs to support HTTP (WHIP API) and have a WebRTC stack
ā¢ Browsers are the obvious choice, but what about a native solution?
ā¢ Many broadcasters today use custom tools (e.g., OBS)
ā¢ Unfortunately OBS-WebRTC is not currently an option
ā¢ Used legacy WHIP API, and currently only supports Millicast ingestion
ā¢ Chose GStreamerās webrtcbin2 for the purpose
ā¢ Used it already with success in other applications (e.g., JamRTC)
ā¢ Modular and very powerful, so easy to feed with external sources
Simple WHIP Client
https://github.com/lminiero/simple-whip-client/
2
https://gstreamer.freedesktop.org/documentation/webrtc/
49. Writing a WHIP client for testing
ā¢ Needs to support HTTP (WHIP API) and have a WebRTC stack
ā¢ Browsers are the obvious choice, but what about a native solution?
ā¢ Many broadcasters today use custom tools (e.g., OBS)
ā¢ Unfortunately OBS-WebRTC is not currently an option
ā¢ Used legacy WHIP API, and currently only supports Millicast ingestion
ā¢ Chose GStreamerās webrtcbin2 for the purpose
ā¢ Used it already with success in other applications (e.g., JamRTC)
ā¢ Modular and very powerful, so easy to feed with external sources
Simple WHIP Client
https://github.com/lminiero/simple-whip-client/
2
https://gstreamer.freedesktop.org/documentation/webrtc/
50. Simple WHIP Client options
Usage:
whip-client [OPTION?] -- Simple WHIP client
Help Options:
-h, --help Show help options
Application Options:
-u, --url Address of the WHIP endpoint (required)
-t, --token Authentication Bearer token to use (optional)
-A, --audio GStreamer pipeline to use for audio (optional, required if audio-only)
-V, --video GStreamer pipeline to use for video (optional, required if video-only)
-n, --no-trickle Donāt trickle candidates, but put them in the SDP offer (default: false)
-f, --follow-link Use the Link headers returned by the WHIP server to automatically configure STUN/TURN servers to
use (default: false)
-S, --stun-server STUN server to use, if any (stun://hostname:port)
-T, --turn-server TURN server to use, if any; can be called multiple times
(turn(s)://username:password@host:port?transport=[udp,tcp])
-F, --force-turn In case TURN servers are provided, force using a relay (default: false)
-l, --log-level Logging level (0=disable logging, 7=maximum log level; default: 4)
59. Integration WHIP in broadcasting workflows
ā¢ Old version of OBS-WebRTC did have WHIP support
ā¢ Tested for my blog post from last year
ā¢ Implemented legacy WHIP API, and used libwebrtc
ā¢ No popular streamer tool supports WHIP yet, though
ā¢ WHIP will make it easy for the signalling part...
ā¢ ... but theyāll still need a working WebRTC stack
ā¢ Why not start with a more ālooseā integration then?
ā¢ Keeping on using existing tools as they work today
ā¢ Somehow get them to work with my GStreamer-based WHIP client
60. Integration WHIP in broadcasting workflows
ā¢ Old version of OBS-WebRTC did have WHIP support
ā¢ Tested for my blog post from last year
ā¢ Implemented legacy WHIP API, and used libwebrtc
ā¢ No popular streamer tool supports WHIP yet, though
ā¢ WHIP will make it easy for the signalling part...
ā¢ ... but theyāll still need a working WebRTC stack
ā¢ Why not start with a more ālooseā integration then?
ā¢ Keeping on using existing tools as they work today
ā¢ Somehow get them to work with my GStreamer-based WHIP client
61. Integration WHIP in broadcasting workflows
ā¢ Old version of OBS-WebRTC did have WHIP support
ā¢ Tested for my blog post from last year
ā¢ Implemented legacy WHIP API, and used libwebrtc
ā¢ No popular streamer tool supports WHIP yet, though
ā¢ WHIP will make it easy for the signalling part...
ā¢ ... but theyāll still need a working WebRTC stack
ā¢ Why not start with a more ālooseā integration then?
ā¢ Keeping on using existing tools as they work today
ā¢ Somehow get them to work with my GStreamer-based WHIP client
63. What is NDI?
ā¢ Network Device Interface (NDI)
ā¢ Royalty-free software standard developed by NewTek
ā¢ https://www.ndi.tv/
ā¢ Live exchange of multimedia streams within the same LAN
ā¢ Multichannel and uncompressed media streams (high quality)
ā¢ mDNS used for service discovery
ā¢ Easy to use (and integrate) native SDK
ā¢ Available on Windows, Linux, MacOS, Android, etc.
ā¢ VLC team working on an alternative implementation
ā¢ Widely used in the broadcasters industry
ā¢ Natively supported by many devices and streamer tools
64. What is NDI?
ā¢ Network Device Interface (NDI)
ā¢ Royalty-free software standard developed by NewTek
ā¢ https://www.ndi.tv/
ā¢ Live exchange of multimedia streams within the same LAN
ā¢ Multichannel and uncompressed media streams (high quality)
ā¢ mDNS used for service discovery
ā¢ Easy to use (and integrate) native SDK
ā¢ Available on Windows, Linux, MacOS, Android, etc.
ā¢ VLC team working on an alternative implementation
ā¢ Widely used in the broadcasters industry
ā¢ Natively supported by many devices and streamer tools
65. What is NDI?
ā¢ Network Device Interface (NDI)
ā¢ Royalty-free software standard developed by NewTek
ā¢ https://www.ndi.tv/
ā¢ Live exchange of multimedia streams within the same LAN
ā¢ Multichannel and uncompressed media streams (high quality)
ā¢ mDNS used for service discovery
ā¢ Easy to use (and integrate) native SDK
ā¢ Available on Windows, Linux, MacOS, Android, etc.
ā¢ VLC team working on an alternative implementation
ā¢ Widely used in the broadcasters industry
ā¢ Natively supported by many devices and streamer tools
66. What is NDI?
ā¢ Network Device Interface (NDI)
ā¢ Royalty-free software standard developed by NewTek
ā¢ https://www.ndi.tv/
ā¢ Live exchange of multimedia streams within the same LAN
ā¢ Multichannel and uncompressed media streams (high quality)
ā¢ mDNS used for service discovery
ā¢ Easy to use (and integrate) native SDK
ā¢ Available on Windows, Linux, MacOS, Android, etc.
ā¢ VLC team working on an alternative implementation
ā¢ Widely used in the broadcasters industry
ā¢ Natively supported by many devices and streamer tools
68. What about NDI-to-WebRTC, though?
ā¢ Thereās a cool NDI plugin for GStreamer
ā¢ Makes it easy to use NDI sources in GStreamer pipelines
ā¢ https://github.com/teltek/gst-plugin-ndi
ā¢ Hey, our WHIP client is based on GStreamer too!
ā¢ Audio and video pipelines are customizable (command line)
ā¢ NDI plugin as source for the media āā encoders/WebRTC will do the rest
ā¢ Of course, we need something that generates NDI
ā¢ OBS has an NDI plugin, for NDI input and output
ā¢ https://github.com/Palakis/obs-ndi
69. What about NDI-to-WebRTC, though?
ā¢ Thereās a cool NDI plugin for GStreamer
ā¢ Makes it easy to use NDI sources in GStreamer pipelines
ā¢ https://github.com/teltek/gst-plugin-ndi
ā¢ Hey, our WHIP client is based on GStreamer too!
ā¢ Audio and video pipelines are customizable (command line)
ā¢ NDI plugin as source for the media āā encoders/WebRTC will do the rest
ā¢ Of course, we need something that generates NDI
ā¢ OBS has an NDI plugin, for NDI input and output
ā¢ https://github.com/Palakis/obs-ndi
70. What about NDI-to-WebRTC, though?
ā¢ Thereās a cool NDI plugin for GStreamer
ā¢ Makes it easy to use NDI sources in GStreamer pipelines
ā¢ https://github.com/teltek/gst-plugin-ndi
ā¢ Hey, our WHIP client is based on GStreamer too!
ā¢ Audio and video pipelines are customizable (command line)
ā¢ NDI plugin as source for the media āā encoders/WebRTC will do the rest
ā¢ Of course, we need something that generates NDI
ā¢ OBS has an NDI plugin, for NDI input and output
ā¢ https://github.com/Palakis/obs-ndi
77. More details in a recent CommCon talk
https://2021.commcon.xyz/talks/whip-ndi-and-janus-genesis-of-a-broadcasting-demo
78. Next step: broadcasting the stream
ā¢ WHIP server + Janus get you in a VideoRoom, and itās a good starting point
ā¢ Thatās the whole point of WebRTC ingest!
ā¢ Already āconsumableā via VideoRoom itself (SFU)
ā¢ Janus VideoRoom plugin not really optimized for broadcasting, though
ā¢ Conceived for videoconferencing use cases
ā¢ Will not work well if you have to feed, e.g., 100ās or 1000ās
ā¢ Janus Streaming plugin a much better choice
ā¢ Natively optimized for doing one-to-many
ā¢ Can receive media from VideoRoom (and so WHIP) via āRTP forwardersā
ā¢ Even better, multiple Janus instances can work together
79. Next step: broadcasting the stream
ā¢ WHIP server + Janus get you in a VideoRoom, and itās a good starting point
ā¢ Thatās the whole point of WebRTC ingest!
ā¢ Already āconsumableā via VideoRoom itself (SFU)
ā¢ Janus VideoRoom plugin not really optimized for broadcasting, though
ā¢ Conceived for videoconferencing use cases
ā¢ Will not work well if you have to feed, e.g., 100ās or 1000ās
ā¢ Janus Streaming plugin a much better choice
ā¢ Natively optimized for doing one-to-many
ā¢ Can receive media from VideoRoom (and so WHIP) via āRTP forwardersā
ā¢ Even better, multiple Janus instances can work together
80. Next step: broadcasting the stream
ā¢ WHIP server + Janus get you in a VideoRoom, and itās a good starting point
ā¢ Thatās the whole point of WebRTC ingest!
ā¢ Already āconsumableā via VideoRoom itself (SFU)
ā¢ Janus VideoRoom plugin not really optimized for broadcasting, though
ā¢ Conceived for videoconferencing use cases
ā¢ Will not work well if you have to feed, e.g., 100ās or 1000ās
ā¢ Janus Streaming plugin a much better choice
ā¢ Natively optimized for doing one-to-many
ā¢ Can receive media from VideoRoom (and so WHIP) via āRTP forwardersā
ā¢ Even better, multiple Janus instances can work together
82. 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, here
ā¢ Just needs RTP forwarding to start everything
ā¢ PR available in WHIP server to do RTP forwarding (merged)
ā¢ https://github.com/lminiero/simple-whip-server/pull/2
83. 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, here
ā¢ Just needs RTP forwarding to start everything
ā¢ PR available in WHIP server to do RTP forwarding (merged)
ā¢ https://github.com/lminiero/simple-whip-server/pull/2
84. 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, here
ā¢ Just needs RTP forwarding to start everything
ā¢ PR available in WHIP server to do RTP forwarding (merged)
ā¢ https://github.com/lminiero/simple-whip-server/pull/2
85. To learn more about RTP forwarders...
https://archive.fosdem.org/2020/schedule/event/janus/
86. To learn more about RTP forwarders...
https://archive.fosdem.org/2020/schedule/event/janus/
87. To learn more about RTP forwarders...
https://archive.fosdem.org/2020/schedule/event/janus/