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
.
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.
The copyTo()
method of the VideoFrame
interface copies the contents of the VideoFrame
to an ArrayBuffer
.
copyTo(destination) copyTo(destination, options)
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
:
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);
Specification |
---|
WebCodecs # dom-videoframe-copyto |
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | ||
copyTo |
94 | 94 | previewOnly supported on Linux, see bug 1749047. |
80 | 16.4 | 94 | NoOnly supported on Linux, see bug 1749047. |
66 | 16.4 | 17.0 | 94 |
© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/VideoFrame/copyTo