Ubuntu 官方倉庫提供 php5-ffmpeg 擴充套件,讓 PHP 能直接呼叫 FFmpeg 處理影音。本文實測其安裝與擷圖效能,並提供可直接使用的程式碼範例。
sudo apt-get install ffmpeg php5-ffmpeg php5-gd
安裝完成後重啟 Apache 或 PHP-FPM 生效。
<?php
$page = 10; // 擷取張數
$prefix = 'screencap'; // 輸出檔名稱前綴
$mov = new ffmpeg_movie('gt.avi');
$count = $mov->getFrameCount();
$range = (int)round($count / ($page + 1));
for ($i = 1; $i <= $page; $i++) {
$frameNum = $range * $i;
$imgFile = $prefix . '_' . $i . '.png';
$frame = $mov->getFrame($frameNum);
if (!$frame) continue;
$gdImage = $frame->toGDImage();
if (!$gdImage) continue;
imagepng($gdImage, $imgFile);
imagedestroy($gdImage);
echo '<img src="' . $imgFile . '" border="1" /><br />';
}
?>
| 類別/方法 | 用途 |
|---|---|
ffmpeg_movie | 開啟影片檔案,取得影片資訊 |
getFrameCount() | 取得總畫面數 |
getFrame($num) | 取得指定畫面的 ffmpeg_frame 物件 |
toGDImage() | 將畫面轉為 GD 影像資源 |
ffmpeg-php 新版 API(FFMpeg\FFMpeg)功能更完整。imagejpeg() 調整品質與檔案大小。