3

編集:これをライブで行う必要があります。ストリームが終了するまで待ちきれません。

MediaStreamは電子からオブジェクトを取得しますdesktopCapturer:

navigator.mediaDevices.getUserMedia({
  audio: false,
  video: {
    mandatory: {
      chromeMediaSource: 'desktop',
      chromeMediaSourceId: source.id,
      minWidth: 800,
      maxWidth: 800,
      minHeight: 800,
      maxHeight: 800,
    },
  },
})
.then((stream) => {

Bufferを使用して静止フレームのノードを取得しようとしていますImageCapture:

  const track = stream.getVideoTracks()[0];
  const capturedImage = new ImageCapture(track);

  capturedImage // This takes 200ms for 1000x1000
    .takePhoto()
    .then(blob => {
      toBuffer(blob, function (err, buffer) { // 1.5 ms
        if (err) throw err;
          // TODO: Do some opencv magic with node buffer
      });
    })
    .catch(error => console.error('takePhoto() error:', error));

しかし、それには非常に時間がかかりますtakePhoto。プロセスを高速化することは可能ですか? どうにかして にMediaStream直接アクセスできますnodejsか?

4

1 に答える 1