пытается нарисовать видеоэлемент на холсте именно так, как он есть, но видео на холсте увеличено:
<canvas></canvas>
<video autoplay="true"></video>
<script>
let video = document.querySelector("video")
navigator.mediaDevices.getUserMedia({video: true})
.then((stream) => {
video.srcObject = stream
})
canvasWidth = 0
canvasHeight= 0
video.addEventListener("playing", () => {
canvasWidth = video.videoWidth
canvasHeight = video.videoHeight
canvas = document.querySelector("canvas")
canvas.style.width = canvasWidth+"px"
canvas.style.height = canvasHeight+"px"
function draw() {
let ctx = canvas.getContext('2d');
ctx.drawImage(video, 0, 0, canvasWidth,canvasHeight, 0, 0 ,canvasWidth, canvasHeight)
setTimeout(draw, 1)
}
setTimeout(() =>{
draw()
}, 1000);
})
</script>
есть изображение того, что он отображает в браузере:
введите описание изображения здесь