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.
This is the slide deck I presented at the first CommCon event in the UK: it goes through some of the possible strategies for scaling WebRTC applications, mostly if you're using Janus but not only.
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.
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.
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,
Ranch, Caesar or Olive Oil? Different dressings for your SIP salad with Janus! An overview of the different plugins existing (and WIP) in Janus to help with SIP needs, made at the OpenSIPS Summit 2017 in Amsterdam.
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.
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).
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.
This is the slide deck I presented at the first CommCon event in the UK: it goes through some of the possible strategies for scaling WebRTC applications, mostly if you're using Janus but not only.
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.
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.
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,
Ranch, Caesar or Olive Oil? Different dressings for your SIP salad with Janus! An overview of the different plugins existing (and WIP) in Janus to help with SIP needs, made at the OpenSIPS Summit 2017 in Amsterdam.
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.
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).
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.
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.
Kea DHCP â the new open source DHCP server from ISCMen and Mice
Â
This webinar will highlight the differences between the old ISC DHCP and new Kea DHCP (database support, dynamic reconfiguration, performance wins, scripting hooks) and will showcase the Men & Mice Suite as a graphical front-end to both ISC DHCP and Kea to ease the migration.
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.
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.
Launch the First Process in Linux SystemJian-Hong Pan
Â
The session: https://coscup.org/2022/en/session/AGCMDJ
After Linux kernel boots, it will try to launch first process âinitâ in User Space. Then, the system begins the featured journey of the Linux distribution.
This sharing takes Busybox as the example and shows that how does Linux kernel find the âinitâ which directs to the Busybox. And, what will Busybox do and how to get the console. Try to make it like a simple Linux system.
Before Linux kernel launches âinitâ process, the file system and storage corresponding drivers/modules must be loaded to find the âinitâ. Besides, to mount the root file system correctly, the kernel boot command must include the root device and file system format parameters.
On the other hand, the Busybox directed from âinitâ is a lightweight program, but has rich functions, just like a Swiss Army Knife. So, it is usually used on the simple environment, like embedded Linux system.
This sharing will have a demo on a virtual machine first, then on the Raspberry Pi.
Drafts:
* https://hackmd.io/@starnight/Busbox_as_the_init
* https://hackmd.io/@starnight/Build_Alpines_Root_Filesystem_Bootstrap
Relate idea: https://hackmd.io/@starnight/Systems_init_and_Containers_COMMAND_Dockerfiles_CMD
Presentation done at Kamailio World 2013, Berlin, Germany - several options for scalability of SIP routing with Kamailio, from configuration file tricks to stateless and stateful load balancing with dispatcher module.
Agenda:
1.Data Flow Challenges in an Enterprise
2.Introduction to Apache NiFi
3.Core Features
4.Architecture
5.Demo âSimple Lambda Architecture
6.Use Cases
7.Q & A
This presentation was created as an introduction to the Apache NiFi project; to be followed by âLab 0â of the âRealtime Event Processing in Hadoop with NiFi, Kafka and Stormâ tutorial hosted here: http://hortonworks.com/hadoop-tutorial/realtime-event-processing-nifi-kafka-storm/#section_1
Using Rook to Manage Kubernetes Storage with CephCloudOps2005
Â
Moh Ahmed and Raymond Maika presented 'Using Rook to Manage Kubernetes Storage with Ceph' at Montreal's first Cloud Native Day, which took place on June 11 in Montreal.
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).
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.
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.
Kea DHCP â the new open source DHCP server from ISCMen and Mice
Â
This webinar will highlight the differences between the old ISC DHCP and new Kea DHCP (database support, dynamic reconfiguration, performance wins, scripting hooks) and will showcase the Men & Mice Suite as a graphical front-end to both ISC DHCP and Kea to ease the migration.
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.
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.
Launch the First Process in Linux SystemJian-Hong Pan
Â
The session: https://coscup.org/2022/en/session/AGCMDJ
After Linux kernel boots, it will try to launch first process âinitâ in User Space. Then, the system begins the featured journey of the Linux distribution.
This sharing takes Busybox as the example and shows that how does Linux kernel find the âinitâ which directs to the Busybox. And, what will Busybox do and how to get the console. Try to make it like a simple Linux system.
Before Linux kernel launches âinitâ process, the file system and storage corresponding drivers/modules must be loaded to find the âinitâ. Besides, to mount the root file system correctly, the kernel boot command must include the root device and file system format parameters.
On the other hand, the Busybox directed from âinitâ is a lightweight program, but has rich functions, just like a Swiss Army Knife. So, it is usually used on the simple environment, like embedded Linux system.
This sharing will have a demo on a virtual machine first, then on the Raspberry Pi.
Drafts:
* https://hackmd.io/@starnight/Busbox_as_the_init
* https://hackmd.io/@starnight/Build_Alpines_Root_Filesystem_Bootstrap
Relate idea: https://hackmd.io/@starnight/Systems_init_and_Containers_COMMAND_Dockerfiles_CMD
Presentation done at Kamailio World 2013, Berlin, Germany - several options for scalability of SIP routing with Kamailio, from configuration file tricks to stateless and stateful load balancing with dispatcher module.
Agenda:
1.Data Flow Challenges in an Enterprise
2.Introduction to Apache NiFi
3.Core Features
4.Architecture
5.Demo âSimple Lambda Architecture
6.Use Cases
7.Q & A
This presentation was created as an introduction to the Apache NiFi project; to be followed by âLab 0â of the âRealtime Event Processing in Hadoop with NiFi, Kafka and Stormâ tutorial hosted here: http://hortonworks.com/hadoop-tutorial/realtime-event-processing-nifi-kafka-storm/#section_1
Using Rook to Manage Kubernetes Storage with CephCloudOps2005
Â
Moh Ahmed and Raymond Maika presented 'Using Rook to Manage Kubernetes Storage with Ceph' at Montreal's first Cloud Native Day, which took place on June 11 in Montreal.
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).
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.
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.
Slides I presented at the RTC2017 event in Beijing. May be mostly familiar with those who have seen my other Janus slides, but has some more content, and new examples.
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.
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.
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.
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.
How to Architect your WebRTC application, Alberto Gonzalez and Arin Sime, Web...Alan Quayle
Â
TADSummit EMEA Americas 2021
How to Architect your WebRTC application, Alberto Gonzalez and Arin Sime, WebRTC.Ventures
Agenda
Why itâs not easy to build with WebRTC
Open Source vs CPaaS
SFUs and MCUs
A standard 1-1 app
Group Chat
Live Interactive Broadcasting
Contact Centers
My talk on the excellent work Alessandro Toppi did at Meetecho on investigating the different code fuzzing options, and how it was eventually integrated in Janus for improving the robustness of the WebRTC stack (RTP, RTCP and SDP currently). It includes considerations on sharing corpora files and making this all distributed via OSS-Fuzz.
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.
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.
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.
Second screen, multi screen using XMPP. What is second screen, why is this popular both for the consumers and for the streaming companies? Why should you use XMPP for doing the second screen experience and why not DIAL or other protocols.
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.
Architecting your WebRTC application for scalability, Arin SimeAlan Quayle
Â
TADSummit 2022 8/9 Nov Aveiro Portugal
Architecting your WebRTC application for scalability
Arin Sime, CEO/Founder at WebRTC.ventures and AgilityFeat, & Alberto GonzĂĄlez Trastoy, CTO at WebRTC.ventures | Software/Telecom Engineer.
There are many ways to architecture your live video application with WebRTC. Open Source and CPaaS media servers are one consideration, but far from the only decision youâll need to make.
In this session we will give an update on the most popular media servers to consider as well as go deeper into scalability with topics such as deployment using kubernetes/docker, persistence when using multiple SFU/MCU servers, and optimizations available with WebRTC for better performance.
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.
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.
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.
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.
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 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.
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.
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.
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.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
Â
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. Whatâs changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
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.
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
Dev Dives: Train smarter, not harder â active learning and UiPath LLMs for do...UiPathCommunity
Â
đĽ Speed, accuracy, and scaling â discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Miningâ˘:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing â with little to no training required
Get an exclusive demo of the new family of UiPath LLMs â GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
đ¨âđŤ Andras Palfi, Senior Product Manager, UiPath
đŠâđŤ Lenka Dulovicova, Product Program Manager, UiPath
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.
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
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.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Â
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But thereâs more:
In a second workflow supporting the same use case, youâll see:
Your campaign sent to target colleagues for approval
If the âApproveâ button is clicked, a Jira/Zendesk ticket is created for the marketing design team
Butâif the âRejectâ button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Â
Janus + Audio @ Open Source World
1. Audio ergo sum: Playing with
Audio-only Streams in WebRTC and Janus
Lorenzo Miniero
Open Source World â Miami, FL, USA (kinda!)
June 23rd 2021
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. Just a few words on Meetecho
⢠Co-founded in 2009 as an academic spin-off
⢠University research efforts brought to the market
⢠Completely independent from the University
⢠Focus on real-time multimedia applications
⢠Strong perspective on standardization and open source
⢠Several activities
⢠Consulting services
⢠Commercial support and Janus licenses
⢠Streaming of live events (IETF, ACM, etc.)
⢠Proudly brewed in sunny Napoli, Italy
14. Whatâs 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
18. Modular architecture
⢠The core only implements the WebRTC stack
⢠JSEP/SDP, ICE, DTLS-SRTP, Data Channels, Simulcast, VP9-SVC, ...
⢠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.
19. Modular architecture
⢠The core only implements the WebRTC stack
⢠JSEP/SDP, ICE, DTLS-SRTP, Data Channels, Simulcast, VP9-SVC, ...
⢠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.
20. Modular architecture
⢠The core only implements the WebRTC stack
⢠JSEP/SDP, ICE, DTLS-SRTP, Data Channels, Simulcast, VP9-SVC, ...
⢠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.
21. Modular architecture
⢠The core only implements the WebRTC stack
⢠JSEP/SDP, ICE, DTLS-SRTP, Data Channels, Simulcast, VP9-SVC, ...
⢠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.
24. A ton of scenarios done today with Janus!
⢠SIP and RTSP gatewaying
⢠WebRTC-based call/contact centers
⢠Conferencing & collaboration
⢠E-learning & webinars
⢠Cloud platforms
⢠Media production
⢠Broadcasting & Gaming
⢠Identity verification
⢠Internet of Things
⢠Augmented/Virtual Reality
⢠...and more!
25. A quick look at plugins: EchoTest
https://janus.conf.meetecho.com/docs/echotest
26. A quick look at plugins: Record & Play
https://janus.conf.meetecho.com/docs/recordplay
27. A quick look at plugins: Record & Play
https://janus.conf.meetecho.com/docs/recordplay
28. A quick look at plugins: SIP gateway
https://janus.conf.meetecho.com/docs/sipsofia
29. A quick look at plugins: NoSIP plugin
https://janus.conf.meetecho.com/docs/nosip
30. A quick look at plugins: Audio MCU
https://janus.conf.meetecho.com/docs/audiobridge
31. A quick look at plugins: Video SFU
https://janus.conf.meetecho.com/docs/videoroom
32. A quick look at plugins: Streaming
https://janus.conf.meetecho.com/docs/streaming
35. Itâs not just about video!
⢠Video obviously takes the lion share
⢠Pretty much ubiquitous
⢠Most use cases assume video, one way or another
⢠Itâs not the only thing that matters, though
⢠We still need to communicate, somehow
⢠Audio (and data) can be just as important, if not more
⢠Some applications even focus JUST on audio!
⢠... and not only call/contact centers, PBX, or legacy infrastructures
36. Itâs not just about video!
⢠Video obviously takes the lion share
⢠Pretty much ubiquitous
⢠Most use cases assume video, one way or another
⢠Itâs not the only thing that matters, though
⢠We still need to communicate, somehow
⢠Audio (and data) can be just as important, if not more
⢠Some applications even focus JUST on audio!
⢠... and not only call/contact centers, PBX, or legacy infrastructures
37. Itâs not just about video!
⢠Video obviously takes the lion share
⢠Pretty much ubiquitous
⢠Most use cases assume video, one way or another
⢠Itâs not the only thing that matters, though
⢠We still need to communicate, somehow
⢠Audio (and data) can be just as important, if not more
⢠Some applications even focus JUST on audio!
⢠... and not only call/contact centers, PBX, or legacy infrastructures
41. âCan WebRTC help musicians?â
https://fosdem.org/2021/schedule/event/webrtc_musicians/
42. WebRTC and audio
⢠A couple of mandatory-to-implement codecs
⢠Opus + G.711
⢠G.711 just there as a fallback (and legacy interopability)
⢠Opus FTW!
⢠High quality audio codec designed for the Internet
⢠Very flexible in sampling rates, bitrates, etc.
⢠Support for stereo, and different âprofilesâ for voice/music
⢠A few interesting âtoolsâ
⢠Audio levels RTP extension (VAD)
⢠Opus inband Forward Error Correction (FEC)
⢠Opus Discontinuous transmission (DTX)
43. WebRTC and audio
⢠A couple of mandatory-to-implement codecs
⢠Opus + G.711
⢠G.711 just there as a fallback (and legacy interopability)
⢠Opus FTW!
⢠High quality audio codec designed for the Internet
⢠Very flexible in sampling rates, bitrates, etc.
⢠Support for stereo, and different âprofilesâ for voice/music
⢠A few interesting âtoolsâ
⢠Audio levels RTP extension (VAD)
⢠Opus inband Forward Error Correction (FEC)
⢠Opus Discontinuous transmission (DTX)
44. WebRTC and audio
⢠A couple of mandatory-to-implement codecs
⢠Opus + G.711
⢠G.711 just there as a fallback (and legacy interopability)
⢠Opus FTW!
⢠High quality audio codec designed for the Internet
⢠Very flexible in sampling rates, bitrates, etc.
⢠Support for stereo, and different âprofilesâ for voice/music
⢠A few interesting âtoolsâ
⢠Audio levels RTP extension (VAD)
⢠Opus inband Forward Error Correction (FEC)
⢠Opus Discontinuous transmission (DTX)
45. Audio-only: SFU or MCU?
⢠SFUs ideal to just relay media
⢠No mixing/transcoding to worry about ââ less CPU on server, less delay
⢠More streams to distribute ââ more bandwidth needed
⢠Different streams ââ more control on UI
⢠MCUs ideal to just mix media
⢠Mixing/transcoding taking place ââ more CPU on server, more delay
⢠Just one stream to distribute ââ bandwidth constant
⢠Single output stream ââ UI rendering constrained
⢠Sometimes it makes sense to use them both!
⢠Use SFU where applicable (e.g., video, plenty of bandwidth)
⢠Use MCU to complement (e.g., audio, lower power devices)
⢠Besides, an MCU can mix SFU streams to broadcast to a CDN!
46. Audio-only: SFU or MCU?
⢠SFUs ideal to just relay media
⢠No mixing/transcoding to worry about ââ less CPU on server, less delay
⢠More streams to distribute ââ more bandwidth needed
⢠Different streams ââ more control on UI
⢠MCUs ideal to just mix media
⢠Mixing/transcoding taking place ââ more CPU on server, more delay
⢠Just one stream to distribute ââ bandwidth constant
⢠Single output stream ââ UI rendering constrained
⢠Sometimes it makes sense to use them both!
⢠Use SFU where applicable (e.g., video, plenty of bandwidth)
⢠Use MCU to complement (e.g., audio, lower power devices)
⢠Besides, an MCU can mix SFU streams to broadcast to a CDN!
47. Audio-only: SFU or MCU?
⢠SFUs ideal to just relay media
⢠No mixing/transcoding to worry about ââ less CPU on server, less delay
⢠More streams to distribute ââ more bandwidth needed
⢠Different streams ââ more control on UI
⢠MCUs ideal to just mix media
⢠Mixing/transcoding taking place ââ more CPU on server, more delay
⢠Just one stream to distribute ââ bandwidth constant
⢠Single output stream ââ UI rendering constrained
⢠Sometimes it makes sense to use them both!
⢠Use SFU where applicable (e.g., video, plenty of bandwidth)
⢠Use MCU to complement (e.g., audio, lower power devices)
⢠Besides, an MCU can mix SFU streams to broadcast to a CDN!
48. A simple use case to start from: podcasts
⢠Good example that combines interaction and scalability requirements
⢠One or more people talking, and a (potentially) wide audience
⢠Ability to invite people in can be a plus
⢠WebRTC a good fit for the conversation part
⢠Easy to have a chat just using your browser
⢠Broadcasting could be done with WebRTC too!
⢠May make sense to have the conversation mixed, though
⢠If broadcasting with WebRTC, the more the speakers, the more the bandwidth
⢠If NOT broadcasting with WebRTC, you need a mix to transcode anyway
⢠More control on additional media (e.g., themes, clips, ads, etc.)
⢠How to optimize mixing with the ability to bring people in in a scalable way?
49. A simple use case to start from: podcasts
⢠Good example that combines interaction and scalability requirements
⢠One or more people talking, and a (potentially) wide audience
⢠Ability to invite people in can be a plus
⢠WebRTC a good fit for the conversation part
⢠Easy to have a chat just using your browser
⢠Broadcasting could be done with WebRTC too!
⢠May make sense to have the conversation mixed, though
⢠If broadcasting with WebRTC, the more the speakers, the more the bandwidth
⢠If NOT broadcasting with WebRTC, you need a mix to transcode anyway
⢠More control on additional media (e.g., themes, clips, ads, etc.)
⢠How to optimize mixing with the ability to bring people in in a scalable way?
50. A simple use case to start from: podcasts
⢠Good example that combines interaction and scalability requirements
⢠One or more people talking, and a (potentially) wide audience
⢠Ability to invite people in can be a plus
⢠WebRTC a good fit for the conversation part
⢠Easy to have a chat just using your browser
⢠Broadcasting could be done with WebRTC too!
⢠May make sense to have the conversation mixed, though
⢠If broadcasting with WebRTC, the more the speakers, the more the bandwidth
⢠If NOT broadcasting with WebRTC, you need a mix to transcode anyway
⢠More control on additional media (e.g., themes, clips, ads, etc.)
⢠How to optimize mixing with the ability to bring people in in a scalable way?
51. A simple use case to start from: podcasts
⢠Good example that combines interaction and scalability requirements
⢠One or more people talking, and a (potentially) wide audience
⢠Ability to invite people in can be a plus
⢠WebRTC a good fit for the conversation part
⢠Easy to have a chat just using your browser
⢠Broadcasting could be done with WebRTC too!
⢠May make sense to have the conversation mixed, though
⢠If broadcasting with WebRTC, the more the speakers, the more the bandwidth
⢠If NOT broadcasting with WebRTC, you need a mix to transcode anyway
⢠More control on additional media (e.g., themes, clips, ads, etc.)
⢠How to optimize mixing with the ability to bring people in in a scalable way?
58. Foundation for our Virtual Event Platform
https://commcon.xyz/session/turning-live-events-to-virtual-with-janus
59. New audio-related Janus efforts
⢠Modular nature of Janus encourages new functionality
⢠Not necessarily in new plugins
⢠VideoRoom, AudioBridge, Streaming plugins can all benefit
⢠Several activities done, started or planned to enhance audio experience
⢠Mostly in AudioBridge... (due to the nature of the plugin)
⢠... but some features actually available to all plugins!
⢠Many coming from requirements for our Virtual Event Platform
⢠But we like to experiment as well!
60. New audio-related Janus efforts
⢠Modular nature of Janus encourages new functionality
⢠Not necessarily in new plugins
⢠VideoRoom, AudioBridge, Streaming plugins can all benefit
⢠Several activities done, started or planned to enhance audio experience
⢠Mostly in AudioBridge... (due to the nature of the plugin)
⢠... but some features actually available to all plugins!
⢠Many coming from requirements for our Virtual Event Platform
⢠But we like to experiment as well!
61. New audio-related Janus efforts
⢠Modular nature of Janus encourages new functionality
⢠Not necessarily in new plugins
⢠VideoRoom, AudioBridge, Streaming plugins can all benefit
⢠Several activities done, started or planned to enhance audio experience
⢠Mostly in AudioBridge... (due to the nature of the plugin)
⢠... but some features actually available to all plugins!
⢠Many coming from requirements for our Virtual Event Platform
⢠But we like to experiment as well!
62. New audio-related Janus efforts
⢠Modular nature of Janus encourages new functionality
⢠Not necessarily in new plugins
⢠VideoRoom, AudioBridge, Streaming plugins can all benefit
⢠Several activities done, started or planned to enhance audio experience
⢠Mostly in AudioBridge... (due to the nature of the plugin)
⢠... but some features actually available to all plugins!
⢠Many coming from requirements for our Virtual Event Platform
⢠But we like to experiment as well!
63. Multiopus: 5.1 and 7.1 surround audio
⢠This is little known, but Chrome does support surround audio in WebRTC
⢠Not really documented or standardized, though
⢠Mostly just there because itâs used by Stadia, today
⢠Multiopus (5.1 and 7.1)
⢠Each packet is basically OGG with multiple stereo Opus streams
⢠Number of streams determines number of channels (SDP munging for mapping)
⢠We have a cool demo, which currently doesnât work due to a bug in Chrome...
⢠https://janus.conf.meetecho.com/multiopus.html
Pull request (now merged)
https://github.com/meetecho/janus-gateway/pull/2059
64. Multiopus: 5.1 and 7.1 surround audio
⢠This is little known, but Chrome does support surround audio in WebRTC
⢠Not really documented or standardized, though
⢠Mostly just there because itâs used by Stadia, today
⢠Multiopus (5.1 and 7.1)
⢠Each packet is basically OGG with multiple stereo Opus streams
⢠Number of streams determines number of channels (SDP munging for mapping)
⢠We have a cool demo, which currently doesnât work due to a bug in Chrome...
⢠https://janus.conf.meetecho.com/multiopus.html
Pull request (now merged)
https://github.com/meetecho/janus-gateway/pull/2059
65. Multiopus: 5.1 and 7.1 surround audio
⢠This is little known, but Chrome does support surround audio in WebRTC
⢠Not really documented or standardized, though
⢠Mostly just there because itâs used by Stadia, today
⢠Multiopus (5.1 and 7.1)
⢠Each packet is basically OGG with multiple stereo Opus streams
⢠Number of streams determines number of channels (SDP munging for mapping)
⢠We have a cool demo, which currently doesnât work due to a bug in Chrome...
⢠https://janus.conf.meetecho.com/multiopus.html
Pull request (now merged)
https://github.com/meetecho/janus-gateway/pull/2059
66. Multiopus: 5.1 and 7.1 surround audio
⢠This is little known, but Chrome does support surround audio in WebRTC
⢠Not really documented or standardized, though
⢠Mostly just there because itâs used by Stadia, today
⢠Multiopus (5.1 and 7.1)
⢠Each packet is basically OGG with multiple stereo Opus streams
⢠Number of streams determines number of channels (SDP munging for mapping)
⢠We have a cool demo, which currently doesnât work due to a bug in Chrome...
⢠https://janus.conf.meetecho.com/multiopus.html
Pull request (now merged)
https://github.com/meetecho/janus-gateway/pull/2059
68. Playback of pre-recorded streams in AudioBridge
⢠We kinda had it already, but in a different plugin
⢠Streaming plugin always supported streaming static audio files via WebRTC
⢠Initially G.711 files only, now Opus as well (check the demos online!)
⢠We needed it in AudioBridge as well
⢠e.g., to play announcements or background music
⢠Basically a way to play an Opus file in an Opus room
⢠Now used in several contexts in production environments
⢠e.g., WebRTC-based auctions services
Pull request (now merged)
https://github.com/meetecho/janus-gateway/pull/2088
69. Playback of pre-recorded streams in AudioBridge
⢠We kinda had it already, but in a different plugin
⢠Streaming plugin always supported streaming static audio files via WebRTC
⢠Initially G.711 files only, now Opus as well (check the demos online!)
⢠We needed it in AudioBridge as well
⢠e.g., to play announcements or background music
⢠Basically a way to play an Opus file in an Opus room
⢠Now used in several contexts in production environments
⢠e.g., WebRTC-based auctions services
Pull request (now merged)
https://github.com/meetecho/janus-gateway/pull/2088
70. Playback of pre-recorded streams in AudioBridge
⢠We kinda had it already, but in a different plugin
⢠Streaming plugin always supported streaming static audio files via WebRTC
⢠Initially G.711 files only, now Opus as well (check the demos online!)
⢠We needed it in AudioBridge as well
⢠e.g., to play announcements or background music
⢠Basically a way to play an Opus file in an Opus room
⢠Now used in several contexts in production environments
⢠e.g., WebRTC-based auctions services
Pull request (now merged)
https://github.com/meetecho/janus-gateway/pull/2088
71. Playback of pre-recorded streams in AudioBridge
⢠We kinda had it already, but in a different plugin
⢠Streaming plugin always supported streaming static audio files via WebRTC
⢠Initially G.711 files only, now Opus as well (check the demos online!)
⢠We needed it in AudioBridge as well
⢠e.g., to play announcements or background music
⢠Basically a way to play an Opus file in an Opus room
⢠Now used in several contexts in production environments
⢠e.g., WebRTC-based auctions services
Pull request (now merged)
https://github.com/meetecho/janus-gateway/pull/2088
73. Spatial audio support in AudioBridge
⢠Besides experimental surround, WebRTC supports âregularâ stereo too
⢠Easy to enable via negotiation in SDP
⢠Supported in most Janus plugins that simply relay media
⢠AudioBridge so far limited to mono only, though
⢠Decoding and mixing needs to be aware of number of channels
⢠Stereo mixing more complex as well
⢠Effort started to add stereo mode, and use it for spatial audio
⢠Participants joining can send/receive stereo audio
⢠Spatial positioning for participants in stereo space (0=L, 50=C, 100=R)
Pull request (now merged)
https://github.com/meetecho/janus-gateway/pull/2446
74. Spatial audio support in AudioBridge
⢠Besides experimental surround, WebRTC supports âregularâ stereo too
⢠Easy to enable via negotiation in SDP
⢠Supported in most Janus plugins that simply relay media
⢠AudioBridge so far limited to mono only, though
⢠Decoding and mixing needs to be aware of number of channels
⢠Stereo mixing more complex as well
⢠Effort started to add stereo mode, and use it for spatial audio
⢠Participants joining can send/receive stereo audio
⢠Spatial positioning for participants in stereo space (0=L, 50=C, 100=R)
Pull request (now merged)
https://github.com/meetecho/janus-gateway/pull/2446
75. Spatial audio support in AudioBridge
⢠Besides experimental surround, WebRTC supports âregularâ stereo too
⢠Easy to enable via negotiation in SDP
⢠Supported in most Janus plugins that simply relay media
⢠AudioBridge so far limited to mono only, though
⢠Decoding and mixing needs to be aware of number of channels
⢠Stereo mixing more complex as well
⢠Effort started to add stereo mode, and use it for spatial audio
⢠Participants joining can send/receive stereo audio
⢠Spatial positioning for participants in stereo space (0=L, 50=C, 100=R)
Pull request (now merged)
https://github.com/meetecho/janus-gateway/pull/2446
76. Spatial audio support in AudioBridge
⢠Besides experimental surround, WebRTC supports âregularâ stereo too
⢠Easy to enable via negotiation in SDP
⢠Supported in most Janus plugins that simply relay media
⢠AudioBridge so far limited to mono only, though
⢠Decoding and mixing needs to be aware of number of channels
⢠Stereo mixing more complex as well
⢠Effort started to add stereo mode, and use it for spatial audio
⢠Participants joining can send/receive stereo audio
⢠Spatial positioning for participants in stereo space (0=L, 50=C, 100=R)
Pull request (now merged)
https://github.com/meetecho/janus-gateway/pull/2446
78. Support for plain-RTP participants in AudioBridge
⢠AudioBridge plugin conceived as a simple, and WebRTC-only, audio mixer
⢠Only WebRTC users allowed to join, via the Janus API
⢠As such, so far no way for, e.g., SIP users to participate
⢠Backend plain-RTP channel added to address that shortcoming
⢠Janus API still needed to add and manage RTP participant
⢠SDP crafting up to application (AudioBridge wonât do SIP/SDP for you)
⢠Opus still a requirement for participation (no further transcoding)
⢠In the future, plan is to use this for cascaded mixing as well
Pull request (now merged)
https://github.com/meetecho/janus-gateway/pull/2464
79. Support for plain-RTP participants in AudioBridge
⢠AudioBridge plugin conceived as a simple, and WebRTC-only, audio mixer
⢠Only WebRTC users allowed to join, via the Janus API
⢠As such, so far no way for, e.g., SIP users to participate
⢠Backend plain-RTP channel added to address that shortcoming
⢠Janus API still needed to add and manage RTP participant
⢠SDP crafting up to application (AudioBridge wonât do SIP/SDP for you)
⢠Opus still a requirement for participation (no further transcoding)
⢠In the future, plan is to use this for cascaded mixing as well
Pull request (now merged)
https://github.com/meetecho/janus-gateway/pull/2464
80. Support for plain-RTP participants in AudioBridge
⢠AudioBridge plugin conceived as a simple, and WebRTC-only, audio mixer
⢠Only WebRTC users allowed to join, via the Janus API
⢠As such, so far no way for, e.g., SIP users to participate
⢠Backend plain-RTP channel added to address that shortcoming
⢠Janus API still needed to add and manage RTP participant
⢠SDP crafting up to application (AudioBridge wonât do SIP/SDP for you)
⢠Opus still a requirement for participation (no further transcoding)
⢠In the future, plan is to use this for cascaded mixing as well
Pull request (now merged)
https://github.com/meetecho/janus-gateway/pull/2464
81. Support for plain-RTP participants in AudioBridge
⢠AudioBridge plugin conceived as a simple, and WebRTC-only, audio mixer
⢠Only WebRTC users allowed to join, via the Janus API
⢠As such, so far no way for, e.g., SIP users to participate
⢠Backend plain-RTP channel added to address that shortcoming
⢠Janus API still needed to add and manage RTP participant
⢠SDP crafting up to application (AudioBridge wonât do SIP/SDP for you)
⢠Opus still a requirement for participation (no further transcoding)
⢠In the future, plan is to use this for cascaded mixing as well
Pull request (now merged)
https://github.com/meetecho/janus-gateway/pull/2464
83. Grouping participants in AudioBridge
⢠We introduced AudioBridge RTP forwarders before
⢠Easy way to forward a room mix, e.g., for broadcasting purposes
⢠Sometimes helpful to only get a mix of some participants
⢠e.g., for selective processing of a class of participants
⢠Added participants tagging functionality to create âgroupsâ
⢠Nothing changes for participants (they can still all hear each other)
⢠RTP forwarders, though, can now forward everything or just a group
Pull request (in testing phase)
https://github.com/meetecho/janus-gateway/pull/2653
84. Grouping participants in AudioBridge
⢠We introduced AudioBridge RTP forwarders before
⢠Easy way to forward a room mix, e.g., for broadcasting purposes
⢠Sometimes helpful to only get a mix of some participants
⢠e.g., for selective processing of a class of participants
⢠Added participants tagging functionality to create âgroupsâ
⢠Nothing changes for participants (they can still all hear each other)
⢠RTP forwarders, though, can now forward everything or just a group
Pull request (in testing phase)
https://github.com/meetecho/janus-gateway/pull/2653
85. Grouping participants in AudioBridge
⢠We introduced AudioBridge RTP forwarders before
⢠Easy way to forward a room mix, e.g., for broadcasting purposes
⢠Sometimes helpful to only get a mix of some participants
⢠e.g., for selective processing of a class of participants
⢠Added participants tagging functionality to create âgroupsâ
⢠Nothing changes for participants (they can still all hear each other)
⢠RTP forwarders, though, can now forward everything or just a group
Pull request (in testing phase)
https://github.com/meetecho/janus-gateway/pull/2653
86. Grouping participants in AudioBridge
⢠We introduced AudioBridge RTP forwarders before
⢠Easy way to forward a room mix, e.g., for broadcasting purposes
⢠Sometimes helpful to only get a mix of some participants
⢠e.g., for selective processing of a class of participants
⢠Added participants tagging functionality to create âgroupsâ
⢠Nothing changes for participants (they can still all hear each other)
⢠RTP forwarders, though, can now forward everything or just a group
Pull request (in testing phase)
https://github.com/meetecho/janus-gateway/pull/2653
88. Audio redundancy via RED
⢠Old RTP payload format for Redundant Audio Data (RED)
⢠https://datatracker.ietf.org/doc/html/rfc2198
⢠Recently added to Chrome on an experimental basis
⢠https://webrtchacks.com/red-improving-audio-quality-with-redundancy/
⢠https://webrtchacks.com/implementing-redundant-audio-on-an-sfu/
⢠Basically a simple way to group multiple audio frames in a single RTP packet
⢠Current audio frame + one or more previously sent frames
⢠Allows recipient to easily recover lost packets at the cost of more bandwidth
89. Audio redundancy via RED
⢠Old RTP payload format for Redundant Audio Data (RED)
⢠https://datatracker.ietf.org/doc/html/rfc2198
⢠Recently added to Chrome on an experimental basis
⢠https://webrtchacks.com/red-improving-audio-quality-with-redundancy/
⢠https://webrtchacks.com/implementing-redundant-audio-on-an-sfu/
⢠Basically a simple way to group multiple audio frames in a single RTP packet
⢠Current audio frame + one or more previously sent frames
⢠Allows recipient to easily recover lost packets at the cost of more bandwidth
90. Audio redundancy via RED
⢠Old RTP payload format for Redundant Audio Data (RED)
⢠https://datatracker.ietf.org/doc/html/rfc2198
⢠Recently added to Chrome on an experimental basis
⢠https://webrtchacks.com/red-improving-audio-quality-with-redundancy/
⢠https://webrtchacks.com/implementing-redundant-audio-on-an-sfu/
⢠Basically a simple way to group multiple audio frames in a single RTP packet
⢠Current audio frame + one or more previously sent frames
⢠Allows recipient to easily recover lost packets at the cost of more bandwidth
96. Support for audio redundancy via RED in Janus
⢠Support in Janus needed work in both core and plugins
⢠Core needed to negotiate RED, and be able to unpack/pack RED
⢠Plugins needed to be able to do something with the data
⢠Important to support both endpoints that can do RED, and those who canât
⢠RED-to-RED and nonRED-to-nonRED are easy
⢠In other cases, Janus may have to pack/unpack RED accordingly
⢠First integration basically done in most plugins
⢠EchoTest, VideoCall, SIP, NoSIP, Record&Play, Streaming, recordings post-processor
⢠âBig gunsâ like AudioBridge and VideoRoom to come next!
If you want to learn more... (PR in testing phase)
https://www.meetecho.com/blog/opus-red/
97. Support for audio redundancy via RED in Janus
⢠Support in Janus needed work in both core and plugins
⢠Core needed to negotiate RED, and be able to unpack/pack RED
⢠Plugins needed to be able to do something with the data
⢠Important to support both endpoints that can do RED, and those who canât
⢠RED-to-RED and nonRED-to-nonRED are easy
⢠In other cases, Janus may have to pack/unpack RED accordingly
⢠First integration basically done in most plugins
⢠EchoTest, VideoCall, SIP, NoSIP, Record&Play, Streaming, recordings post-processor
⢠âBig gunsâ like AudioBridge and VideoRoom to come next!
If you want to learn more... (PR in testing phase)
https://www.meetecho.com/blog/opus-red/
98. Support for audio redundancy via RED in Janus
⢠Support in Janus needed work in both core and plugins
⢠Core needed to negotiate RED, and be able to unpack/pack RED
⢠Plugins needed to be able to do something with the data
⢠Important to support both endpoints that can do RED, and those who canât
⢠RED-to-RED and nonRED-to-nonRED are easy
⢠In other cases, Janus may have to pack/unpack RED accordingly
⢠First integration basically done in most plugins
⢠EchoTest, VideoCall, SIP, NoSIP, Record&Play, Streaming, recordings post-processor
⢠âBig gunsâ like AudioBridge and VideoRoom to come next!
If you want to learn more... (PR in testing phase)
https://www.meetecho.com/blog/opus-red/
99. Support for audio redundancy via RED in Janus
⢠Support in Janus needed work in both core and plugins
⢠Core needed to negotiate RED, and be able to unpack/pack RED
⢠Plugins needed to be able to do something with the data
⢠Important to support both endpoints that can do RED, and those who canât
⢠RED-to-RED and nonRED-to-nonRED are easy
⢠In other cases, Janus may have to pack/unpack RED accordingly
⢠First integration basically done in most plugins
⢠EchoTest, VideoCall, SIP, NoSIP, Record&Play, Streaming, recordings post-processor
⢠âBig gunsâ like AudioBridge and VideoRoom to come next!
If you want to learn more... (PR in testing phase)
https://www.meetecho.com/blog/opus-red/