Sto provando a generare miniature da punti casuali in un film utilizzando l'estensione FFMPEG e FFMPEG-PHP.Generazione di miniature casuali con PHP + FFMPEG
Il mio script funziona OK .. tuttavia occorrono 20 minuti solo per generare 5-10 miniature !!
Lo script funziona generando numeri casuali che vengono utilizzati come numeri di frame in seguito. Tutti i numeri generati sono compresi nel numero di fotogrammi del film.
Riesci a capire perché questo script impiega 20 minuti per terminare? Se no, una soluzione migliore?
<?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/>';
}
?>
Lo script DOVREBBE generare numeri di frame che sono validi? Qualcosa all'interno di START-END dovrebbe essere un numero di frame valido? Eppure il ciclo impiega anni!
30 minuti? Cosa? Vorrei convertire 1 TB di video. –