About Resolution When Retrieving RawVideoData

Hello. I am developing an application using Windows SDK Ver 5.10.1.

The official Zoom app shows the WEB camera’s receiving and sending resolution.
The maximum resolution is 640 * 360, and it seems to move up and down
automatically regardless of the user’s operation.
I think this is changing automatically against network congestion.

I have the following questions about this:

  • Is there a way for organizers to uniformly control the transmission quality of participants’ web cameras?

  • Is there a way to fix the reception resolution of RawVideo with Windows SDK?
    ZOOM_SDK_NAMESPACE::IZoomSDKRenderer->setRawDataResolution() of Windows SDK did not work even if I set it.

//This code didn't fix it to 360p.

ZOOM_SDK_NAMESPACE::IZoomSDKRenderer* r;
RendDeleImpl* rdi = new RendDeleImpl();
ZOOMSDK::createRenderer(&r, (ZOOM_SDK_NAMESPACE::IZoomSDKRendererDelegate*)rdi);
r->setRawDataResolution(ZOOMSDK::ZoomSDKResolution::ZoomSDKResolution_360P);
r->subscribe(userID, ZOOMSDK::ZoomSDKRawDataType::RAW_DATA_TYPE_VIDEO);

void RendDeleImpl::onRawDataFrameReceived(YUVRawDataI420* data)
{
  wchar_t str[30] = { '\0' };
  _stprintf(str, L"w:%d h:%d\n", data->GetStreamWidth(), data->GetStreamHeight());
  OutputDebugStringW(str);
}

Hi @tatsuro_nakano,

You are correctly understanding that the video resolution you send and receive can vary based on network conditions and number of videos streaming at a given time. There is no way to control this at that granular of a level. The only setting we have is the ability to enable/disable 720p video, but that would not guarantee a minimum resolution.

Also, the code snippet you’ve provided is only for accessing raw video data, which would not apply to regular video subscriptions. For more information on the raw data feature, please see our documentation.

Thanks!

Thank you for your great information.

In the application we are developing, we wanted to get all
attendees videos with fixed resolution.

RawVideo was able to capture a separate video for each attendee.
(I think it is impossible to obtain the video of each attendee
individually in a regular video. Please point it out if it is wrong.)

However, I understand that I can’t fix the video resolution.

Let me ask you about related information.

  • Is there a list of expected video resolutions?
    As far as we have confirmed, it is the following combination:
    640x360, 320x180, 256x144

  • Is there a specification for the fps fluctuation range?

  • ZOOM_SDK_NAMESPACE::IZoomSDKRenderer->setRawDataResolution()
    What resolution does this method affect?

Hi @tatsuro_nakano,

RawVideo was able to capture a separate video for each attendee.
(I think it is impossible to obtain the video of each attendee
individually in a regular video. Please point it out if it is wrong.)

Raw data provides you access to the individual frames of video for each distinct participant. If you are just rendering video, this is probably not worth pursuing. I was just pointing out this feature to show you that the renderer you were trying to use is not relevant to regular use.

  • Is there a list of expected video resolutions?
    As far as we have confirmed, it is the following combination:
    640x360, 320x180, 256x144

We don’t have a full list of resolutions in WxH format, but we can deliver 90p, 180p, 360p, 480p, 720p, and 1080p.

  • Is there a specification for the fps fluctuation range?

This heavily depends on network conditions. Since the video is sent in realtime, it is sent over UDP. Whenever you receive a new frame, it is rendered in realtime. The FPS can be anywhere from 0-60.

As mentioned above, I don’t think that this is going to be relevant to your use case. :slightly_smiling_face:

Thanks!

Hi jon,

Thanks for the reply.
It was helpful in sorting things out.

You are very welcome, glad I could help!

Please don’t hesitate to reach back out in a new topic with any additional questions. :slightly_smiling_face: