Situation:
I use ffmpeg (via php) to convert video files. I configured my script converter to return the result (like the $ error array) from the exec () command. My assumption was that if the error did not occur, $ error would be an empty array.
Problem:
The problem is that the script returns output even if there were no errors in the conversion. (I can say that there was no mistake as the video being played is being output.)
Question:
How does ffmpeg format its errors / output? I want to be able to parse this and determine if an error has occurred and what error.
Thanks!
Code:
* Example output without errors:
FFmpeg version git-N-29201-g37c0a44, Copyright (c) 2000-2011 the FFmpeg developers| built on Sep 9 2011 23:29:21 with gcc 4.1.2 20080704 (Red Hat 4.1.2-50)| configuration: --prefix=/usr/local/hgffmpeg --enable-shared --enable-nonfree --enable-avfilter --enable-filter=movie --enable-gpl --enable-pthreads --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --extra-cflags=-I/usr/local/hgffmpeg/include/ --extra-ldflags=-L/usr/local/hgffmpeg/lib --enable-decoder=ac3 --enable-decoder=asv1 --enable-decoder=asv2 --enable-decoder=flac --enable-decoder=wmv1 --enable-decoder=wmv2 --enable-decoder=wmv3 --enable-decoder=mpeg1video --enable-decoder=mpeg2video --enable-decoder=flv --enable-decoder=fraps --enable-decoder=h263 --enable-decoder=h264 --enable-decoder=libgsm --enable-decoder=mjpeg --enable-decoder=mpeg4 --enable-decoder=mpeg4aac --enable-decoder=mpegvideo --enable-decoder=mpeg4aac --enable-decoder=msmpeg4v1 --enable-decoder=msmpeg4v2 --enable-decoder=msmpeg4v3 --enable-decoder=pcm_alaw --enable-decoder=pcm_mulaw --enable-encoder=ac3 --enable-encoder=asv1 --enable-encoder=asv2 --enable-encoder=flac --enable-encoder=h263 --enable-encoder=flashsv --enable-encoder=flv --enable-encoder=libgsm --enable-encoder=mjpeg --enable-encoder=msmpeg4v3 --enable-encoder=pcm_alaw --enable-encoder=pcm_mulaw --enable-encoder=mpeg1video --enable-encoder=mpeg2video --enable-encoder=mpeg4 --enable-encoder=msmpeg4v1 --enable-encoder=msmpeg4v2 --enable-encoder=rv10 --enable-encoder=rv20 --enable-encoder=vorbis --enable-encoder=wmav1 --enable-encoder=wmav2 --enable-encoder=wmv1 --enable-encoder=wmv2 --disable-demuxer=v4l --disable-demuxer=v4l2 --enable-version3| libavutil 50. 40. 1 / 50. 40. 1| libavcodec 52.120. 0 / 52.120. 0| libavformat 52.108. 0 / 52.108. 0| libavdevice 52. 4. 0 / 52. 4. 0| libavfilter 1. 79. 1 / 1. 79. 1| libswscale 0. 13. 0 / 0. 13. 0|[mpeg1video @ 0x1f6d030] skipped MB in I frame at 5 0|[mpeg1video @ 0x1f6d030] Warning MVs not available|[mpeg1video @ 0x1f6d030] concealing 260 DC, 260 AC, 260 MV errors|[mpegvideo @ 0x1f6a660] Estimating duration from bitrate, this may be inaccurate|Input
source share