我正在使用下面的代码从视频文件中抓取图像并且它运行良好。 但是,当我运行包含代码的php文件时,所有系统procceses出现,我的意思是关于转换,导出等的一些信息。
如何让它保持沉默?
$stderr = system("ffmpeg -i $videoPath -vframes 1 -an -s 306x173 -ss 03 $finalfilename 2>&1 >/dev/null", $exit_status);
if ($exit_status === 0) {
print 'Done! :)';
} else {
print 'Error... :/';
// $stderr will help you figure out what happened...
}
答案 0 :(得分:1)
您应该更改重定向的顺序。像这样:
>/dev/null 2>&1
或者将所有内容直接指向/ dev / null:
>/dev/null 2>/dev/null
答案 1 :(得分:0)
首先:对不起!在另一个问题上,我错误地建议您使用system()
函数,但显然需要exec()
。
此外,您可能希望使用ffmpeg
禁止任何-v error
详细输出,以便仅在$stderr
上获取错误消息。您还需要通过-y
以避免在$finalfilename
已存在时卡住。全部修复:
exec("ffmpeg -v error -y -i $videoPath -vframes 1 -an -s 306x173 -ss 03 $finalfilename 2>&1 >/dev/null", $stderr, $exit_status);
if ($exit_status === 0) {
print 'Done! :)';
} else {
print 'Error... :/';
// implode("\n", $stderr) will help you figure out what happened...
}
答案 2 :(得分:0)
您也可以将-loglevel quiet
用作global option,但如果您遇到错误,这将无济于事。