This document describes the browser compatibility and known issues for the Web software development kit (SDK).
The following are the limits for the Web SDK. For the best experience, update your browser to the latest version.
Note that video currently supports only H.264 encoding. VP8 encoding is not supported. This affects the SDK's support for certain platforms, operating systems, and browser versions, as noted below.
Desktop
Browser compatibility
Operating system | Browser | Stream pulling | Stream ingest | Screen sharing |
Windows | Chrome | 69+ | 69+ | 69+ |
Edge | 80+ | 80+ | 80+ | |
Firefox | 69+ | 69+ | 69+ | |
macOS | Chrome | 69+ | 69+ | 69+ |
Edge | 80+ | 80+ | 80+ | |
Firefox | 69+ | 69+ | 69+ | |
Safari | 11+ | 11+ | 13+ |
Known issues and limits
On Windows devices, if you use a microphone with a deviceId of "default" or "communications", audio capture from the original microphone may be interrupted when you connect and then disconnect a new microphone. We recommend that you avoid using microphones with a deviceId of "default" or "communications". Chrome issue
On some Windows devices, screen sharing in Chrome 111 or later may cause mouse ghosting or flickering. This issue cannot be resolved at this time and requires a fix from Chrome. Chrome issue
On Mac devices, the virtual camera driver for Mersive Solstice software can prevent Chrome from retrieving the camera list, which stops camera capture. You can resolve this issue by removing the virtual camera driver. Chrome issue
On macOS, Chrome 84 may experience sudden frame rate drops that cause video stuttering. To resolve this, upgrade your browser to the latest version. Chrome issue & Chrome issue
Firefox supports a video frame rate of only 30 fps. This frame rate cannot be adjusted.
Firefox dynamically installs the H.264 codec. Real-Time Communication is unavailable until the installation is successful. You can use the getSupportedCodec method to check the installation status. If H.264 is not included, instruct users to open about:addons in Firefox, go to the Plugins tab, and check if OpenH264 is installed. You can start the call after the installation is complete. Firefox issue
Firefox does not support Coordination of Video Orientation (CVO). As a result, subscribed videos from mobile devices may have an incorrect orientation. Firefox issue
Safari does not support switching the audio output to a different speaker.
Safari 11 supports only resolutions of 480p and higher.
In Safari 14.0.1 and 14.2, audio may be intermittent or contain noise. To resolve this, upgrade your operating system. Webkit issue
Chrome 81+, Safari, and Firefox require media device permissions before they can access devices. This affects methods related to retrieving device information.
Mobile
Browser compatibility
Operating system | Browser | Stream pulling | Stream ingest | Screen sharing |
Android | Chrome | 69+ | 69+ | Not supported |
WeChat built-in browser (including Mini Programs) | 7.0.20+ | 7.0.20+ | Not supported | |
Alipay mini program | 10.5.26+ | 10.5.26+ | Not supported | |
iOS >= 12.2 and <14.3 | Chrome | 69+ | Not supported | Not supported |
WeChat built-in browser (including Mini Programs) | 8.0.13+ | Not supported | Not supported | |
Safari | 11+ | 11+ | Not supported | |
Alipay mini program | 10.5.26+ | Not supported | Not supported | |
iOS>=14.3 | Chrome | 92+ | 92+ | Not supported |
WeChat built-in browser (including Mini Programs) | 8.0.13+ | 8.0.13+ | Not supported | |
Safari | 11+ | 11+ | Not supported | |
Alipay mini program | 10.5.26+ | 10.5.26+ | Not supported |
For WeChat and Alipay mini programs, you can use the built-in web-view tag to set the src property and integrate an online page developed with JavaScript. For more information, see the official documentation from the respective vendors, such as the web-view for WeChat mini programs and the web-view for Alipay mini programs.
Known issues and limits
Due to H.264 licensing restrictions, the SDK does not support some versions of the Chrome browser on Huawei devices or browsers that use the Chrome WebView kernel.
Versions of Android System WebView earlier than M79 cannot use H.264 decoding and are therefore incompatible with the SDK. Instruct users to upgrade to M79 or later. Chromium issue
On some Android 12 devices, using Chrome or a Chromium-based browser version 97 or earlier may cause a corrupted display. This is because of a video encoding backoff in the Chromium Web Real-Time Communication (WebRTC) module. To resolve this, upgrade your version of Chrome. Chromium issue
On Android devices, creating two camera video tracks causes an error. To avoid this, you must first call close or setEnabled(false) to release the existing video track.
On some Xiaomi and OnePlus models, you may not hear remote users when using a Bluetooth headset for a call. This may be caused by an error in Chromium when switching Bluetooth device protocols. We recommend adding a notification to inform users that Bluetooth headsets may experience audio loss.
On an Android device, if you connect a Bluetooth headset while audio is being captured and sent, the remote user's audio may continue to play through the speaker. Chromium issue
If you join a channel with another user on an Android device using Chrome 119 without a headset, you will hear an echo of your own voice. To resolve this, upgrade your browser version. Chromium issue
The WeChat browser does not support autoplay. Even if a user manually resumes playback, it will not autoplay on subsequent attempts. This may be due to an issue with how the WeChat browser handles autoplay behavior. In the autoplay-failed event, instruct the user to resume playback.
On iPhone 14 models running iOS 16, the audio capture feature does not function correctly. Use setMuted instead of setEnabled to control sending, and do not call close to release the track. Webkit issue
Safari does not support capturing audio and video from multiple tabs simultaneously. If you attempt to do so, the previous tab will stop capturing, and the remote stream may show a black screen with no audio. To work around this, stop capturing when switching tabs and resume when the tab is brought back into focus. Webkit issue
iOS 13 and 14 do not support video encoding at resolutions higher than 720p. To resolve this, set the video resolution to 720p or lower, or upgrade to iOS 15 or later.
On iOS, repeatedly capturing the same type of media data may cause the initial capture to be muted or display a black screen.
On iOS, when a browser or application is moved to the background, the local user's video appears as a black screen to remote users. This is an official restriction from Apple. Apple documentation
On iOS 14.4 to 15.x, when an application with an embedded WKWebView is moved to the background, the sending of the audio stream is interrupted. Apple documentation
On Safari 14.2, audio may contain noise. To resolve this, upgrade your operating system. Webkit issue
On iOS 15.1.x, browsers and applications with an embedded WKWebView crash after sending a video stream. This is because of a WebKit H.264 encoding backoff in this OS version. To resolve this, upgrade your operating system. Webkit issue
On iOS 15.x, after being interrupted by another application, browsers and applications with an embedded WKWebView may not automatically resume playback. Instruct users to refresh the page. Webkit issue&Webkit issue
On iOS 15.x and 16.x, video playback may occasionally show a black screen. To mitigate this, reduce CSS modifications to the video element and its parent elements. Webkit issue
On iOS 15.x, audio playback with a Bluetooth headset may occasionally be distorted. We recommend adding a notification that Bluetooth headsets may cause issues, or instructing users to upgrade the operating system. Webkit issue
On iOS 15.0 to 15.3, users of browsers and applications with an embedded WKWebView may experience low volume from remote audio. To resolve this, upgrade your operating system. Webkit issue
On iOS 16.0, after rotating the screen in a specific direction, the video image is stretched. The WebRTC module in this version of WebKit has a feature backoff, and its support for CVO over RTP does not function correctly. We recommend adding a notification message about this issue.
iOS does not support volume adjustment using the setVolume method.
iOS does not support sending video streams with a resolution of 1080p or higher.
Vue 3 reactivity and Proxy
Because Vue 3 uses Proxy for reactivity, you must use Vue's markRaw to set SDK instances, such as Client, LocalTrack, and RemoteTrack, as non-reactive properties. Applying a Proxy to SDK instances can cause the SDK to function incorrectly.