Lengths of recorded radio and video are not the same, and out of sync while merging them together

@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!