coderef

WebRTC encoded transformBaseline · Newly available

The WebRTC encoded transform API allows you to modify audio and video streams in WebRTC connections. For example, it can be used for visual effects or custom codecs.

Works in the latest version of every major browser, but older devices may not support it yet. Baseline since Oct 3, 2025.

Browser support

DesktopChrome
1–140Not supported
141+Supportedsince Sep 30, 2025
Current: 155
Edge
12–140Not supported
141+Supportedsince Oct 3, 2025
Current: 154
Firefox
1–116Not supported
117+Supportedsince Aug 29, 2023
Current: 157
Safari
1–15.3Not supported
15.4+Supportedsince Mar 14, 2022
Current: 27
MobileChrome Android
18–140Not supported
141+Supportedsince Sep 30, 2025
Current: 155
Firefox Android
4–116Not supported
117+Supportedsince Aug 29, 2023
Current: 157
Safari iOS
1–15.3Not supported
15.4+Supportedsince Mar 14, 2022
Current: 27

How to use

Every current browser supports this, but it only became Baseline on Oct 3, 2025. Use it as a progressive enhancement, or keep a fallback if you support older devices.

Example

Full syntax and examples are on MDN: rtctransform event.

Feature detection

JS · check before using
if ("RTCEncodedAudioFrame" in globalThis) {
  // RTCEncodedAudioFrame is available
} else {
  // load a polyfill or use a fallback
}

Sub-features

Support for each part of the feature (22). The overall table above shows when the whole feature works.

Sub-featureChromeEdgeFirefoxSafariChrome AndroidFirefox AndroidSafari iOS
DedicatedWorkerGlobalScope.rtctransform_event14114111715.414111715.4
RTCEncodedAudioFrame868611715.48611715.4
RTCEncodedAudioFrame.RTCEncodedAudioFrame1271271452612714526
RTCEncodedAudioFrame.data868611715.48611715.4
RTCEncodedAudioFrame.getMetadata868611715.48611715.4
RTCEncodedVideoFrame868611715.48611715.4
RTCEncodedVideoFrame.RTCEncodedVideoFrame1271271452612714526
RTCEncodedVideoFrame.data868611715.48611715.4
RTCEncodedVideoFrame.getMetadata868611715.48611715.4
RTCEncodedVideoFrame.type868611715.48611715.4
RTCRtpReceiver.transform14114111715.414111715.4
RTCRtpScriptTransform14114111715.414111715.4
RTCRtpScriptTransform.RTCRtpScriptTransform14114111715.414111715.4
RTCRtpScriptTransformer14114111715.414111715.4
RTCRtpScriptTransformer.generateKeyFrame✕✕11715.4✕11715.4
RTCRtpScriptTransformer.options14114111715.414111715.4
RTCRtpScriptTransformer.readable14114111715.414111715.4
RTCRtpScriptTransformer.sendKeyFrameRequest14114111715.414111715.4
RTCRtpScriptTransformer.writable14114111715.414111715.4
RTCRtpSender.transform14114111715.414111715.4
Show 2 more
Sub-featureChromeEdgeFirefoxSafariChrome AndroidFirefox AndroidSafari iOS
RTCTransformEvent14114111715.414111715.4
RTCTransformEvent.transformer14114111715.414111715.4