Ответ 1
Данные об ошибках выводятся из потока целевой программы STDERR
. Вы можете получить доступ к данным об ошибках через нормальную возвращаемую строку из shell_exec()
, добавив 2>&1
к команде, которая перенаправит STDERR
в STDOUT
, поток, который вы сейчас видите:
var_dump(shell_exec("ffmpeg -i /var/www/html/sitedomain/httpdocs/tmp/ebev1177.mp4 2>&1"));
Вы также можете взглянуть на proc_open()
, который позволит вам получить доступ к STDIN
, STDOUT
и STDERR
как три отдельные потоки, которые могут позволить намного более мелкомасштабный контроль над целевой программой и точно как вы обрабатываете ввод и вывод на него, включая перенаправление всех и каждого из них непосредственно в файл журнала, если это необходимо. Имейте в виду, что это гораздо более сложный механизм с множеством подводных камней и опасностью отключения.
Более подробную информацию о стандартных потоках можно найти здесь.