[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/ja/docs/Web/API/HTMLVideoElement/requestVideoFrameCallback [Back]  [Original]

HTMLVideoElement: requestVideoFrameCallback() - Web API | MDN

MDN Web Docs

View in English Always switch to English

HTMLVideoElement: requestVideoFrameCallback()

Baseline 2024

202410

requestVideoFrameCallback() HTMLVideoElement

requestVideoFrameCallback() timeupdate

requestVideoFrameCallback() Window.requestAnimationFrame() requestVideoFrameCallback() requestVideoFrameCallback()

  • requestVideoFrameCallback()
  • requestAnimationFrame() 60Hz requestVideoFrameCallback() 25fps 60Hz 25Hz 60Hz 120 fps 60Hz
  • requestVideoFrameCallback()

requestVideoFrameCallback() (V-sync) 1 V-sync

API requestVideoFrameCallback()

now expectedDisplayTime v-sync expectedDisplayTime now 5 10 expectedDisplayTime 16 / 60Hz v-sync

js
requestVideoFrameCallback(callback)

callback

2

now

DOMHighResTimeStamp

metadata

WebRTC requestVideoFrameCallback()

ID

HTMLVideoElement.cancelVideoFrameCallback()

requestVideoFrameCallback() <canvas> DOM

js
if ("requestVideoFrameCallback" in HTMLVideoElement.prototype) {
  let paintCount = 0;
  let startTime = 0.0;

  const updateCanvas = (now, metadata) => {
    if (startTime === 0.0) {
      startTime = now;
    }

    ctx.drawImage(video, 0, 0, canvas.width, canvas.height);

    const elapsed = (now - startTime) / 1000.0;
    const fps = (++paintCount / elapsed).toFixed(3);
    fpsInfo.innerText = `video fps: ${fps}`;
    metadataInfo.innerText = JSON.stringify(metadata, null, 2);

    // 
    video.requestVideoFrameCallback(updateCanvas);
  };

  // 
  video.requestVideoFrameCallback(updateCanvas);
} else {
  alert(" requestVideoFrameCallback() ");
}

requestVideoFrameCallback

HTMLVideoElement.requestVideoFrameCallback()
# dom-htmlvideoelement-requestvideoframecallback


Web Proxy Viewer  |  New URL  |  Original Page