Skip to content

Releases: twilio/twilio-video.js

2.32.1

01 Aug 16:05
Compare
Choose a tag to compare

2.32.1 (August 1, 2025)

Bug Fixes

  • Fixed an issue where video tracks would freeze when the video element was offscreen in a document Picture-in-Picture window.
  • Fixed an issue where LocalVideoTrack.restart() would fail on some devices when a video processor was active.
  • Fixed an issue where SDP munging would generate duplicated payload types, causing SDP negotiation failures with Chrome 137+.

2.32.0

23 Jul 18:16
Compare
Choose a tag to compare

2.32.0 (July 23, 2025)

New Features

Real-Time Transcriptions Support

Added real-time transcription capabilities for group rooms, allowing the capture and display of real-time captions during video calls.

Usage

To receive transcriptions, set the receiveTranscriptions option to true when connecting to a room. Then, subscribe to the transcription event to receive real-time transcription data:

import { connect } from 'twilio-video';

const room = await connect(token, {
  name: 'my-room',
  receiveTranscriptions: true
});

room.on('transcription', (transcriptionEvent) => {
  console.log(`${transcriptionEvent.participant}: ${transcriptionEvent.transcription}`);
});

See the Transcription's documentation for more details.

2.31.0

21 Apr 22:51
Compare
Choose a tag to compare

2.31.0 (April 21, 2025)

New Features

Document Picture-in-Picture API Support

Previously, when Client Track Switch Off Control was set to auto, video tracks were automatically switched off—even if they were visible and rendered in a Document Picture-in-Picture (PiP) window. This caused issues where users could see the video element, but the track itself was disabled. In this new SDK version, video tracks will remain active and continue to play when displayed in a PiP window.

2.30.0

28 Mar 20:49
Compare
Choose a tag to compare

2.30.0 (March 28, 2025)

New Features

WebRTC Overrides (Beta)

The SDK now enables you to override WebRTC APIs with the following options. If your environment supports WebRTC redirection—such as Citrix HDX's WebRTC redirection technologies—your application can leverage this new beta feature to enhance media quality in those environments. For more details, please refer to the JavaScript WebRTC Overrides documentation.

ConnectOptions

  • rtcConfiguration - An optional RTCConfiguration object passed to the RTCPeerConnection constructor.
  • RTCPeerConnection - Allows overriding the native RTCPeerConnection class.

ConnectOptions and CreateLocalTracksOptions

  • getUserMedia - Overrides the native MediaDevices.getUserMedia API.
  • enumerateDevices - Overrides the native MediaDevices.enumerateDevices API.
  • MediaStream - Overrides the native MediaStream class.
  • mapMediaElement - Callback triggered after a media track is attached to an audio or video element.
  • disposeMediaElement - Callback triggered after a media track is detached from an audio or video element.

Bug Fixes

  • Fixed a bug where a Chrome iOS Participant's local audio (Krips Noise Cancellation enabled) did not recover after disconnecting a bluetooth headset. (VIDEO-13010)

2.29.0

06 Dec 17:37
Compare
Choose a tag to compare

2.29.0 (December 6, 2024)

Changes

Video Processor V3 support (Beta)

  • AddProcessorOptions.outputFrameBufferContextType = 'bitmaprenderer' is now supported on Safari and Firefox. (VBLOCKS-3643, VBLOCKS-3644)
  • AddProcessorOptions.inputFrameBufferType now has a new value videoframe. On browsers that support VideoFrame, the inputFrameBuffer argument of VideoProcessor.processFrame() will be a VideoFrame. On other supported browsers, it will be an HTMLVideoElement.
  • AddProcessorOptions.outputFrameBufferContextType now has a new value bitmaprenderer. Currently, this is only supported for Chromium-based browsers. On other supported browsers, it falls back to 2d.
  • Patched the build script to work around the issue: markdown-it/linkify-it#111.

2.28.2

22 Nov 21:30
Compare
Choose a tag to compare

2.28.2 (November 22, 2024)

Bug Fixes

  • Fixed a bug in Desktop Safari 18 and all iOS browsers on iOS 18 where cloning a disabled MediaStreamTrack would incorrectly set the enabled property to true instead of preserving the original disabled state. This ensures track cloning behavior matches the MediaStreamTrack specification and works consistently across browsers. Bug report: https://bugs.webkit.org/show_bug.cgi?id=281758

2.29.0-preview.1

13 Aug 15:19
Compare
Choose a tag to compare
2.29.0-preview.1 Pre-release
Pre-release

2.29.0-preview.1 (August 13, 2024)

Changes

  • AddProcessorOptions.inputFrameBufferType now has a new value videoframe. On browsers that support VideoFrame, the inputFrameBuffer argument of VideoProcessor.processFrame() will be a VideoFrame. On other supported browsers, it will be an HTMLVideoElement.
  • AddProcessorOptions.outputFrameBufferContextType now has a new value bitmaprenderer. Currently, this is only supported for Chromium-based browsers. On other supported browsers, it falls back to 2d.
  • Patched the build script to work around the issue: markdown-it/linkify-it#111.

2.28.1

03 Oct 21:50
Compare
Choose a tag to compare

2.28.1 (October 3, 2023)

Bug Fixes

  • Previously, a Chrome iOS 17 Participant's local audio (Krisp noise cancellation enabled) did not recover after foregrounding the browser following the playing of a YouTube video (or some other application which requires microphone permissions). We work around this by permanently disabling the Krisp noise cancellation upon foregrounding the browser. (VIDEO-13006)

2.28.0

14 Sep 23:00
Compare
Choose a tag to compare

2.28.0 (September 14, 2023)

Bug Fixes

  • Fixed a bug where a Chrome iOS 17 Participant's local and remote media (Krisp Noise Cancellation enabled) failed to recover after interacting with a PSTN call in full-screen mode. (VIDEO-13011)
  • Fixed a bug where a Chrome iOS 17 Participant's audio with Krisp Noise Cancellation did not recover after interacting with a system popup. (VIDEO-13012)
  • Fixed a bug where a Chrome iOS 17 Participant's audio with Krisp Noise Cancellation did not recover after invoking Siri. (VIDEO-13013)

2.27.0

21 Mar 21:54
Compare
Choose a tag to compare

2.27.0 (March 21, 2023)

Changes

VideoTrack.addProcessor now works on browsers that support OffscreenCanvas as well as HTMLCanvasElement. When used with
@twilio/video-processors v2.0.0, the Virtual Background feature will work on browsers that supports WebGL2. See VideoTrack.addProcessor and @twilio/video-processors v2.0.0 for details.

Example

import { createLocalVideoTrack } from 'twilio-video';
import { Pipeline, VirtualBackgroundProcessor } from '@twilio/video-processors';

const virtualBackgroundProcessor = new VirtualBackgroundProcessor({
  pipeline: Pipeline.WebGL2,
  // ...otherOptions
});

await virtualBackgroundProcessor.loadModel();

const videoTrack = await createLocalVideoTrack({
  width: 640,
  height: 480,
  frameRate: 24
});

videoTrack.addProcessor(processor, {
  inputFrameBufferType: 'video',
  outputFrameBufferContextType: 'webgl2',
});