50

PHPでビデオファイル(.mov.mp4)を指定してサムネイル画像プレビューを生成する方法はありますか?

4

3 に答える 3

54

解決策 #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.'">';
    }
}
?>

説明:このプロジェクトはバイナリ拡張ファイルを使用しています。これは非常に古く、最後の更新は 2008 年でした。そのため、または.soの新しいバージョンでは動作しない可能性があります。FFMpegPHP


解決策 #2 (Update 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関数に必要であることに注意してください。

于 2012-07-31T03:38:45.923 に答える
9

2つの方法が思い浮かびます。

  • 人気のあるffmpegのようなコマンドラインツールを使用しますが、それを取得するには、ほとんどの場合、独自のサーバー(または非常に優れたサーバー管理者/ホスティング会社)が必要です。

  • LongTailビデオプレーヤー用の「screenshoot」プラグインを使用して、手動のスクリーンショットを作成し、サーバー側のスクリプトに送信できるようにします。

于 2010-01-11T16:13:21.443 に答える