Using HTML5 video with canvas
Loading

Using HTML5 video with canvas

You’ve already learned a lot about the <video> element in my previous article “What I’ve Learned From Working With HTML5 Video Over A Month”, but did you know that the <video> and <canvas> elements would be a great choice to use together? In fact, the two elements are absolutely wondrous when you combine them! I will show you a handy demo using these two elements, which I hope will prompt cool future projects from you. Firstly, place the <video> and <canvas>elements in your HTML. Give your dimensions(width, height) to <canvas> according to your video. And of course, hide your video with the hidden attribute or “display: none” styling. Because <canvas> will do the trick for you ;) Let’s go through them one by one.

View

We’re hiding the video element because we just want <canvas> to show the video, not <video> element itself.

Declarations

Let’s declare the variables that will be used.

Logic

Here is the magical part, with the whole code.
drawImage() method draws the video onto the canvas. video.onpause()video.onended(), and video.onplay() methods are related to the performance issue. When the video paused or ended, we do not need to draw <video> onto the<canvas>, because you know, the frame is not changing after paused or ended. And when the <video> starts playing/resuming, <canvas> should start/resume drawing the <video> onto <canvas> as well.