Web SDK with WebCodecs on 1.9.8 not showing user/participant video

@mijodu

Here was what @tommy said

We will be releasing 1.9.9 on Monday with the Webcodecs fix for Chrome 93 and 94.

And it is US time I think

Hey @lfrancia, cheers - I got my time zones mixed up so thanks for pointing that out.

@mijodu

Lol :grinning_face_with_smiling_eyes:
Hopefully, they will release anytime soon today.

Hi @tommy,

I’m sorry to keep bothering you but will Web SDK 1.9.9 still be released today (Monday in the US)?

Regards,
Lara

Hey @lfrancia , @mijodu ,

Apologies for the delay. We are planning on releasing 1.9.9 tonight.

https://marketplace.zoom.us/docs/changelog

Thanks,
Tommy

Hey @lfrancia , @mijodu , @developer-whova , @nvivot , @giancarlo1 , @IanIsDeveloping , @User53 ,

Web Meeting SDK 1.9.9 has been published to NPM and our CDN now. It contains the WebCodecs fix for Chrome 93 and 94.

We will publish the release notes shortly: https://marketplace.zoom.us/docs/changelog

Thanks,
Tommy

1 Like

@tommy thanks a bunch. Just tested this on our platform and it’s working again both with current chrome and in canary from my initial tests. Cheers!

3 Likes

Thanks @mijodu! Glad to hear that fix helped to resolve the odd behavior reported.

All the best,
Donte

Hi @tommy,

Thank you. It looks like the issue has been fixed by web sdk 1.9.9. Video is now showing on Mac even on Chrome 94.

By the way, during testing, we were still experiencing a delay in showing the video of 5 to 10 seconds on Chromebook and 2 seconds on Mac. We will just report it separately.

Thanks,
Lara

Hi,

Just for our clarification, do we still need to put the SharedBuffer Origin Trials and Web codecs headers in our code after updating the SDK?

Also, is this only for Mac devices? we were facing issues on Windows also. (The view button was replaced by the full screen icon)

Regards
Atul

Hey @helloparent ,

Just Shared Array Buffer and WebAssembly SIMD. :slight_smile:

It is for all devices using Chrome .

Thanks @lfrancia !

Thanks,
Tommy

Hi

We did the below steps:

  1. Updated Web SDK to 1.9.9
  2. Put the headers Shared Array Buffer and WebAssembly SIMD in our code

The command typeof SharedArrayBuffer===‘function’ returns true. This came true only after putting the headers in nginx.conf.

We are able to see the View button that switched between Speaker/Gallery View. However, we are not able to Join Audio or Camera.

We are using React JS platform and don’t have any meeting.html or helper.html files.

@tommy @MaxM @lfrancia pease suggest what are we missing now?

Regards
Atul

Do you specify the SIMD feature as parameter on the prepare call ? (same for the web codec if you use it)

ZoomMtg.prepareJssdk([‘WebAssembly SIMD’]);

Would be easier to figure what can be wrong if you provide some code example. Only the part related to the web SDK (meta tag + react js code)

1 Like

Hi @nvivot

We tried adding this parameter also, but the issue remains the same.

Adding snapshots of the code example.



Don’t you have some meta tag definition somewhere (or headers) where you indicate the origin trial you are using on your app ?

Example:

Note: You will need one origin trial per domain name used to access your application. That’s why in my example there are twice per origin trial since we have two different domains to access our application.

But i guess your application was working before switching on the 1.9.9, is that correct ? Which version were you using before that ? I’m curious cause these two origin trial are almost mandatory since several weeks / months now, and should be used since version 1.9.0 if my memory is correct (for SIMD)

Another thing: what version of Chrome are you using for your tests ?
Could you check whether you have javascript errors when entering the meeting on your app ? (similar to what has been reported here for example and that would explain why you cannot join audio & video)

1 Like

Hi @helloparent,

Apologies for not replying sooner. nvivot, who is my colleague, already shared how we did it.

SharedArrayBuffer stopped working (video would stop working) from Chrome 92 if web isolation is not implemented on your application yet. So, as a temporary workaround, we used the SharedArrayBuffers Origin Trial on our application. As nvivot pointed out, you need to use the meta tag for the origin trial token. The token is per domain. So, if you have different environments (local, dev, staging, production), then you need to get tokens per each environment domain.

Regards,
Lara

1 Like

Thanks @lfrancia, @nvivot for the response.

We have setup the SharedBufferArray and WebSIMD trials and added them to the nginx.conf file. We have also added the COEP and COOP headers as below:

We are using Chrome 93 for testing. Did not see any errors as mentioned by you in the console.

Please suggest.

Hey @helloparent ,

We have re written the Chrome Performance Improvement doc to make it more clear:

Please let us know if this helps! :slight_smile:

-Tommy

So, you officially do not support the credential less ? I though you mentioned it but in the end it’s not in the linked documentation.

Anyway, for anybody who want to understand web isolation & the different modes available, just go on chrome documentation. You won’t get a better and less confusing documentation than from the people who made it.

@helloparent
In your application, are you using 3rd party libraries that communicate with 3rd party services, or you own in-house services, that are not compliant with web isolation (they do not returns the expected headers in their HTTP response) ?
You should have some warning or error indicating that at least one part of your application cannot be isolated and therefore the web isolation is deactivated.
In such situation, even if you have the web isolation on your application, it will be dropped because of such 3rd party calls from your application, and because of the web isolation being deactivated, the SharedArrayBuffer will also be deactivated, making the Zoom Web SDK not working.

Now… if you have the SharedArrayBuffer Origin Trials, then you do not need to implement web isolation. Our application is working without.
What we did not test (and it seems to be your situation) is the usage of both the web isolation with potentially a 3rd party service not compliant (that would then affect the shared array buffer feature, with the shared array buffer origin trial. I’m not sure what would be the priority for Chrome between:

  • the deactivation because web isolation is deactivated
  • the activation because you use the origin trial

So, in your position, i would first remove the web isolation (since you use the origin trial), and test your application to:

  • check whether it works without the web isolation
  • check if you have a warning in the console log saying that the shared array buffer feature will require web isolation from chrome 93 (something like that, i don’t remember exactly the log message)

If you application works (audio & video), then you have your answer. If not, the problem is somewhere else and not related to web isolation.

Hi, @nvivot,

Thanks so much for sharing your insight - that was really helpful! We’re so appreciative of your feedback and help identifying issues. Massive gratitude to you!

Best,
Donte