使用PHP从MP4创建GIF

使用PHP从MP4创建GIF,php,ffmpeg,imagemagick,gif,mp4,Php,Ffmpeg,Imagemagick,Gif,Mp4,我首先在本地服务器上安装FFMpeg和ImageMagick(而ssh'd) 我做了一些研究,并认为我可以实现Mp4->GIF,首先,转换Mp4->png,然后,png->GIF 所以我试着跑步 ffmpeg-i input.mp4-r 10人/输出%05d.png。它成功地从Mp4创建PNG。然后我尝试在localserver上运行这个php $php convertDoc.php $animatedGif = new Imagick(); $path = "./man/"; $files

我首先在本地服务器上安装FFMpeg和ImageMagick(
而ssh'd

我做了一些研究,并认为我可以实现Mp4->GIF,首先,转换Mp4->png,然后,png->GIF

所以我试着跑步
ffmpeg-i input.mp4-r 10人/输出%05d.png
。它成功地从Mp4创建PNG。然后我尝试在localserver上运行这个php

$
php convertDoc.php

$animatedGif = new Imagick();

$path = "./man/";

$files = scandir($path);

for($i=2;$i<6;$i++) {
    $image = new Imagick();
    var_dump($files);
    $image->readImage($path.$files[$i]);

    $animatedGif->addImage($image);
}

$animatedGif->writeImages('testOutput.gif', true);
$animatedGif=new Imagick();
$path=“./man/”;
$files=scandir($path);
对于($i=2;$iredImage($path.$files[$i]);
$animatedGif->addImage($image);
}
$animatedGif->writeImages('testOutput.gif',true);
但我开始犯错误:

PHP致命错误:未捕获异常“ImagickException”,消息“此图像格式无解码委托”


我选中了
convert-list configure
。我已经
委托了bzlib mpeg fontconfig freetype jbig jng jpeg lzma png ps tiff wmf x xml zlib

我还检查了
identification-list格式
。我有
PNG*rw-便携式网络图形(libpng 1.2.50)
GIF*rw+CompuServe图形交换格式


我做错了什么?我是走对了路还是完全偏离了轨道


使用FFMpeg或Imagick,或者两者都使用,从PHP中的MP4生成GIF的最佳方法是什么?

尝试
PHP-i | grep-i magick
看看PHP解释器对ImageMagick了解多少。@MarkSetchell我应该检查支持的格式吗?如果是,列表中同时包含GIF和PNG。为什么不使用
FFMpeg
to从mp4到gif?通过php更快?不是吗?我对此表示怀疑,但实际上我没有进行比较。首先,您必须等待
ffmpeg
输出所有PNG文件,然后从这些文件中使用Imagick扩展名创建gif。仅使用
ffmpeg
就可以避免中间PNG文件(和Imagick)然后直接输出到GIF。请尝试
php-i | grep-i magick
,看看您的php解释器对ImageMagick了解多少。@MarkSetchell我应该检查支持的格式吗?如果是,列表中同时包含GIF和PNG。为什么不直接使用
ffmpeg
从mp4转换为GIF?通过php更快?不是吗?我怀疑,但我没有实际比较。首先,您必须等待
ffmpeg
输出所有PNG文件,然后使用Imagick扩展名从这些文件创建GIF。仅使用
ffmpeg
就可以避免中间PNG文件(和Imagick)并直接输出到GIF。请参阅。