Window Raw Data

You can record raw video and raw audio data. This enables more flexibility than local recording for video and audio streams. In addition to session-wide audio and video access, you can access raw audio and video data for each participant (unless the participant's audio and/or video are muted).

Note that local recording is disabled when raw data recording is enabled.

The SDKs prompt users with a dialog to let them know when recording has started, as in the Zoom Client.

Raw data formats

  • Video is in YUV420p format
  • Audio is in PCM format



  • Setup video raw data callbacks
  • Setup audio raw data callbacks
  • Call StartRawRecording to start
  • Call StopRawRecording to stop


Recording steps

Follow these steps for either audio and/or video recording.

  1. Implement an instance of IZoomSDKRendererDelegate.
    • In this class you will need to respond to onRawDataFrameReceived to process the raw video data stored in the YUVRawDataI420 object.
    • Similarly, you will setup an IZoomSDKAudioRawDataDelegate for the audio raw data.
    • There are two different callbacks that can be used to receive raw data:
    • onOneWayAudioRawDataReceived for per-user audio
    • And onMixedAudioRawDataReceived for meeting-wide audio.

Note: Do not perform heavy operations from within the raw data callbacks. Doing so may cause delayed or lost data.

  1. Call StartRawRecording in IMeetingRecordingController

Note that this will trigger the recording consent dialog for all users if the current user has permission to start the recording.

  • A raw recording is a type of local recording, so listen for the onRecordingStatus callback to determine when the recording has successfully started.
  1. Once the recording has started, you will need to pass the IZoomRendererDelegate into the createRenderer method in zoom_rawdata_api.h.

    • For audio, you can pass your delegate into the subscribe function in IZoomSDKAudioRawDataHelper class.
  2. To end the recording, you can call StopRawRecording in IMeetingRecordingController.

    • It is also important to unsubscribe in any IZoomSDKRenderer and IZoomSDKRawDataHelper instance(s) you were using.


  • The usage or actual handling of the raw data may vary based on your use case.
  • The SDK only provides the raw data. Implement only the raw data video or audio callbacks that you need.
  • We do not recommend that you perform any heavy handling within the callback as it will delay the callback being triggered, which may result in loss of data.

Need help?

If you're looking for help, try Developer Support or our Developer Forum. Priority support is also available with Premier Developer Support plans.