編集:これをライブで行う必要があります。ストリームが終了するまで待ちきれません。
私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
か?