簡體   English   中英

php-ffmpeg太慢-生成縮略圖?

[英]php-ffmpeg too slow - generating thumbnails?

第一次嘗試從視頻文件創建縮略圖預覽,並上傳了209747幀的700mb .avi電影。 現在,我嘗試創建1個縮略圖,但是它需要4.7秒,因為我已將幀設置為10000,如果將其設置為1000,則僅需要0.4秒即可生成縮略圖。

如何在不到一秒鍾的時間內從不同的幀中生成5-10張縮略圖? 可能嗎? 使用exec(ffmpeg)或php-ffmpeg是否有所不同? 在機器2x Xeon L5420上使用0.6-svn ffmpeg,Debian 6.0.7,php 5.4.14仍然很慢...有什么想法嗎? 如何使用ffmpeg +視頻時間而不是幀?

$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 />';

首先,您正在使用FFmpeg-php ,而不是php-FFmpeg 這是兩個不同的項目,您的FFmpeg-php項目年代久遠。

將幀更改為第10,000或1,000幀時,過程差異太大,可能是由於php-ffmpeg圖像提取功能差所致。 您可以嘗試第200,000幀,我希望它花費大約80秒? 如果是這樣,則toGDImage()函數嚴重太慢了!

然后,您有一些選擇可以提高性能:

  1. 嘗試找出是否可以調整toGDImage()函數或直接從FFmpeg-php使用命令,例如ffmpeg -ss 00:10:00 -i input.avi -vframes 1 output.jpg
  2. 或者嘗試實現php-FFmpeg庫,該庫包含一個快速的extractImage()函數,該函數使用上面的命令。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM