我跑的时候
exec("ffmpeg -i $flv -y -f mjpeg -ss 00:00:05 -s 120x90 -vframes 1 -an thumb.jpg",$error);
$ error return的空值 但是当我使用cron job运行此命令时 这个发送通知邮件给我,其中包含
等信息FFmpeg版本0.5.2,版权所有(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 = generic -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-nonfree --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 建于2010年6月13日23:44:18,gcc:4.1.2 20080704(Red Hat 4.1.2-48)
我需要能够在php中获取这些错误,以便我可以知道拇指是否已创建
感谢。
答案 0 :(得分:4)
使用2>&1
exec("ffmpeg -i $flv -y -f mjpeg -ss 00:00:05 -s 120x90 -vframes 1 -an thumb.jpg 2>&1",$error);
答案 1 :(得分:1)
这个答案差不多6年后提出,但是较新的版本有一个选项-hide_banner
。
来自手册页
-hide_banner
禁止打印横幅。
所有FFmpeg工具通常都会显示版权声明,构建选项和库版本。此选项可用于禁止打印此信息。
您还可以使用选项-loglevel
来定义要显示的消息类型(错误,警告,信息,调试)。
答案 2 :(得分:0)
建立在Mauro的答案之上。一种检测错误的简洁方法是添加以下选项-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);
在这种情况下,{p> exec()
将始终为第二个参数$errors
分配一个字符串数组,每个元素对应一个不同的错误,因此您只需使用循环打印或处理每个错误: / p>
foreach($errors as $next) {
//handle error
echo $next;
}