有没有办法在 PHP 中给定一个视频文件(.mov
,.mp4
)来生成缩略图预览?
最佳答案
解决方案 #1(较旧)(不推荐)
首先安装ffmpeg-php
项目(http://ffmpeg-php.sourceforge.net/)
然后你可以使用这个简单的代码:
<?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.'">';
}
}
?>
描述:这个项目使用二进制扩展名 .so
文件,它很旧,最后更新是 2008 年。所以,可能不适用于较新版本的 FFMpeg
或 PHP
。
解决方案 #2(2018 年更新)(推荐)
首先安装PHP-FFMpeg
项目(https://github.com/PHP-FFMpeg/PHP-FFMpeg)
(只需运行安装:composer require php-ffmpeg/php-ffmpeg
)
然后你可以使用这个简单的代码:
<?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.'">';
描述:这是一个更新、更现代的项目,适用于最新版本的 FFMpeg
和 PHP
。请注意,proc_open()
PHP 函数需要它。
关于php - 从视频文件生成预览图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2043007/