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

shi*_*hin 3 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");
Run Code Online (Sandbox Code Playgroud)

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

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

我也试过了.但我没有在变量中收到任何错误消息$output

Álv*_*lez 5

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

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

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);
Run Code Online (Sandbox Code Playgroud)