Thanks Jason, this makes a big difference to the speed (I realised setTimeout was not ideal ).
The problem still persists after assigning the width/ height in videoReady. I think it just appears like it is working for you as the capture size is equal to the canvas (e.g. 1280/2) or greater. Try it with a smaller capture size e.g. 360x180 or f=4 and it doesn’t work.
I have tested on Chrome, Safari, Firefox.
Try moving your head to the right half of the screen, you’ll see what I mean…