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
Prerequisites
- Windows Meeting SDK v5.9.0 or higher
- Local recording permission for the current user
Usage
- Setup video raw data callbacks
- Setup audio raw data callbacks
- Call StartRawRecording to start
- Call StopRawRecording to stop
Methods
- Video raw data callbacks:
onRawDataFrameReceived
— triggered for each video frame - Audio raw data callbacks
onOneWayAudioRawDataReceived
— per-user audioonMixedAudioRawDataReceived
— session-wide audio (e.g what you would hear as a participant in the meeting)
- StartRawRecording — start raw recording
- StopRawRecording — stop raw recording
Recording steps
Follow these steps for either audio and/or video recording.
- Implement an instance of
IZoomSDKRendererDelegate
.- In this class you will need to respond to
onRawDataFrameReceived
to process the raw video data stored in theYUVRawDataI420
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.
- In this class you will need to respond to
Note: Do not perform heavy operations from within the raw data callbacks. Doing so may cause delayed or lost data.
- Call
StartRawRecording
inIMeetingRecordingController
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.
Once the recording has started, you will need to pass the
IZoomRendererDelegate
into thecreateRenderer
method inzoom_rawdata_api.h
.- For audio, you can pass your delegate into the subscribe function in
IZoomSDKAudioRawDataHelper
class.
- For audio, you can pass your delegate into the subscribe function in
To end the recording, you can call
StopRawRecording
inIMeetingRecordingController
.- It is also important to unsubscribe in any
IZoomSDKRenderer
andIZoomSDKRawDataHelper
instance(s) you were using.
- It is also important to unsubscribe in any
Notes
- 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.