Baseline 2024
Newly available
Note: This feature is available in Dedicated Web Workers.
The copyTo()
method of the VideoFrame
interface copies the contents of the VideoFrame
to an ArrayBuffer
.
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.
format
Optional
A pixel format for the pixel data in the destination
. Can be set to "RGBA"
, "RGBX"
, "BGRA"
, "BGRX"
. If unspecified, the format
will be used.
colorSpace
Optional
Specifies the color space of the pixel data in the destination
. Can be set to "srgb"
for the sRGB color space or "display-p3"
for the display-p3 color space. Only applicable for RGB pixel formats. If unspecified, "srgb
will be used.
A Promise
that resolves to the layout of the copy when the copy has completed.
The following example copies the entire contents of videoFrame
.
let buffer = new Uint8Array(videoFrame.allocationSize());
let layout = await videoFrame.copyTo(buffer);
The following example converts a portion of the videoFrame
to RGB format.
const videoRect = {
x: 100,
y: 100,
width: 80,
height: 60,
};
const options = {
rect: videoRect,
format: "RGBX",
colorSpace: "display-p3",
};
const size = videoFrame.allocationSize(options);
const buffer = new ArrayBuffer(size);
const layout = await videoFrame.copyTo(buffer, options);
Specifications Browser compatibility
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4