Low FPS issue between React Native and Web

Subject: Low FPS issue between React Native and Web (Zoom Video SDK)

Hi,

I’m experiencing a significant FPS drop when using Zoom Video SDK between React Native and Web clients.

  • Web → Web: video runs smoothly at ~24–30 FPS (expected)

  • React Native → Web: video drops to ~7 FPS, very choppy

Environment

  • Web SDK: @zoom/videosdk@^2.2.12

  • React Native SDK: @zoom/react-native-videosdk@^2.2.5

  • Devices tested:

    • MacBook Pro M1 Pro, 16 GB RAM

    • iPhone 16 Pro Max

Steps to reproduce

  1. Join a session with one user on Web.

  2. Join the same session with another user on React Native.

  3. Enable video streaming between them.

  4. Compare FPS on both ends.

Expected

React Native → Web video FPS should be consistent with Web → Web (~24–30 FPS).

Actual

React Native → Web video FPS is only ~7 FPS, causing noticeably degraded quality.

Could you please confirm if this is a known limitation or if there are configuration options to improve FPS on React Native?

Hey @S.Maksym

Thanks for your feedback.

Could you share some problematic session IDs with us for troubleshooting purposes?

Thanks
Vic

Hey Vic,

Sure — here are a couple of problematic session IDs we encountered:
Web: 5b7c0a89-6c42-42de-a132-ccfcdfa9c00f
React Native: 1771d4a1-9c1c-4f51-b0c5-c3efc1c2932e

Let me know if you need any more details from my side.

Thanks,
Maksym

Hey @S.Maksym

Thanks for your sharing.

It seems this is not a valid session ID. You can retrieve it from the dashboard → sessions → past sessions, or if you are currently in a session, you can get it via client.getSessionInfo().sessionId.

Thanks
Vic

I’m sure this session is valid. I would love to attach a screenshot as proof, but the platform does not allow it.

Hi @S.Maksym

The session ID has a Base64-like format rather than the UUID-style format you provided.

An example of a typical session ID:

NqnbCwjjSYCCnrd7T/kTDw==

The session ID is generated by Zoom, not set by the developer as a session name or topic.

Thanks
Vic

Please accept my apologies. Here is valid sessions.

Web: VJYLHoYiR12bMQ9NGK5vYg==
RN: KVpBtaHTQ1Sl1Kphz5IZCA==”

Hi @S.Maksym

RN: KVpBtaHTQ1Sl1Kphz5IZCA==

We checked the logs and indeed the FPS is relatively low, but this session was quite short. Could you provide a longer session ID where the issue occurs?

Thanks
Vic

Hi, Vic
this session is around 2 minutes long.

RN: fc9HDKZVRnS5rqf+E4sRRA==

Hi @S.Maksym

fc9HDKZVRnS5rqf+E4sRRA==

After analyzing the logs, we found that during the period of low FPS, the downlink max loss was relatively high. However, it gradually decreased and stabilized afterward, with the FPS remaining above 25.

Thanks
Vic

Hi Vic
I really appreciate your support.
Here is a session of around 3 minutes between the web platforms, where a low FPS issue occurs.

Web: sh/EWJCNQV65NTwdralbYw==

Hi Vic
I really appreciate your support.
Here is a session of around 3 minutes between the web platforms, where a low FPS issue occurs.

Web: sh/EWJCNQV65NTwdralbYw==

Here a RN session with the same issue
RN: vWouOcaURLqpyfw+RMaoxw==

Hi @S.Maksym

sh/EWJCNQV65NTwdralbYw==

After analyzing the logs, we found the FPS is normal as expected(25 fps).

Thanks
Vic

Hi @S.Maksym

We found that on the latest macOS 26, Chrome has some issues when using WebCodec, which affects video FPS.

We are currently investigating this issue together with Google and will keep you updated.

Thanks
Vic

Thanks for sharing the details! This drop in video quality from React Native to Web looks like a real problem. Hopefully Zoom can confirm if this is a known issue or suggest a fix to improve FPS.