The Symphony Media Bridge (SMB) is a media server application that handles audio, video and screen sharing media streams in an RTC conference system.
In RTC conferencing systems, when more than two participants are in a conference there is usually a media server component involved. Each participant in the conference will send their audio and video streams to the media server. The media server is then responsible for sending the correct media streams to each receiving participant.
Conferencing media servers are typically divided into two categories, multipoint conference units (MCU) and selective forwarding units (SFU).
MCUs decode, mix and transcode media streams delivering a single or a few output streams to each receiver.
SFUs do not decode or transcode media streams from participants, but forwards a selection of the incoming media streams to each receiver in some intelligent way. Not all incoming streams are forwarded, but typically more than one stream to each receiver.
Both types of media servers have their benefits and drawbacks depending on the use case, but that is outside of the scope of this document.
Proposed Solution
SMB is an SFU at its core, but has some hybrid MCU like solutions. Video streams are forwarded and not transcoded, but participants can request a mixed, transcoded audio stream instead of forwarded streams.
SMB can also be run in a mode where multiple streams are forwarded, but the contents of each stream can vary between different participants in the conference. This allows for larger conferences than SFUs can typically handle.
Written as a high performance native application with efficient resource management, SMB is designed to scale efficiently as the number of conferences and participants grow.
The main differentiators for SMB are:
It has a low CPU footprint and scales more efficiently when conference sizes grow. It is written in C++ with few third party dependencies and has a clean maintainable code base.
It has a new efficient receiver side bandwidth estimation algorithm unique for SMB that could possibly be beneficial to the WebRTC project.
It has a novel hybrid SFU/MCU mode with media stream rewrite enabling larger meetings than SFUs usually can manage.
Tentative Roadmap
Improve sender side bandwidth estimation to better handle degraded uplink network scenarios.
Current State
The project is in GA state and is used in production for Symphony Meetings.
Rafael Berne, Symphony, rafael.berne1@symphony.com, rmberne (Maintainer)
What's next?
Upon submission of this project proposal, the FINOS team will get in touch with you to discuss next steps.
Contribution process (v. 1.0, last updated on October 2, 2020)
Below is the list of tasks that FINOS Team and the contribution author go through in order to complete the FINOS contribution process.
Please do not edit these contents at contribution time!
FINOS Contrib POC
[x] Identify and Assign FINOS Project Coordinator - @Julia-Ritter
[x] Identify and Assign FINOS Strategic Advisor - @mindthegab
Kick-off meeting
[x] Set up kick-off meeting with project leads to review:
Business Problem
The Symphony Media Bridge (SMB) is a media server application that handles audio, video and screen sharing media streams in an RTC conference system.
In RTC conferencing systems, when more than two participants are in a conference there is usually a media server component involved. Each participant in the conference will send their audio and video streams to the media server. The media server is then responsible for sending the correct media streams to each receiving participant.
Conferencing media servers are typically divided into two categories, multipoint conference units (MCU) and selective forwarding units (SFU).
MCUs decode, mix and transcode media streams delivering a single or a few output streams to each receiver.
SFUs do not decode or transcode media streams from participants, but forwards a selection of the incoming media streams to each receiver in some intelligent way. Not all incoming streams are forwarded, but typically more than one stream to each receiver.
Both types of media servers have their benefits and drawbacks depending on the use case, but that is outside of the scope of this document.
Proposed Solution
SMB is an SFU at its core, but has some hybrid MCU like solutions. Video streams are forwarded and not transcoded, but participants can request a mixed, transcoded audio stream instead of forwarded streams.
SMB can also be run in a mode where multiple streams are forwarded, but the contents of each stream can vary between different participants in the conference. This allows for larger conferences than SFUs can typically handle.
Written as a high performance native application with efficient resource management, SMB is designed to scale efficiently as the number of conferences and participants grow.
The main differentiators for SMB are:
Tentative Roadmap
Current State
The project is in GA state and is used in production for Symphony Meetings.
Existing Materials
Current official repository: https://github.com/SymphonyOSF/SymphonyMediaBridge
Development Team
What's next?
Upon submission of this project proposal, the FINOS team will get in touch with you to discuss next steps.
Contribution process (v. 1.0, last updated on October 2, 2020)
Below is the list of tasks that FINOS Team and the contribution author go through in order to complete the FINOS contribution process. Please do not edit these contents at contribution time!
FINOS Contrib POC
Kick-off meeting
Identify project meta (Lead: FINOS Contrib POC, Support: FINOS Marketing)
Symphony Media Bridge
Applications > Symphony Ecosystem
landscapeSymphonyMediaBridge
Maintainers, contributors and CLAs (Lead: FINOS Contrib POC, Support: FINOS infra)
Project Communication Channel(s)
Code validation (only if code is contributed) (Lead: FINOS Infra)
Approval (Lead: FINOS Infra)
Code transfer (Lead: FINOS Infra)
Admin
to all repositories to transfer<project-name>-maintainers
GitHub team and invite usersfinos-admins
andfinos-staff
team permissionsInfra setup (Lead: FINOS Infra)
finos
(best effort)Metadata update (Lead: FINOS Infra)
Announcement and follow up