Detect video render problems in ongoing session (heartbeat)

Description
We use Zoom Video SDK to run meeting sessions and support both participant’s audio and video. From time to time in the ongoing session, we encounter a problem with video freezing/disappearing/grey rectangle instead of the actual video. Sometimes there is an error in console “WebGLContext lost”. The reasons so far are not clear. We are thinking of adding some sort of heartbeat service that would check if the video is ok and re-initialize the broken video.

We can get all participants in our room by calling function getAllUser(): Array<Participant>; SDK method. We can detect if the user publishes video into the room by checking Participant.bVideoOn property. But there seems to be no way to check if the participant correctly renders video on local canvas. Do you have any bits of advice here on how we can organize such a service?

As a post note we do validate renderVideo() method result, no success here means no video. But sometimes the video fails after renderVideo() returns success and we would like a verification service to be in place.

Which Web Video SDK version?
1.1.4

1 Like

Hey @seth

Thanks for your feedback.

When did you encounter the WebGLContext lost errors? The known case is the frequent creation and destruction of the canvas. Try to reuse the canvas element (use display:none to hide it instead of destructing it), hope this may help you.

Thanks
Vic

Thanks @vic.yang! We do destroy canvas and thank you for the feedback and advice, we will consider it.

However returning to the original question, is this possible to detect the failure? As sometimes we receive video problems upon existing session when entering for the first time. And during view switch canvas is destroyed, on first entry they are created only as no view switch happens. We hope this heartbeat service can help us repairing those.

Hey @seth ,

Take a look at these event listeners:

https://marketplacefront.zoom.us/sdk/custom/web/modules.html#event_video_capturing_change

https://marketplacefront.zoom.us/sdk/custom/web/modules.html#event_peer_video_state_change

Let me know if that helps! :slight_smile:

Thanks,
Tommy

1 Like

@tommy
Let me respond on Seth’s behalf.
Could you confirm any of these event triggers when render to canvas breaks, in addition to actual video stream “regular” events like camera was disabled etc. This is not our experience but maybe we missed something. Also if possible we are looking for solution not dependent on events, so we can read-see-know the state as it is at this moment of time.

Hey @seth

Thanks for your feedback.

We have no detailed API for detecting the rendering status of the canvas so far. There are several factors that cause abnormal rendering, such as a slow network, high CPU/memory usage, improper canvas status, etc.

We will add these statistic and analytical APIs into the feature roadmap.

Thanks
Vic