This feature is not Baseline because it does not work in some of the most widely-used browsers.
Note: This feature is available in Dedicated Web Workers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The flip property of the VideoFrame interface returns a boolean that indicates whether the VideoFrame is horizontally mirrored.
A boolean. If true, horizontal mirroring is applied. Defaults to false.
Given a stream of video frames from a camera, obtained using a MediaStreamTrackProcessor, you can check the flip property on the VideoFrame objects to see whether or not the frames are flipped.
const stream = await navigator.mediaDevices.getUserMedia({ video: true });
const track = stream.getTracks()[0];
const trackProcessor = new MediaStreamTrackProcessor(track);
const reader = trackProcessor.readable.getReader();
while (true) {
const result = await reader.read();
if (result.done) break;
const frameFromCamera = result.value;
// Returns `true` if the frame is horizontally flipped
console.log(frameFromCamera.flip);
}
| Specification |
|---|
| WebCodecs> # dom-videoframe-flip> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
flip |
138 | 138 | No | 122 | No | 138 | No | 91 | No | No | 138 | No |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/VideoFrame/flip