web-dev-qa-db-ja.com

ビデオファイルからプレビュー画像を生成しますか?

PHPビデオファイル(.mov.mp4)サムネイル画像のプレビューを生成しますか?

39
JD Isaacks
18
mr-sk

ソリューション#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 function)が必要であることに注意してください。

37
Nabi K.A.Z.

次の2つの方法があります。

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

  • screenshoot 」プラグインを使用して、 LongTail Video player これにより、手動のスクリーンショットを作成し、サーバー側のスクリプトに送信できます。

8
Pekka 웃