"Why am I receiving raw recordings from only two participants, even though there are three participants present? I have implemented a loop to render video for all participants and create separate files based on their participant IDs

Device (please complete the following information):

  • Device: [HP elite pad]
  • OS: [e.g. Windows 10]

This is code snippet used for rending all participants video
// Declare videoRenderer before the loop
ZOOM_SDK_NAMESPACE::IZoomSDKRenderer* videoRenderer = nullptr;

	// Added for raw data access
	// VIDEO portion
	m_pParticipantsController = SDKInterfaceWrap::GetInst().GetMeetingService()->GetMeetingParticipantsController();
	int participantCount = m_pParticipantsController->GetParticipantsList()->GetCount();

	for (int i = 0; i < participantCount; i++) {
		int participantID = m_pParticipantsController->GetParticipantsList()->GetItem(i);

		// Create a separate video renderer for each participant
		RawVideoDelegate* rawVideoDelegate = new RawVideoDelegate();
		SDKError err2 = createRenderer(&videoRenderer, rawVideoDelegate);
		if (err2 != SDKERR_SUCCESS) {
			cout << "Error occurred";
			// Handle error
		}
		else {
			// Set the resolution for the video renderer
			videoRenderer->setRawDataResolution(ZoomSDKResolution_1080P);

			// Subscribe to the participant's raw video by their userID
			videoRenderer->subscribe(participantID, RAW_DATA_TYPE_VIDEO);
			// This will trigger callbacks in onRawDataFrameReceived(...) within RawVideoDelegate.cpp
		}
	}
}

Below code snippet used for naming raw video record file as output.participantid
//added for raw data access
void RawVideoDelegate::onRawDataFrameReceived(YUVRawDataI420* data)
{
cout << “onRawDataFrameReceived.” << endl;

cout << "width." << data->GetStreamWidth() << endl;
cout << "height." << data->GetStreamHeight() << endl;


// traditional method 1


int participantId = data->GetSourceID();

// Create a filename based on the participant's name.
std::string filename = "output" + std::to_string(participantId) + ".yuv";

@manikantarhong , do they all have their video turn on, and for the 3 participants, does it include the recording SDK?

“Yes, it includes the SDK, and it includes the video of one participant, but the video of another participant is not included. It only generates 2 files even though there are 3 participants(including the SDK).”

	// Declare videoRenderer before the loop
	ZOOM_SDK_NAMESPACE::IZoomSDKRenderer* videoRenderer = nullptr;

	// Added for raw data access
	// VIDEO portion
	m_pParticipantsController = SDKInterfaceWrap::GetInst().GetMeetingService()->GetMeetingParticipantsController();
	int participantCount = m_pParticipantsController->GetParticipantsList()->GetCount();

	for (int i = 0; i < participantCount; i++) {
		int participantID = m_pParticipantsController->GetParticipantsList()->GetItem(i);

		// Create a separate video renderer for each participant
		RawVideoDelegate* rawVideoDelegate = new RawVideoDelegate();
		SDKError err2 = createRenderer(&videoRenderer, rawVideoDelegate);
		if (err2 != SDKERR_SUCCESS) {
			cout << "Error occurred";
			// Handle error
		}
		else {
			// Set the resolution for the video renderer
			videoRenderer->setRawDataResolution(ZoomSDKResolution_1080P);

			// Subscribe to the participant's raw video by their userID
			videoRenderer->subscribe(participantID, RAW_DATA_TYPE_VIDEO);
			// This will trigger callbacks in onRawDataFrameReceived(...) within RawVideoDelegate.cpp
		}
	}
}

this is the code snippet used for rending all paritcipants video present in meeting

@manikantarhong , ok I understand.

You can only subscribe to 1 1080p video.
If you want more raw user’s video, you have to reduce the resolution per user.

Thank you so much for your solution ,got all participants video.

1 Like

@manikantarhong I don’t have the actual figures, but the guidelines are, the more user video you subscribe, you should proportionally reduce the size of video subscribed to.

Hi, data->GetSourceID() is same as m_pParticipantsController->GetParticipantsList()->GetItem(i) ?

@manikantarhong

GetSourceID is the UserID. The code which you have shared is the User Object.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.