php exec ffmpeg как получить ошибки - PullRequest
2 голосов
/ 17 июля 2010

когда я бегу

exec("ffmpeg -i $flv -y -f mjpeg -ss 00:00:05 -s 120x90 -vframes 1 -an thumb.jpg",$error);

$ error пустое значение возврата но когда я запускаю эту команду с помощью задания cron отправьте мне уведомление по электронной почте, содержащее такую ​​информацию, как

FFmpeg версия 0.5.2, Copyright (c) 2000-2009 Fabrice Bellard, et al. конфигурация: --prefix = / usr --libdir = / usr / lib64 --shlibdir = / usr / lib64 --mandir = / usr / share / man --incdir = / usr / include --disable-avisynth --extra -cflags = -O2 -g -pipe -Wall -Wp, -D_FORTIFY_SOURCE = 2 -fexceptions -fstack-protector --param = ssp-buffer-size = 4 -m64 -mtune = универсальный -fPIC --enable-avfilter - enable-avfilter-lavf --enable-libdirac --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora - -enable-libx264 --enable-gpl --enable-несвободный --enable-postproc --enable-pthreads --enable-shared --enable-swscale --enable-vdpau --enable-version3 --enable-x11grab libavutil 49.15. 0 / 49.15. 0 libavcodec 52.20. 1 / 52.20. 1 libavformat 52.31. 0 / 52,31. 0 libavdevice 52. 1. 0 / 52. 1.0 libavfilter 0. 4. 0 / 0. 4. 0 libswscale 0. 7. 1 / 0. 7. 1 libpostproc 51. 2. 0 / 51. 2.0 построено 13 июня 2010 23:44:18, gcc: 4.1.2 20080704 (Red Hat 4.1.2-48)

Мне нужно иметь возможность получить эти ошибки в PHP, чтобы я мог знать, был создан большой палец или нет

Спасибо.

Ответы [ 3 ]

4 голосов
/ 17 июля 2010

Перенаправить вывод с помощью 2>&1

exec("ffmpeg -i $flv -y -f mjpeg -ss 00:00:05 -s 120x90 -vframes 1 -an thumb.jpg 2>&1",$error);

1 голос
/ 22 января 2016

Этот ответ приходит почти через 6 лет после вопроса, но в более новых версиях есть опция -hide_banner.

Со страницы руководства

-hide_banner

Подавить печать баннера.

Все инструменты FFmpeg обычно показывают уведомление об авторском праве, параметры сборки и версии библиотеки.Эта опция может использоваться для подавления печати этой информации.

Также вы можете использовать опцию -loglevel, чтобы определить, какой тип сообщения (ошибки, предупреждения, информация, отладка) вы хотите показать.

0 голосов
/ 20 марта 2016

Здание поверх ответа Мауро. Чистым способом обнаружения ошибок будет добавление следующих параметров -hide_banner и -loglevel error.

exec("ffmpeg -i $flv -y -f mjpeg -ss 00:00:05 -s 120x90 -vframes 1 -an thumb.jpg -hide_banner -loglevel error 2>&1", $errors);

exec() всегда будет назначать массив строк второму параметру в этом случае $errors, каждый элемент соответствует своей ошибке, так что вы можете просто распечатать или обработать каждую ошибку, используя цикл:

foreach($errors as $next) {
    //handle error
    echo $next;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...