1

我正在使用下面的代码从视频文件中抓取图像,效果很好。但是当我运行包含以下代码的 php 文件时,所有系统进程都会出现,我的意思是有关转换、导出等的一些信息。

我怎样才能让它静音运行?

$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...
}
4

3 回答 3

1

您应该更改重定向的顺序。像这样:

>/dev/null 2>&1 

或者将所有内容直接指向 /dev/null:

>/dev/null 2>/dev/null
于 2013-11-13T19:39:58.163 回答
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...
}
于 2013-11-13T20:06:37.170 回答
0

您也可以将-loglevel quiet其用作全局选项,但如果您遇到错误,这将无济于事。

于 2013-11-13T22:03:33.130 回答