このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
VideoFrame: VideoFrame() コンストラクター
Baseline 2024 *Newly available
Since September 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
* Some parts of this feature may have varying levels of support.
VideoFrame() コンストラクターは、動画のフレームを表すVideoFrame オブジェクトを生成します。
In this article
構文
new VideoFrame(image)new VideoFrame(image, options)new VideoFrame(data, options)引数
最初の型のコンストラクター(上述)は、画像から新しいVideoFrame を作成します。引数は以下のとおりです。
image新しい
VideoFrameの画像データを格納する画像。SVGImageElement,HTMLVideoElement,HTMLCanvasElement,ImageBitmap,OffscreenCanvas,他のVideoFrameのオブジェクトのいずれかになります。options省略可以下のものを含むオブジェクトです。
duration省略可フレームの再生時間をマイクロ秒単位で表す整数。
timestampフレームのタイムスタンプをマイクロ秒単位で表す整数。
alpha省略可アルファチャンネルを扱うときにユーザーエージェントがどのように振る舞うべきかを記述する文字列。既定値は "keep" です。
"keep": ユーザーエージェントがアルファチャンネルデータを保存することを示します。"discard": ユーザーエージェントがアルファチャンネルを無視または除去すべきことを示します。
visibleRect省略可VideoFrameの可視長方形を表すオブジェクトで、次のものを含みます。displayWidth省略可アスペクト比調整後に表示される
VideoFrameの幅。displayHeight省略可アスペクト比調整後に表示される
VideoFrameの高さ。
2 つ目のコンストラクター(上記参照)は、新しいVideoFrame をArrayBuffer から作成します。引数は以下の通りです。
data新しい
VideoFrameのデータを保持するArrayBuffer、TypedArray、DataViewのいずれかです。options以下のものを持つオブジェクトです。
format動画のピクセル形式を表す文字列。以下の文字列のいずれかで、完全な説明は
formatプロパティのページにあります。"I420""I420A""I422""I444""NV12""RGBA""RGBX""BGRA""BGRX"
codedWidthピクセル単位の
VideoFrameの幅(不可視のパディングを含む可能性があり、比率の調整を考慮する前の値)。codedHeightピクセル単位の
VideoFrameの高さ(不可視のパディングを記載する可能性があり、比率調整を考慮する前の値)。timestampフレームのタイムスタンプをマイクロ秒単位で表す整数。
duration省略可フレームの再生時間をマイクロ秒単位で表す整数。
layout省略可VideoFrame内の各プレーンについて、以下の値を格納したリスト。visibleRect省略可VideoFrame` の可視長方形を表すオブジェクトで、以下のものを含みます。
displayWidth省略可アスペクト比調整後に表示される
VideoFrameの幅。displayHeight省略可アスペクト比調整後に表示される
VideoFrameの高さ。colorSpaceVideoFrame` の色空間を表すオブジェクトで、以下のものを含みます。
primaries文字列で、
VideoColorSpace.primariesプロパティのページで記述されている、動画の色のプライマリーを表します。transfer文字列で、
VideoColorSpace.transferプロパティのページで記述されている、動画の色変換関数を表します。matrix文字列で、
VideoColorSpace.matrixプロパティのページで記述されている、動画の色行列を表します。fullRange論理値です。
trueの場合、フルレンジの色値が使用されていること示します。
transferVideoFrameが切り離して所有権を取るArrayBufferの配列。配列にdataをバッキングするArrayBufferが格納されている場合、VideoFrameはそのバッファーからコピーするのではなく、そのバッファーを直接使用します。
例
次の例はWebCodecs による動画処理の記事から引用しています。この最初の例では、キャンバスからVideoFrame を作成しています。
const cnv = document.createElement("canvas");// draw something on the canvas// ...let frame_from_canvas = new VideoFrame(cnv, { timestamp: 0 });In the following example aVideoFrame is created from aTypedArray.
const pixelSize = 4;let init = { timestamp: 0, codedWidth: 320, codedHeight: 200, format: "RGBA",};let data = new Uint8Array(init.codedWidth * init.codedHeight * pixelSize);for (let x = 0; x < init.codedWidth; x++) { for (let y = 0; y < init.codedHeight; y++) { let offset = (y * init.codedWidth + x) * pixelSize; data[offset] = 0x7f; // Red data[offset + 1] = 0xff; // Green data[offset + 2] = 0xd4; // Blue data[offset + 3] = 0x0ff; // Alpha }}init.transfer = [data.buffer];let frame = new VideoFrame(data, init);仕様書
| Specification |
|---|
| WebCodecs> # dom-videoframe-videoframe> |