Zoom Developer Forum

Encoding raw video frames from the Zoom SDK to JPEG

Updated at:
October 24, 2025
Written By:
Aydin Schwartz

Question

People commonly ask on the Zoom Developer Forum:

How can I decode Zoom Meeting SDK raw video frames in YUV420p (I420) to RGB and save them as PNG or JPEG using C++ or C#? Is there a recommended algorithm or sample code to convert the YUV420 planar buffer to image files?

Answer

You don’t need to write a JPEG/PNG encoder yourself (those specs are complex). Use FFmpeg, which has built-in support for converting I420 (YUV420p) raw frames to RGB and encoding to PNG/JPEG or MP4.

Key points from the Zoom Raw Data workflow: 1. Use the Windows or Mac Meeting SDK and enable Raw Data to extract the streams. 2. The SDK returns: - Video: I420 raw frames (YUV420p) - Audio: PCM 16LE raw format 3. Feed the I420 frames into FFmpeg (via its libraries or CLI) to: - Convert I420 to RGB - Encode to PNG/JPEG (or to MP4 if you want video) 4. If you’re building a meeting bot: - Run it on a server (e.g., AWS, GCP, DigitalOcean). - Launch a Zoom client instance via the SDK, capture raw data, then encode with FFmpeg. - Scale across multiple servers/instances if you need bots in multiple meetings simultaneously.

Alternatives mentioned: - Twilio to dial into meetings for recording (note: some meetings may not have dial-in enabled). - Recall.ai: a 3rd-party API that provides meeting bots to capture raw audio/video without building and maintaining the bots yourself.


Zoom Developer Forum Examples

Some examples of this question are:

Written By:
Aydin Schwartz