Broadcasting to Openvidu from a Mediasoup C++ client


We want to send high quality video/audio from special cameras to OpenVidu sessions.

We have installed Openvidu server and configured it to use Mediasoup as the video backend. This seems to be working OK, we can videoconference using browsers and mediasoup-controller is running.

Mediasoup project has a C++ client libmediasoupclient and they also have an example C++ broadcaster app and a demo server:

Using these resources, we have created a custom C++ application and are able to broadcast both video and audio from our own app to the mediasoup-demo server instance. We can also view the streams in browsers using mediasoup-demo project’s web app by connecting to the same server IP and room ID as the C++ app.

Our next task is to publish the streams to OpenVidu session via Mediasoup backend. However, we couldn’t find information on how OpenVidu actually operates with Mediasoup:

  • How do we communicate with Mediasoup that is integrated to OpenVidu?
  • How do we identify a particular OpenVidu session / how this maps to Mediasoup rooms?
  • What steps do we need to perform to publish mediasoup-demo compatible streams to OpenVidu?

All information is much appreciated!

Answering to my own question:

I got it working by combining the principles of OpenVidu Android example (OpenVidu REST API, WebSocket API, and native WebRTC) with some C++ implementation details from libmediasoupclient.

In practice, I ported the key elements of OpenVidu Android example from Java to C++ and used self compiled Google libwebrtc without MediaSoup libraries.

What an interesting approach… is it open source?