Issue receiving remote participants raw video

Facing issue receiving remote participants raw video data. I have implemented the IZoomVideoSDKDelegate and IZoomVideoSDKRawDataPipeDelegate interfaces.

On user join and user video status changed I am receiving the call back. From list of users received in OnUserJoin call back, I am taking the remote user pipe from User object and subscribing to the user pipe by passing my custom video sdk raw data pipe delegate. Before subscribing I am checking video statistics like height and width and based on the height and width, I am passing the subscription resolution but I am getting both height and width as zero. I am also receiving onRawDataFrameReceived call back but in that call back, buffer length is zero.

VideoPipe VideoNetworkStatus shows normal
VideoPipe isOn shows true
VideoPipe DeviceName shows username

please let me know how to resolve this

@chunsiong.zoom

currently I am able to receive raw video feed after setting sdk obj param indirectRawData = false, but I am getting 160x90 resolution 10 fps even though I have subscribed for 1080P

any suggestions?

@abdulwazeed , you might only be able to subscribe to 1 user at 1080p.

How many users do you estimate to have?

If you have 5 users, you might be able to subscribe
1 x 720p
4 x 360p

If you have much more users, you can subscribe up to 34 users at 160x90 each

Hi @chunsiong.tan
Currently, In my sample application, I have just two user per session, one is the linux application which I am developing and the other user is a remote user joining through a windows sample application.

@abdulwazeed ,

There are automatic compression which is done, and these are affected by various factors.
There should be higher resolution when there is better network quality, and compute power available on the sender’s side.

It might be better to test it with 3 users instead of the current 2 users.

1 Like

Hello @chunsiong.zoom

we are working with session containing 3 users, each user has full hd camera. network bandwith is over 100 Mbps for all the three users. the users are :- 2 on windows application and 1 on linux application. We are getting only 160x90p resolution on linux application for the other two users, even though we are subscribing for 1080p resolution. Is there anything we can do to get better resolution in our linux application.

@abdulwazeed, I would recommend subscribing to 720p in this case.

Only for 1:1 call, and if the conditions are met, you can have up to 1080p resolution.

Another factor would be the number of core and memory which is made available to the SDK.

In this case, you might want to scale up the CPU and RAM if you are running this in a container environment.

By the way, are you running any complex algorithm when processing / saving the raw video?

Will try subscribing with 720p. I am not using a container environment, using a 12 core 64 gb ram server for linux application. Not using any complex algorithm, currently just on frame received writing the yuv data to file.

1 Like