从视频文件生成预览图像?
2022-08-30 10:24:10
在 PHP 中给定视频文件 (, ) 有没有办法生成缩略图预览?.mov
.mp4
首先安装项目(http://ffmpeg-php.sourceforge.net/ffmpeg-php
)
然后你可以使用这个简单的代码:
<?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
FFMpeg
PHP
首先安装项目(https://github.com/PHP-FFMpeg/PHP-FFMpeg)
(只需运行安装:composer需要php-ffmpeg/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.'">';
描述:它是更新,更现代的项目,可与最新版本的 和 .请注意,PHP 功能需要它。FFMpeg
PHP
proc_open()
我想到了两种方法:
使用像流行的ffmpeg这样的命令行工具,但是您几乎总是需要自己的服务器(或非常好的服务器管理员/托管公司)才能获得它
使用LongTail Video播放器的“screenshoot”插件,该插件允许创建手动屏幕截图,然后将其发送到服务器端脚本。