@chriswuyiming, we’ve seen GStreamer be more effective when dealing with more complicated real-time audio/video pipelines, especially those that require dynamic reconfiguration at runtime.
You’d be able to accomplish this with GStreamer with a pipeline containing two appsrc
to ingest the raw audio and video, videorate
and videoscale
to normalize the framerate and size of the incoming video, audiorate
to normalize the sample rate of the audio and x264enc
and voaacenc
to encode the video (h264) and audio (aac) respectively, followed by an mp4mux
and a filesink
to mux the audio and video and write it to a file.
If you want to capture the screenshare as well, or have multiple participants video showing at the same time, you’ll have a significant amount of additional complexity as you’ll need to modify the pipeline dynamically while it runs, in order to add or remove the required pipeline elements.
Another alternative is to use Recall.ai for your meeting bots instead. It’s a simple 3rd party API that lets you use meeting bots to get raw audio/video from meetings without you needing to spend months to build, scale and maintain these bots.
Let me know if you have any questions!