php - 如何显示ffmpeg错误输出

标签 php cron 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 脚本,它不是在命令行中手动运行的。

最佳答案

在 POSIX 兼容的系统和应用程序中,错误将被发送到 STDERR,而不是 STDOUT。 exec 只会用 STDOUT 填充 $output 参数:

exec("foo", $output);
var_dump($output);

显示:

array(0) {
}

如果你想让它工作,你必须将 STDERR 重定向到 STDOUT。例如,在 *nix 上:

exec("foo 2>&1", $output);
var_dump($output);

将显示:

array(1) {
  [0]=>
  string(18) "sh: foo: not found"
}

关于php - 如何显示ffmpeg错误输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4697743/

相关文章:

Jenkins Cron 表达式未在正确的时间安排

docker - docker-compose 中的 ffmpeg 无法启动

ffmpeg:我不能让 tee 为流媒体工作

node.js - Discord.js 音乐机器人 "TypeError"使用调度程序播放音频时

php - 如何放置 Laravel 并使用 artisan 命令?

php - 帖子下方同一类别的 Wordpress 帖子

PHP MySQL 从一个表中选择 ID,从另一个表中选择信息

php - WordPress。使用 substr 对类别标题进行字符限制

linux - Cron Job 在 Linux 环境下不工作

unix - cron 命令每 12 小时运行一次