<?php
//referenceshttp://www.longtailvideo.com/support/forum/Modules/12661/External-PHP-with-FFmpeg-using-readfile-
//generateapreviewimagefromanFLVfileon-the-fly,ortosave
//callwith:ffmpeg_image.php?file=video.flv&time=00:00:05&browser=true
//callwith:ffmpeg_image.php?file=video.flv&percent=75.3&browser=true
//notimedefaultsto"00:00:01"(onesecond),nobrowserdefaultsto"true"
$videofile=(isset($_GET['file']))?strval($_GET['file']):'video.flv';
$image=substr($videofile,0,strlen($videofile)-4);
$time=(isset($_GET['time']))?strval($_GET['time']):'00:00:01';
//debug("File:",$videofile);
//debug("Image:",$image);
//debug("Time:",$time);
//checktimeformat
if(!preg_match('/\d\d:\d\d:\d\d/',$time))
{
$time="00:00:00";
}
if(isset($_GET['percent']))
{
$percent=$_GET['percent'];
//debug("Percent:",$percent);
ob_start();
exec("/usr/bin/ffmpeg-i\"".$videofile."\"2>&1");
$duration=ob_get_contents();
ob_end_clean();
//debug("Duration:",$duration);
preg_match('/Duration:(.*?),/',$duration,$matches);
$duration=$matches[1];
//debug("Duration:",$duration);
$duration_array=split(':',$duration);
$duration=$duration_array[0]*3600+$duration_array[1]*60+$duration_array[2];
$time=$duration*$percent/100;
//debug("Time:",$time);
$time=intval($time/3600).":".intval(($time-(intval($time/3600)*3600))/60).":".sprintf("%01.3f",($time-(intval($time/60)*60)));
//debug("Time:",$time);
}
$browser=(isset($_GET['browser']))?strval($_GET['browser']):'true';
//debug("Browser:",$browser);
if($browser=="true")
{
header('Content-Type:image/png');
exec("/usr/bin/ffmpeg-vcodecpng-i\"".$videofile."\"-ss".$time."-vframes1-fimage2-");
//header('Content-Type:image/jpeg');
//exec("/usr/bin/ffmpeg-vcodecmjpeg-i\"".$videofile."\"-ss".$time."-vframes1-fimage2-");
}
else
{
exec("/usr/bin/ffmpeg-vcodecpng-i\"".$videofile."\"-ss".$time."-vframes1-fimage2\"".$image."\"%d.png");
//exec("/usr/bin/ffmpeg-vcodecmjpeg-i\"".$videofile."\"-ss".$time."-vframes1-fimage2\"".$image."\"%d.jpg");
}
?>
|