Как узнать ошибку в команде в функции exec? - PullRequest
3 голосов
/ 30 июня 2010

Я использую команду ffmpeg, чтобы вырезать видео с функцией exec в php. Но он не создает видеофайл и не показывает никаких ошибок. Я использовал exec как показано ниже

exec("ffmpeg -i input.flv -ss 00:00:30.0 -t 00:00:10.0 -acodec copy -vcodec copy -async 1 output.flv");

Могу ли я получить какую-либо помощь, чтобы узнать, какая здесь ошибка?

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

Я тоже попробовал. Но я не получил сообщение об ошибке в переменной $output

1 Ответ

5 голосов
/ 30 июня 2010

Как правило, сначала необходимо проверить возвращаемое значение: ненулевые значения указывают на то, что произошла ошибка (учитывая, что автор выполняемой программы придерживается стандарта). Это значение фиксируется в третьем аргументе 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);
...