Question
People commonly ask on the Zoom Developer Forum:
How can I stream a bot’s video or avatar into a Zoom meeting? Which SDKs allow for sending video and audio to the meeting, and are there examples available for implementation?
Answer
To stream a bot’s video or avatar into a Zoom meeting and send audio, you can utilize the Zoom Meeting SDK on Linux. Here is a comprehensive guide to achieve this:
- Join the Meeting:
- Authenticate and join the target Zoom meeting using the SDK. Wait until the meeting status is
MEETING_STATUS_INMEETING.
- Implement a Custom Video Source:
- Create a class that implements the
IZoomSDKVideoSourceinterface. This will allow you to feed video frames from a file, a generated avatar, or any other source instead of a physical webcam. - Use the
IZoomSDKVideoSourceHelperto register your custom video source by callingsetExternalVideoSource(yourVideoSource), and ensure to unmute the video.
- Sending Video Frames:
- In your implementation, handle the
onInitialize(IZoomSDKVideoSender* sender, IList<VideoSourceCapability>* support_cap_list, VideoSourceCapability& suggest_cap)callback to store the sender instance for later use. - Use the
onStartSend()callback to begin sending frames usingm_pSender->sendVideoFrame(...). Make sure the frames are in the YUV420 format and match the supported capabilities listed insupport_cap_list.
- Handle Audio Separately:
- For sending audio, you will need to implement a virtual microphone. Use the
IZoomSDKAudioRawDataHelper.setExternalAudioSourcemethod to feed audio into the meeting. TheonMicStartSendevent is crucial for managing the microphone's audio flow.
If you prefer not to build and maintain this infrastructure yourself, consider using third-party services like Recall.ai, which provide meeting bots that can handle audio and video without the need for extensive development.
Zoom Developer Forum Examples
Some examples of this question are:
