как отобразить вывод ошибки ffmpeg - PullRequest
2 голосов
/ 15 января 2011

Я выполняю определенный код через 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, и он не запускается в командной строке вручную.

1 Ответ

3 голосов
/ 15 января 2011

В POSIX-совместимых системах и приложениях ошибки будут отправляться в STDERR, а не в STDOUT.exec заполнит аргумент $output только STDOUT:

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"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...