如何显示ffmpeg错误输出
我正在通过 ffmpeg 执行某些代码,将 avi 文件编码为 flv。我的 ffmpeg 代码是正确的并且工作正常,但是当发生一些错误时(假设它是一个损坏的 avi 文件,ffmpeg 将不会对其进行编码),所以我想知道错误是什么。这是一个示例代码:
$v_cmd=" some code to transcode";
exec($v_cmd,$v_output,$v_status);
if($v_status == 0)
{
echo "Success!";
}
else
{
echo "ERROR: ".$v_output;
}
但是这个 $v_output 只是显示为 ERROR: Array
...我尝试过,
echo "ERROR: ".implode($v_output);
但它是空白的...我怎样才能得到 ffmpeg 给出的错误消息,以便我可以理解出了什么问题。这是一个 php cron 脚本,它不是在命令行中手动运行的。
I am executing certain code through ffmpeg to encode avi files to flv. My ffmpeg code is correct and is working fine, but when some error occurs (suppose it is a corrupted avi file, ffmpeg will not encode it), so i want to know what the error is. Here is a sample code:
$v_cmd=" some code to transcode";
exec($v_cmd,$v_output,$v_status);
if($v_status == 0)
{
echo "Success!";
}
else
{
echo "ERROR: ".$v_output;
}
But this $v_output is just showing up as ERROR: Array
... i tried
echo "ERROR: ".implode($v_output);
but it was blank... how can i get the error message that ffmpeg gave so that i can understand what went wrong. This is a php cron script and it is not run in command line manually.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在符合 POSIX 标准的系统和应用程序中,错误将发送到 STDERR,而不是 STDOUT。
exec
只会用 STDOUT 填充$output
参数:显示:
如果您希望它起作用,您必须将 STDERR 重定向到 STDOUT。例如,在 *nix:
上将显示:
In POSIX-compliant systems and applications, errors will be sent to STDERR, not STDOUT.
exec
will only populate the$output
argument with STDOUT:Displays:
You have to redirect STDERR to STDOUT if you want this to work. Per example, on *nix:
Will display: