VideoFrame.copyTo()

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The copyTo() method of the VideoFrame interface copies the contents of the VideoFrame to an ArrayBuffer.

Syntax

copyTo(destination)
copyTo(destination, options)

Parameters

destination

An ArrayBuffer, a TypedArray, or a DataView to copy to.

options Optional

An object containing the following:

rect Optional

The rectangle of pixels to copy from the VideoFrame. If unspecified, the visibleRect will be used. This is in the format of a dictionary object containing:

  • x: The x-coordinate.
  • y: The y-coordinate.
  • width: The width of the frame.
  • height: The height of the frame.
layout Optional

A list containing the following values for each plane in the VideoFrame:

offset

An integer representing the offset in bytes where the given plane begins.

stride

An integer representing the number of bytes, including padding, used by each row of the plane. Planes may not overlap. If no layout is specified, the planes will be tightly packed.

Return value

A Promise that resolves to the layout of the copy when the copy has completed.

Examples

The following example copies the entire contents of videoFrame.

let buffer = new Uint8Array(videoFrame.allocationSize());
let layout = await videoFrame.copyTo(buffer);

Specifications

Specification
WebCodecs
# dom-videoframe-copyto

Browser compatibility

BCD tables only load in the browser