- From: guest271314 via GitHub <sysbot+gh@w3.org>
- Date: Thu, 24 Sep 2020 20:50:55 +0000
- To: public-webrtc-logs@w3.org
The closest have been able to get to 160x160 is 176x144 using any combination of constraints.
To create a 160x160 `MediaStreamTrack` from original `MediaStreamTrack`, this can be done at Chromium, not at Firefox or Nightly, where `resizeHeight` and `resizeWidth` are not defined at `createImageBitmap()` and `ImageCapture` is not supported, and `OffscreenCanvas` is behind a flag and has implementation issues. Nonethess a workaround is till possible for Mozilla browsers
```
navigator.mediaDevices.getUserMedia({video: true})
.then(async stream => {
const video = document.createElement('video');
document.body.appendChild(video);
video.autoplay = true;
const [track] = stream.getVideoTracks();
const {width, height} = track.getSettings();
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('bitmaprenderer');
const canvasStream = canvas.captureStream();
const [canvasTrack] = canvasStream.getVideoTracks();
video.srcObject = canvasStream;
const imageCapture = new ImageCapture(track);
console.log('before constraints:', track.getSettings(), await track.getConstraints());
let controller;
const rs = new ReadableStream({
start(_) {return controller = _},
async pull() {
const frame = await imageCapture.grabFrame();
const bitmap = await createImageBitmap(frame, 0, 0, width, height,
{resizeWidth: 160, resizeHeight: 160}
);
controller.enqueue(bitmap);
// adjust frame rate manually or dynamically here, e.g.,
// await new Promise(resolve => setTimeout(resolve, 1000/30));
}
})
.pipeTo(new WritableStream({
write(bitmap, c) {
ctx.transferFromImageBitmap(bitmap);
}
}));
const recorder = new MediaRecorder(canvasStream);
recorder.ondataavailable = ({data}) => console.log(URL.createObjectURL(data));
recorder.start();
setTimeout(async _ => {
recorder.stop();
controller.close();
track.enabled = false;
canvasTrack.stop();
}, 10000);
});
```
--
GitHub Notification of comment by guest271314
Please view or discuss this issue at https://github.com/w3c/mediacapture-main/issues/723#issuecomment-698581716 using your GitHub account
--
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Thursday, 24 September 2020 20:50:57 UTC