Php 制作一个FFmpeg缩略图?

Php 制作一个FFmpeg缩略图?,php,ffmpeg,Php,Ffmpeg,我对FFmpeg有点陌生,但作为一个学习mysql数据库的项目,我正在尝试创建一个视频上传站点 当我尝试使用以下代码制作缩略图时: shell_exec(“/usr/local/bin/ffmpeg-i anim.flv-an-ss 00:00:03-an-r1-vframes 1-y test.jpg”) 什么也没有发生,没有图像出现在与anim.flv相同的目录中,代码是否有问题,或者可能是什么问题?这对我有效:ffmpeg-ss 00:00:10-i$file-y-an-vframes 1

我对FFmpeg有点陌生,但作为一个学习mysql数据库的项目,我正在尝试创建一个视频上传站点

当我尝试使用以下代码制作缩略图时:

shell_exec(“/usr/local/bin/ffmpeg-i anim.flv-an-ss 00:00:03-an-r1-vframes 1-y test.jpg”)


什么也没有发生,没有图像出现在与anim.flv相同的目录中,代码是否有问题,或者可能是什么问题?

这对我有效:
ffmpeg-ss 00:00:10-i$file-y-an-vframes 1$dir/$name.png
尝试以下命令:

$infile = 'anim.flv';
$outfile = 'test.jpg';
exec("/usr/local/bin/ffmpeg -i " . escapeshellarg($infile) . " -an -ss 00:00:03 -an -r 1 -vframes 1 -y " . escapeshellarg($outfile) . " 2>&1", $output, $returnValue);
if (!file_exists($outfile)) {
     die("Could not generate thumbnail. ffmpeg output: \n\n" . implode("\n", $output));
}
这样,当ffmpeg不工作时,您将从中获得一些详细的输出(“2>&1”将ffmpeg的错误输出重定向到标准输出;否则您将无法检索它)

我有两个建议,可能会修正你的命令;首先,在指定输出文件之前添加参数“-vcodec mjpeg-f rawvideo”,其次,为输入和输出使用绝对路径,这样您就不必担心脚本的当前工作目录在哪里。

试试这段代码

$flvfile = 'clock.flv';
$imagefile = 'test.jpg';
exec('ffmpeg  -i ' . $flvfile . ' -f mjpeg -vframes 1 -s 150x150 -an ' . $imagefile . '');

shell\u exec
返回什么。你有没有试过直接在shell中运行这个命令?如果是,您的结果是什么?当我现在使用代码时,网站上没有显示任何内容。正如我所说,我对FFmpeg不是很在行,但我使用了一些脚本,如果服务器上安装了FFmpeg,它应该会返回,并且看起来是肯定的,所以我真的不知道问题出在哪里。你没有理解我。你是新的没关系,每个人都是新的技术,因为这些技术更新非常频繁。我的意思是,您必须在shell中直接尝试FFMPEG命令至少一次,这样您就可以知道到底发生了什么,您收到的消息是什么错误。我现在就让它工作了!最后,经过一番研究,我发现问题在于我没有正确设置权限。无论如何,感谢您的快速响应!我得到的回报是:无法生成缩略图。ffmpeg输出:ArrayI确实将其设置为路径/home/albin/www/test.jpg和/home/albin/www/anim.flv,但它仍然不担心这个问题,我忘记了$output是一个行数组,而不仅仅是一个大字符串。将其更改为:die(“无法生成缩略图.ffmpeg输出:\n\n”。内爆(“\n”,$output));然后再试一次。感谢您的回复,但我现在发现问题很简单,因为我设置了错误的权限。对不起,我的英语不好,无论如何谢谢@JonathanAmend如果你有时间,你能检查一下我的ffmpeg问题吗?