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
IZoomSDKVideoSource
interface. 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
IZoomSDKVideoSourceHelper
to 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.setExternalAudioSource
method to feed audio into the meeting. TheonMicStartSend
event 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: