如何知道exec函数中的命令错误?

时间:2010-06-30 10:23:24

标签: php ffmpeg exec

我正在使用ffmpeg命令在php中使用exec函数剪切视频。但它不是创建视频文件,也不显示任何错误。我用exec如下

exec("ffmpeg -i input.flv -ss 00:00:30.0 -t 00:00:10.0 -acodec copy -vcodec copy -async 1 output.flv");

我可以帮助了解这里发生的错误是什么吗?

exec("ffmpeg -i input.flv -ss 00:00:30.0 -t 00:00:10.0 -acodec copy -vcodec copy -async 1 output.flv",$output);

我也试过了。但是我没有在变量$output

中收到任何错误消息

1 个答案:

答案 0 :(得分:5)

作为一般规则,首先需要检查返回值:非零值表示存在错误(假设您运行的程序的作者符合标准)。该值在exec()的第三个参数中捕获。

第二,许多程序不向标准输出发送错误消息。相反,他们使用标准错误。在这种情况下,前者只有redirect似乎是安全的:

exec("ffmpeg -i input.flv -ss 00:00:30.0 -t 00:00:10.0 -acodec copy -vcodec copy -async 1 output.flv 2>&1", $output, $return_value);