Мне нужно захватить кадр из видео, которое я только что загрузил с помощью fileupload, который я создаю с помощью canvas, и нарисовать на нем кадр из видео ->
Я могу сохранить изображение, используяAJAX вызов PHP-скрипта.Но он полностью черный, вот мой код:
JS:
var $theImg = $('<video id="video" preload="metadata" src="http://localhost/screens/page/VIDEO/vids/'+file.name+'"></video>');
$theImg.attr('data-disp', name);
$theImg.attr('data-name', file.name);
$theImg.attr('data-created', 1);
$theImg.appendTo('#selectable-videos');
$theImg.addClass('selectable-image');
$(e.target).parent().parent().find('.modal-body').children().append($theImg);
///////////////////////////////////////////////////////////////////////////////////////////////
var $canvas = $('<canvas id="canvas" width="192" height="108"></canvas>');
$theImg.append($canvas);
var video = $('#video');
var canvas = $('#canvas');
if(video.length){
var ctx = canvas[0].getContext('2d').drawImage($theImg.get(0), 0, 0, canvas.width, canvas.height);
var dataURL = canvas[0].toDataURL('image/png');
$.ajax({
url: "../admin/php/folder.php",
timeout: 5000,
method: "POST",
data: { data: dataURL, DISPLAYNAME: fullName, ACTUALNAME: name, FILE_TYPE: 'poster', action: "save-poster" },
success: function(data) {
console.log("poster created.");
}
});
}
PHP:
if($_POST["action"] == "save-poster"){
define('UPLOAD_DIR', '../../page/VIDEO/vids/');
$img = $_POST['data'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$file = UPLOAD_DIR . uniqid() . '.png';
$success = file_put_contents($file, $data);
}
Есть идеи, почему он сохраняет полностью черный?Спасибо