Я пытаюсь захватить кадр видео html5, чтобы создать его миниатюру, но я вижу некоторые странные результаты, когда изображение отображается на холсте.
То, что я вижу, это то, что изображение, отображаемое на холсте, — это всего лишь часть видео, увеличенная совсем немного! Как видно на изображении ниже:
И код невероятно прост:
$(document).ready(function(){
var $Body = $("body");
var $Video = $("<video>").appendTo($Body);
var cVideo = $Video.get(0);
cVideo.addEventListener("loadedmetadata", function(){
cVideo.addEventListener("seeked", function(){
var $Canvas = $("<canvas>").width(cVideo.videoWidth).height(cVideo.videoHeight);
$Canvas.appendTo($Body);
var cCtx = $Canvas.get(0).getContext("2d");
cCtx.drawImage(cVideo, 0, 0);
}, false);
cVideo.currentTime = 500;
}, false);
cVideo.src = "movie.mkv";
});
Я перепробовал множество комбинаций ширины/высоты/области отсечения и т. д., но все, чего я смог добиться, — это различные варианты просмотра только правого верхнего угла исходного видео.
Редактировать: я сообщу, что исходный размер видео составляет 1920 x 800, а на изображении указан размер тегов видео и холста. Я пробовал их в разных размерах, и все тот же результат
Edit2: я пробовал несколько форматов/видео и операционных систем, и у меня все еще есть одна и та же проблема, поэтому я не верю, что проблема связана, например, с какой-либо проблемой кодека.