Правильное маштабирование canvas.getContext('2d').drawImage

Всем привет, создал функцию которая делает превью из выбранного видеофайла; При выборе видеофайла в форме загрузки она генерирует маленькое превью из середины видео. Проблема осталось лишь в том что бы правильно маштабировать картинку для предпросмотра. Само собой видео могут быть разные и преймущественно 16:9. На данный момент у меня вырезается только середина.

Я создал пример в jsfiddle https://jsfiddle.net/xeor451g/5/

function getImageFromVideo(file, id) {
        blobURL = URL.createObjectURL(file);
        video = document.createElement('video');
        canvas = document.createElement('canvas');
        p=video;
        canvas.width = 300;
        canvas.height = 168;
        video.preload = 'metadata';
        video.src = blobURL;
        video.muted = true;
        video.playsInline = true;
        video.play().then(function() {
            video.currentTime = Math.floor(video.duration / 2);
            video.pause();
            seek = video.addEventListener('seeked', function() {
                canvas.getContext('2d').drawImage(video, 0, 0, video.videoWidth, video.videoHeight);
                img = canvas.toDataURL('image/jpeg');
                video.src="";
                video.remove();
                delete video;
                canvas.remove();
                document.getElementById(id).src=img;
                return img;
            })
        })

    }

Ответы (0 шт):