Red5 Pro Mix-Minus Audio Engine
The mix-minus audio engine is used in conjunction with a Mixer to create video conferences where participants receive a single mixed video stream and a mixed minus version of the conference audio to prevent feedback. In addition to the mix-minus feature, the implementation determines the three loudest participants and provides only their audio to the presenters. The audio mix-minus feature is meant to be used with a Mixer that will create the composite video returned to conference participants. The current mix-minus implementation supports WebRTC clients using Chrome. It also requires the live streams of a conference to be published to the Origin of the final mixer in a composition to allow it to generate the mix-minus streams.
The following components are required to use the Red5 Pro Mixer:
- HTML5 Page for the Mixer
- Optional Editing Front-end
- Optional Editing Back-end
These components and their implementation depend on the use case and requirements of the application. To help developers get started, Red5 Pro provides a set of testbeds that showcase possible implementations for different use cases.
This composition requires a single HTML5 page that is used for creating the composition. The page determines the look and content of the composite stream created by the Mixer. The Mixer loads this page and publishes it and its content as it would a screen share stream. Therefore, all content displayed on the page will also be displayed in the composite stream.
As a simple use case, consider using the Mixer to create a composite stream that includes two live streams. This is implemented using an HTML5 page that includes two players that subscribe to the streams to show in the composite stream. At any time the page will render the two live streams and the mixer will capture and broadcast these into a single composite stream.
For simple use cases, where the content of the composite stream does not change over time, a single HTML5 page is sufficient.
Complex use cases where the composite stream is updated in real-time involve an HTML5 page for the mixer that can change its content based on commands sent by external processes. An example of such a use case is a production scenario where the composite stream is the program feed for the audience and is managed by one or more Editors that control the content of the feed in real-time.
In the example above the editing front-end is required to allow Editors to remotely control the HTML5 page loaded into the Mixer. Similarly, the editing back-end is required to receive the commands from the Editors and forward them to the loaded HTML5 page.
Red5 Pro provides a set of testbeds that showcase possible implementations for the Front-end and Back-end for different use cases.