Video Javascript SDK Release Notes
v2.34.1 — May 2026
Fixed
Fixed an issue where using publisher.setPreferredResolution() in combination with a background filter (blur or replacement) caused the published resolution to change to an unexpected value. The publisher now maintains the intended resolution when a background filter is applied.
Fixed an issue where toggling video off and back on (publishVideo(false) followed by publishVideo(true)) while a background filter (blur or replacement) was active could briefly expose unfiltered frames to remote participants. The SDK now ensures only filtered frames are sent after video is re-enabled.
Fixed a change introduced in v2.34 where the TypeScript definition of OT.hasMediaProcessorSupport() incorrectly required a mediaType parameter. The mediaType parameter is now optional, restoring compatibility with existing code that calls OT.hasMediaProcessorSupport() without arguments.
v2.34.0 — May 2026
Added
Added new network condition insights. This version adds new network condition metrics to the client observability feature, providing detailed visibility into network performance and quality indicators. These metrics complement the publisher and subscriber statistics introduced in 2.33.0 and help developers proactively monitor network conditions affecting video quality, diagnose connectivity issues, and make informed decisions about potential adjustments. For more information, see this documentation.
Added support for background blur and background replacement on Safari and Firefox. This version adds support for background blur and background replacement on Safari and Firefox. This provides feature consistency across all major browsers and devices, addressing customer requests for uniform background effects support across platforms. To check for the availability of required browser APIs, the SDK uses an inline web worker. This inline web worker may trigger Content Security Policy (CSP) violations in applications that enforce a strict CSP — specifically, those that do not include
blob:anddata:in theworker-srcorchild-srcdirectives. For more information, see this documentation.Added support for Live Captions Translation. This version adds support for Live Captions Translation, which provides real-time subtitle translation during video calls. Each participant can independently select their preferred translation language. This feature supports the full AWS Translate language set. This is a Private Beta feature—to enable Live Captions Translation for your project, contact us. For more information about Live Captions, see this documentation.
Fixed
This version fixes a timing issue where setting a media processor connector immediately after subscriber creation could fail. The SDK now waits for the stream to be available before applying the connector.
This version fixes an issue where streams failed to subscribe in sessions with both End-to-end Encryption and Single Peer Connection enabled.
This version fixes an issue with automatic reconnection handling that could cause unnecessary connection resets during network recovery. Reconnections now occur more reliably without interrupting stable peer connections.
This version fixes a race condition where calling
subscribeToVideo(true)immediately after subscriber initialization could fail if the video track had not yet been received.
v2.33.1 — March 2026
Requirements
The OpenTok.js library is currently supported in:
- Electron (latest release version)
- Google Chrome (latest release version)
- Google Chrome for Android (latest release version)
- Beta support for Google Chrome for iOS (latest release version)
- Firefox (latest release version)
- Firefox for Android (latest release version)
- Beta support for Firefox for iOS (latest release version)
- Microsoft Edge versions 79+ for Windows and macOS (Chromium-based versions of Edge)
- Safari 11+ on macOS and iOS. For information on video interoperability and other issues, see the Safari browser support page.
- Opera (latest release version)
- Samsung (latest release version)
- WebView Android API level 36+
- WebView on iOS 18.6+
Important: OpenTok.js version 2.16 was the last version to support the Plugin for Internet Explorer. OpenTok.js version 2.16 was deprecated in May 2020 for the Standard environment and June 2020 for the Enterprise environment.
The OpenTok.js library uses port 443. Port 443 must be open on the client network.
Known issues
Browser-specific issues
Safari
- Video quality may appear reduced when canvas content is streamed, due to internal downscaling, device-pixel ratio handling, or Safari's WebRTC encoding. See this WebKit bug.
- End-to-end encryption does not work when developer tools are open in WebKit-based browsers (Safari on macOS/iOS, Chrome on iOS). We are working on a fix.
- Video Javascript SDK 2.27 and later is not supported on Safari 14 and lower.
- New subscribers are inaudible until you bring focus to the browser tab. Switching to the tab restores audio. See this WebKit bug.
- In Safari 17.0+, the video resolution setting is ignored for screen-sharing video. The resulting resolution is always 640x360. See this WebKit bug.
- When calling
OT.initPublisher()to initialize a screen-sharing publisher without a user gesture handler, you may receive anInvalidAccessError. This is expected Safari behaviour. - On iOS 16.4+ with iCloud Private Relay enabled, users may experience disconnects in relayed sessions. See this WebKit bug.
- Audio and video may be lost after an incoming phone call on iOS Safari. After accepting a call and returning to a session, audio and video from the iOS device may drop. See these WebKit bugs: #213853, #219318.
- Audio quality for streams published from Safari on iOS/iPadOS may degrade over time with a crackling or distortion sound. See this WebKit bug.
iOS
- For iOS browser subscribers, the audio level may be incorrect in some cases. We are working on a fix. See this WebKit bug.
- Video flickers when changing device orientation or resizing video on iOS 17+. See this WebKit bug.
- Video is initially displayed at the wrong resolution in a video publisher on iOS 17+, causing a visible flicker as it resizes. See this WebKit regression.
- Emojis unexpectedly appear in videos on iOS 17 due to Apple's Reactions feature. End-users must disable it manually: open Control Center → tap Video Effects → tap Reactions.
Chrome / Chromium
- On Windows with Intel Smart Sound Technology audio drivers, a Publisher may not dispatch an
audioInputDeviceChangedevent when switching audio input devices. Audio will still route correctly. We are working on a fix. - Closing the laptop lid while publishing causes the publisher to be destroyed. See this Chromium bug.
- Echo cancellation is disabled with stereo audio input in Chrome 73+. See this Chrome issue.
- Publishing is not supported on
httppages (excepthttp://localhost). Pages must be served overhttps. - Video can flicker for streams with
videoTypeset to"custom"when video content does not change much. SettingvideoContentHinttotextordetailmitigates the issue. See the video settings guide.
Firefox
- Setting the frame rate has no effect in Firefox on macOS when using the built-in FaceTime camera. See this Mozilla bug.
- Setting
audioBitrateinOT.initPublisher()has no effect in Firefox. See this Mozilla bug. - On Android 13, Firefox microphone and camera permissions require a device restart to take effect after being set.
- On Android 13, video resolution may not update correctly when switching orientation. See this Mozilla regression.
Android
- On Android 12 and 13, Chrome requires using Media Volume to adjust volume instead of the phone's volume slider. See this Chromium bug.
- In WebView Android, when the app is moved to the background (app switch or incoming call), the publisher video turns off and does not recover when returning to the foreground.
macOS
- Emojis unexpectedly appear in videos on macOS 14 (Sonoma) due to Apple's Reactions feature. To disable: click the green camera icon in the menu bar → deselect Reactions.
General issues
- The
accessDialogOpenedevent may be erroneously dispatched when callingOT.getUserMedia(), even if no access dialog was shown. - In some cases, when tab-sharing a Google Slides presentation, the video is letterboxed when the publisher aspect ratio is 4:3. This does not occur when screen-sharing the full presentation.
- For some mobile Firefox users, device orientation may corrupt the publisher's video stream. See this Mozilla bug.
Fixed issues
- Fixed a memory leak affecting long-running sessions with multiple participants.
- Fixed a TypeScript definition error where the publisher stats property was incorrectly named
transportinstead oftransportStats.
v2.33.0 — February 2026
New features and changes
Added new publisher and subscriber statistics and video quality changed events. This version adds new publisher and subscriber statistics including: video layer metrics for simulcast/SVC and transport statistics for publishers; video freeze/pause tracking and decoding metrics for subscribers; and video quality changed events for both publishers and subscribers. For more information, see this documentation.
Added full support for network statistics of a sender in video sessions. This version adds full support for network statistics of senders for subscribers in video sessions (which was previously in beta). For more information, see this documentation.
Added support for preferred video resolution and frame rate for publishers. This version adds new methods to configure the preferred video resolution and frame rate for publishers, allowing you to dynamically adjust outgoing video quality, without exceeding the resolution or frame rate originally specified when initializing the Publisher. For more information, see this documentation.
OpenTok.js now includes full support for Google Chrome for iOS. For more information, see this documentation.
We have deprecated the
video.frameRateproperty in the stats objects returned by theSubscriber.getStats()completion handler. This property is deprecated and will be removed in the future. Please instead use thevideo.decodedFrameRateproperty instead. For more information, see this documentation.
Fixed issues
- Resolved an issue where TypeScript definitions for Publisher Max Bitrate were not included in the previous releases.
- Fixed a memory leak in the websocket handling logic for the signaling protocol.
- Fixed an issue where audio processing options (gain control, echo cancellation, etc.) were not being applied correctly in certain scenarios.
- Fixed audio input device change management issues including default device switching detection and device tracking accuracy.
v2.31.2 — January 2026
Fixed issues
- In certain cases with Single Peer Connection, subscribers are unable to subscribe. For more information about Single Peer Connection, see this documentation.
- Single Peer Connection does not function in Chrome version 140 or newer. For more information about Single Peer Connection, see this documentation.
- In some cases, publishers are unable to publish.
- Logging of call quality change events failed in certain cases.
- In certain situations, publishers may be unable to publish content because of audio capture issues, especially in Safari on iOS devices.