我第一次尝试从视频文件创建缩略图预览,上传了209747帧的700mb .avi电影。现在我尝试创建1个缩略图,但它需要4.7秒,因为我已经设置了第10000帧,如果我将其设置为1000,它只需要0.4秒就可以生成缩略图。
我如何在不到一秒的时间内从不同的帧中生成5-10个缩略图?这有可能吗?使用exec(ffmpeg)或php-ffmpeg有什么不同?使用0.6-svn ffmpeg,debian6.0.7,php 5.4.14在机器2x Xeon L5420上,仍然很慢...有什么想法吗?用视频的ffmpeg + time代替frame怎么样?
$movie = 'ai.avi';
$thumbnail = 'thumbnail.jpg';
$mov = new ffmpeg_movie($movie);
$frame = 10000;
$frame = $mov->getFrame($frame);
if($frame) {
$gd_image = $frame->toGDImage();
if($gd_image) {
imagejpeg($gd_image, $thumbnail, 100);
imagedestroy($gd_image);
}
}
echo '<img src="'.$thumbnail.'" ><br />';
发布于 2013-04-25 18:12:33
首先,您使用的是FFmpeg-php,而不是php-FFmpeg。这是两个不同的项目,您的FFmpeg-php项目(非常)老。
将帧更改为第10,000帧或第1,000帧时,进程差异太大,可能是由于php-ffmpeg图像提取功能不佳造成的。你可以试一下第200,000帧,我估计大概需要80秒?如果这是真的,那么toGDImage()
函数就太慢了!
然后,您有一些选项可以提高性能:
像ffmpeg -ss 00:10:00 -i input.avi -vframes 1 output.jpg
extractImage()
函数,该函数使用上面的命令。尝试使用FFmpeg-php中的命令来调整
https://stackoverflow.com/questions/16208292
复制相似问题