<div dir="ltr"><div>Hi Michael,</div><div><br></div><div>Thanks a lot for the quick reply . To keep the server load less, SFU is used for Video and MCU for audio so that the number of audio decoding that the client has to do will be reduced . I was thinking of optimizing the number of audio mixers used in MCU architecture .From your explanation , i get that AEC  needs to be used to cut off participant's own audio. Again, this method would impose using AEC on each client.  <br></div><div><br></div><div>Regards</div><div>Pradeep<br></div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Wed, Dec 25, 2024 at 11:54 PM Michael Gruner <<a href="mailto:michael.gruner@ridgerun.com">michael.gruner@ridgerun.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto">Hi there, happy holidays.<div><br></div><div>What you describe is a well known topology named MCU: Multipoint Control Unit. There are others worth exploring, like SFU: Selective Forwarding Unit or Mesh. I know this is not was what you asked, but I hope it eases your research.</div><div><br></div><div><div style="display:block"><a href="https://medium.com/@toshvelaga/webrtc-architectures-mesh-mcu-and-sfu-12c502274d7" target="_blank">https://medium.com/@toshvelaga/webrtc-architectures-mesh-mcu-and-sfu-12c502274d7</a><br></div></div><div><br></div><div>Now to your question, the MCU approach would be to have one audiomixer per client. Each client audiomixer will mix all the other channels, except itself. This is easy to implement, but will load tremendously the server. It might not more manageable with audio only.</div><div><br></div><div>The SFU approach would be not to use an audiomixer in the server at all. Each client would receive N network stream, each for every other clients. These are then mixed locally by each client. This is very lightweight in the server, but consumes exponentially more network bandwidth which, again, may be manageable with audio only. </div><div><br></div><div>If, for whatever reason, you need to filter out using DSP techniques, you may look into echo cancellation. Check the work by Nicholas in</div><div><br></div><div><a href="https://www.collabora.com/news-and-blog/blog/2016/07/08/gstreamer-echo-canceller/" target="_blank">https://www.collabora.com/news-and-blog/blog/2016/07/08/gstreamer-echo-canceller/</a></div><div><div style="display:block"><br></div><div style="display:block">Note that this is not quite the intended purpose and, personally, is not the approach I would go for.</div></div><div><br></div><div>Finally, please recall that you'll likely get more answers in the gstreamer discourse:</div><div><br></div><div><div style="display:block"><a href="https://discourse.gstreamer.org/" target="_blank">https://discourse.gstreamer.org/</a></div></div><div><br id="m_1543562250146385375lineBreakAtBeginningOfSignature"><div dir="ltr">Michael</div><div dir="ltr"><a href="http://www.ridgerun.com" target="_blank">www.ridgerun.com</a></div><div dir="ltr"><br><blockquote type="cite">On 25 Dec 2024, at 07:27, Pradeep Acharya via gstreamer-devel <<a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.freedesktop.org</a>> wrote:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr"><div dir="ltr"><div>Hi All,</div><div><br></div><div>I'm new to developing audio conferencing solutions on server side and implementing the same using audiomixer plugin. The output of the mixer has audio mixed that is received from all participants. The mixed audio has to be transmitted to all participants.  Before transmitting mixed audio, participants' audio has to be filtered out from the output generated by the audio mixer and sent to that participant. Is there any plugin that checks and filters out samples from the output generated by audiomixer plugin? If there is no such plugin , kindly let me know other possible solutions for this.</div><div><br></div><div>Thanks & Regards</div><div><br></div><div><br></div><div></div><div><br></div></div>
</div></blockquote></div></div></blockquote></div>