Coding through PHP FLV frame of the middle video part
I have a program coded in PHP that could embed flv video.
Is there any chance that I could get a preview of the video by coding through PHP flv frame of the middle video part?
I have a program coded in PHP that could embed flv video.
Is there any chance that I could get a preview of the video by coding through PHP flv frame of the middle video part?
Hi Julia, Â Â Â Â Â
In order to obtain the preview of the FLV fine in PHP, you need to use the following coding, I have given the complete coding which you can use as it is and the only changes you have to make is the source and the values that have to be altered.
Enjoy watching the video with a preview.
Bell Keny
PHP CODE
<?php
// generate a preview image from an FLV file on-the-fly, or to save
// call with: ffmpeg_image.php?file=video.flv&time=00:00:05&browser=true
// call with: ffmpeg_image.php?file=video.flv&percent=75.3&browser=true
// no time defaults to "00:00:01" (one second), no browser defaults to "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);
// check time format
if (!preg_match('/dd:dd:dd/', $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 -vcodec png -i "" . $videofile . "" -ss " . $time . " -vframes 1 -f image2 -");
//header('Content-Type: image/jpeg');
//exec("/usr/bin/ffmpeg -vcodec mjpeg -i "" . $videofile . "" -ss " . $time . " -vframes 1 -f image2 -");
}
else
{ 
 exec("/usr/bin/ffmpeg -vcodec png -i "" . $videofile . "" -ss " . $time . " -vframes 1 -f image2 "" . $image . ""%d.png");
//exec("/usr/bin/ffmpeg -vcodec mjpeg -i "" . $videofile . "" -ss " . $time . " -vframes 1 -f image2 "" . $image . ""%d.jpg");
}
?>