macOS 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 ZoomSDKRendererDelegate.
    • In this class you will need to respond to onRawDataReceived to process the raw video data stored in the ZoomSDKYUVRawDataI420 object.
    • Similarly, you will setup an ZoomSDKAudioRawDataDelegate 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 ZoomSDKMeetingRecordController

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 onRecordStatus callback to determine when the recording has successfully started.
  1. Once the recording has started, set up a ZoomSDKRenderer, set your ZoomSDKRendererDelegate as the delegate property, and subscribe to the user via the subscribe method.

    • For audio, you can set your ZoomSDKAudioRawDataDelegate as the delegate property as well, but do not need to provide a userId as all callbacks will go through the same ZoomSDKAudioRawDataHelper instance.
  2. To end the recording, you can call stopRawRecording in ZoomSDKMeetingRecordController.

    • It is also important to unsubscribe in any ZoomSDKRenderer and ZoomSDKAudioRawDataHelper 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.