Cannot make zoneminder on Centos 5.6 - ffmpeg errors

Forum for questions and support relating to the 1.24.x releases only.
Locked
m1ke
Posts: 53
Joined: Thu Nov 08, 2007 1:37 pm
Location: Surrey

Cannot make zoneminder on Centos 5.6 - ffmpeg errors

Post by m1ke »

Hi all,
Following the Centos Wiki guide & have hit a wall. I have installed ffmpeg 0.6.3. Done the 'make instal'l & 'make install-libs'. But when I come to 'make' zoneminder I get the following barf:

[root@zm1 ZoneMinder-1.24.4]# make
make all-recursive
make[1]: Entering directory `/root/ZoneMinder-1.24.4'
Making all in src
make[2]: Entering directory `/root/ZoneMinder-1.24.4/src'
g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/include -I/usr/include -Wall -Wno-sign-compare -fno-inline -I/usr/include -g -O2 -MT zmc.o -MD -MP -MF .deps/zmc.Tpo -c -o zmc.o zmc.cpp
In file included from zm_mpeg.h:23,
from zm_stream.h:27,
from zm_event.h:39,
from zm_zone.h:27,
from zm_monitor.h:26,
from zmc.cpp:28:
zm_ffmpeg.h:33:2: error: #error "No location for avutils.h found"
zm_ffmpeg.h:40:2: error: #error "No location for avcodec.h found"
zm_ffmpeg.h:47:2: error: #error "No location for avformat.h found"
zm_ffmpeg.h:55:2: error: #error "No location for swscale.h found"
zm_mpeg.h:43: error: use of enum âPixelFormatâ without previous declaration
zm_mpeg.h:44: error: ISO C++ forbids declaration of âAVOutputFormatâ with no type
zm_mpeg.h:44: error: expected â;â before â*â token
zm_mpeg.h:45: error: ISO C++ forbids declaration of âAVFormatContextâ with no type
zm_mpeg.h:45: error: expected â;â before â*â token
zm_mpeg.h:46: error: ISO C++ forbids declaration of âAVStreamâ with no type
zm_mpeg.h:46: error: expected â;â before â*â token
zm_mpeg.h:47: error: ISO C++ forbids declaration of âAVFrameâ with no type
zm_mpeg.h:47: error: expected â;â before â*â token
zm_mpeg.h:48: error: ISO C++ forbids declaration of âAVFrameâ with no type
zm_mpeg.h:48: error: expected â;â before â*â token
make[2]: *** [zmc.o] Error 1
make[2]: Leaving directory `/root/ZoneMinder-1.24.4/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/ZoneMinder-1.24.4'
make: *** [all] Error 2

How do I make it work ??

Do I need to use --with-ffmpeg=<path to ffmpeg root> - but I don't know where the ffmpeg has installed itself - trying to find it now...
Is there something I should know about ?

Thanks in advance,

Mike.
User avatar
zoneminder
Site Admin
Posts: 5215
Joined: Wed Jul 09, 2003 2:07 pm
Location: Bristol, UK
Contact:

Re: Cannot make zoneminder on Centos 5.6 - ffmpeg errors

Post by zoneminder »

What does configure have to say about those headers? It should display if/where it has found them as it runs. The results should also be present (in a more verbose) form in config.log.
Phil
m1ke
Posts: 53
Joined: Thu Nov 08, 2007 1:37 pm
Location: Surrey

Re: Cannot make zoneminder on Centos 5.6 - ffmpeg errors

Post by m1ke »

zoneminder wrote:What does configure have to say about those headers? It should display if/where it has found them as it runs. The results should also be present (in a more verbose) form in config.log.
Hi thanks for getting back,
I have just done a find for 'ffmpeg' & seems the root is /usr/local/share/ffmpeg. Tried adding ' --with-ffmpeg=/usr/local/share/ffmpeg' to the ./configure line but still the same output.

When you ask "What does configure have to say about those headers?" do you mean 'avutils.h' , 'avcodec.h' for example ??

Not sure which file names are the headers ?

Thanks again,

Mike.
m1ke
Posts: 53
Joined: Thu Nov 08, 2007 1:37 pm
Location: Surrey

Re: Cannot make zoneminder on Centos 5.6 - ffmpeg errors

Post by m1ke »

OK so I did a search for the word 'header' in config.log & here is I think what you are looking for ?

configure:7631: checking libavutil/avutil.h presence
configure:7631: g++ -E -I/usr/local/share/ffmpeg/include conftest.cpp
configure:7631: $? = 0
configure:7631: result: yes
configure:7631: WARNING: libavutil/avutil.h: present but cannot be compiled
configure:7631: WARNING: libavutil/avutil.h: check for missing prerequisite headers?
configure:7631: WARNING: libavutil/avutil.h: see the Autoconf documentation
configure:7631: WARNING: libavutil/avutil.h: section "Present But Cannot Be Compiled"
configure:7631: WARNING: libavutil/avutil.h: proceeding with the compiler's result
configure:7631: checking for libavutil/avutil.h
configure:7631: result: no

This seems to mean to me that the ffmpeg headers can't be found ? I thought I installed them when I did installed ffmpeg - 'make install-libs' as per the WiKi?
Does this post explain what I have to do perhaps? http://kb.bobcares.com/?View=entry&EntryID=252

Thanks,
Mike.
m1ke
Posts: 53
Joined: Thu Nov 08, 2007 1:37 pm
Location: Surrey

Re: Cannot make zoneminder on Centos 5.6 - ffmpeg errors

Post by m1ke »

Ok tried the following & still no joy.

ffmpeg configured with:
./configure --enable-shared --enable-postproc --enable-swscale --enable-gpl

ZoneMinder-1.24.4 configured with:
./configure --with-webdir=/var/www/html/zm --with-cgidir=/var/www/cgi-bin --with-ffmpeg=/usr/local/share/ffmpeg --with-extralibs="-L/usr/local/include/libavutil -L/usr/local/include/libavcodec -L/usr/local/include/libavformat -L/usr/local/include/libswscale"

I can't seem to get the thing to build - I have trawled the web & forums & whilst there have been other instances of ' present but cannot be compiled' issues I can't seem to get any of the solutions to work for me. I have pointed ZM to the locations of the supposed missing headers but the result is always the same.
Maybe the clue is 'WARNING: libavutil/avutil.h: section "Present But Cannot Be Compiled" ' ?? I don't know what this means the headers do indeed seem to be there - at least files that match those listed in the errors such as 'avutil.h' - I assume these are the header files ? If so why don't they compile?
Or am I doing something daft in my frustration?

I don't understand - the Wiki makes it look so easy :(

Lastly if & when I get this to work I'd like to update that Wiki with my experience so others don't have to go through all this nonsence as well!

Mike.
mastertheknife
Posts: 678
Joined: Wed Dec 16, 2009 4:32 pm
Location: Israel

Re: Cannot make zoneminder on Centos 5.6 - ffmpeg errors

Post by mastertheknife »

Add CPPFLAGS="-D__STDC_CONSTANT_MACROS" to the end of the ./configure line for zoneminder.

mastertheknife
Kfir Itzhak.
m1ke
Posts: 53
Joined: Thu Nov 08, 2007 1:37 pm
Location: Surrey

Re: Cannot make zoneminder on Centos 5.6 - ffmpeg errors

Post by m1ke »

The Wiki states:
Now we need to make sure we use the lasted "tested" version of "ffmpeg".

What is the latest "tested" version of "ffmpeg" ?

Thanks,

Mike.
m1ke
Posts: 53
Joined: Thu Nov 08, 2007 1:37 pm
Location: Surrey

Re: Cannot make zoneminder on Centos 5.6 - ffmpeg errors

Post by m1ke »

mastertheknife wrote:Add CPPFLAGS="-D__STDC_CONSTANT_MACROS" to the end of the ./configure line for zoneminder.

mastertheknife
Ahh, at last it works. Thanks for that. I notice that 'CPPFLAGS="-D__STDC_CONSTANT_MACROS" ' is listed as an option on the Centos Wiki but it says it is only for use on Centos 5.5 64-bit systems. Mine is a Centos 5.6 32-bit system.

So I'll now have to find out how to edit the Wiki to add that choise bit of information (that the above flag is needed for 32-bit Centos as well as 64) ....

But for now it's on with the Wiki & lets see if I can get this thing fired up.

Many thanks again, feel much better now... Hope nothing else comes up :)
Mike.
Locked