To draw a video on a canvas we can use <video> DOM element similar to <img> element, but we have to frequently redraw the layer. For the purpose we can use Konva.Animation. As alternative you can use requestAnimationFrame and just call layer.draw().
Instructions: click “play” button. You can drag&drop the image.
<body> <buttonid="play">Play</button><buttonid="pause">Pause</button> <divid="container"></div> <script> var width = window.innerWidth; var height = window.innerHeight;
var stage = new Konva.Stage({ container: 'container', width: width, height: height });
var layer = new Konva.Layer(); stage.add(layer);
var video = document.createElement('video'); video.src = 'http://download.blender.org/peach/bigbuckbunny_movies/BigBuckBunny_320x180.mp4';
var image = new Konva.Image({ image: video, draggable: true, x: 50, y: 50 }); layer.add(image);
// update Konva.Image size when meta is loaded video.addEventListener('loadedmetadata', function(e){ image.width(video.videoWidth); image.height(video.videoHeight); });
var anim = new Konva.Animation(function(){ // do nothing, animation just need to update the layer }, layer);