We can use canvas to draw a video.
<!DOCTYPE HTML> <html> <head> <title>Example</title> <style> canvas {border: thin solid black} body > * {float:left;} </style> </head> <body> <video id="vid" hidden src="myVideo.webm" preload="auto" width="360" height="240" autoplay></video> <canvas id="canvas" width="360" height="240"> Your browser doesn't support the <code>canvas</code> element </canvas> <script> let ctx = document.getElementById("canvas").getContext("2d"); let imageElement = document.getElementById("vid"); // ww w .ja v a2 s .c o m let width = 100; let height = 10; ctx.lineWidth = 5; ctx.strokeStyle = "red"; setInterval(function() { ctx.drawImage(imageElement, 0, 0, 360, 240); ctx.strokeRect(180 - (width/2),120 - (height/2), width, height); }, 25); setInterval(function() { width = (width + 1) % 200; height = (height + 3) % 200; }, 100); </script> </body> </html>
In this example, there is a hidden video element.
The first timer fires every 25 milliseconds and draws the current video frame and then a stroked rectangle.
The second timer fires every 100 milliseconds and changes the values used for the rectangle.
The rectangle changes size and is superimposed over the video image.