我是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相同的目录中,代码是否有问题或问题是什么?
答案 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 . '');