VideoFrame: rotation property

Limited availability

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 rotation property of the VideoFrame interface returns the rotation of the video frame.

Value

An integer representing the rotation (0, 90, 180, or 270) in degrees clockwise. Defaults to 0. Arbitrary numbers (including negatives) are rounded to the next quarter turn.

Examples

Detecting when a camera video is rotated

Given a stream of video frames from a camera, obtained using a MediaStreamTrackProcessor, you can check the rotation property on the VideoFrame objects to see whether or not the frames are rotated.

js
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 0, 90, 180, or 270 indicating the frame's rotation
  console.log(frameFromCamera.rotation);
}

Specifications

Specification
WebCodecs
# dom-videoframe-rotation

Browser compatibility