Coding through PHP FLV frame of the middle video part

Asked By 40 points N/A Posted on -
qa-featured

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?

SHARE
Answered By 5 points N/A #130782

Coding through PHP FLV frame of the middle video part

qa-featured

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

//references to be checked

// 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");

}

?>

Related Questions