J'essaie de générer des vignettes à partir de points aléatoires dans un film en utilisant l'extension FFMPEG et FFMPEG-PHP.Génération de vignettes aléatoires avec PHP + FFMPEG
Mon script fonctionne bien .. mais prend 20 minutes juste pour générer 5-10 miniatures !!
Le script fonctionne en générant des nombres aléatoires qui sont utilisés ultérieurement comme numéros d'image. Tous les nombres générés sont compris dans le nombre d'images de films.
Pouvez-vous expliquer pourquoi ce script prend 20 minutes pour terminer? Sinon, une meilleure solution?
<?php
//Dont' timeout
set_time_limit(0);
//Load the file (This can be any file - still takes ages)
$mov = new ffmpeg_movie('1486460.mp4');
//Get the total frames within the movie
$total_frames = $mov->getFrameCount();
//Loop 5-10 times to generate random frames 5-10 times
for ($i = 1; $i <= 5;) {
// Generate a number within 200 and the total number of frames.
$frame = mt_rand(200,$total_frames);
$getframe = $mov->getFrame($frame);
// Check if the frame exists within the movie
// If it does, place the frame number inside an array and break the current loop
if($getframe){
$frames[$frame] = $getframe ;
$i++;
}
}
//For each frame found generate a thumbnail
foreach ($frames as $key => $getframe) {
$gd_image = $getframe->toGDImage();
imagejpeg($gd_image, "images/shot_".$key.'.jpeg');
imagedestroy($gd_image);
echo $key.'<br/>';
}
?>
Le script DEVRAIT générer des numéros de trame valides? Quelque chose dans START - END devrait être des numéros de châssis valides? Pourtant, la boucle prend des années!
30 minutes? Qu'est-ce que le? Je convertirais 1 To de vidéo. –