Generate preview image from Video file?
php, php4, thumbnails, video
Solution
Solution #1 (Older) (not recommended)
Firstly install `ffmpeg-php` project (http://ffmpeg-php.sourceforge.net/)
And then you can use of this simple code:
<?php
$frame = 10;
$movie = 'test.mp4';
$thumbnail = 'thumbnail.png';
$mov = new ffmpeg_movie($movie);
$frame = $mov->getFrame($frame);
if ($frame) {
$gd_image = $frame->toGDImage();
if ($gd_image) {
imagepng($gd_image, $thumbnail);
imagedestroy($gd_image);
echo '<img src="'.$thumbnail.'">';
}
}
?>
Description: This project use binary extension `.so` file, It's very old and last update was for 2008. So, maybe don't works with newer version of `FFMpeg` or `PHP`.
Solution #2 (Update 2018) (recommended)
Firstly install `PHP-FFMpeg` project (https://github.com/PHP-FFMpeg/PHP-FFMpeg) (just run for install: `composer require php-ffmpeg/php-ffmpeg`)
And then you can use of this simple code:
<?php
require 'vendor/autoload.php';
$sec = 10;
$movie = 'test.mp4';
$thumbnail = 'thumbnail.png';
$ffmpeg = FFMpeg\FFMpeg::create();
$video = $ffmpeg->open($movie);
$frame = $video->frame(FFMpeg\Coordinate\TimeCode::fromSeconds($sec));
$frame->save($thumbnail);
echo '<img src="'.$thumbnail.'">';
Description: It's newer and more modern project and works with latest version of `FFMpeg` and `PHP`. Note that it's required to `proc_open()` PHP function.
Problem
Is there a way in PHP given a video file (`.mov`, `.mp4`) to generate a thumbnail image preview?