制作一个FFmpeg缩略图?

时间:2012-11-15 13:50:30

标签: php ffmpeg

我是FFmpeg的新手,但作为一个学习一些mysql数据库的项目,我正在尝试创建一个视频上传网站。

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

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

没有任何反应,没有图像出现在与anim.flv相同的目录中,代码是否有问题或问题是什么?

3 个答案:

答案 0 :(得分:1)

这对我有用:ffmpeg -ss 00:00:10 -i $file -y -an -vframes 1 $dir/$name.png

答案 1 :(得分:0)

尝试此命令:

$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的错误输出重定向到stdout;否则你将无法检索它。)

我有2条建议可能会修复你的命令;首先,在指定输出文件之前添加参数“-vcodec mjpeg -f rawvideo”,其次,使用输入和输出的绝对路径,因此您不必担心脚本的当前工作目录的位置。

答案 2 :(得分:0)

试试此代码

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