Build problems with recent FFMpeg

Support and queries relating to all previous versions of ZoneMinder
Locked
jonatha
Posts: 21
Joined: Sun Jul 10, 2005 9:27 pm

Build problems with recent FFMpeg

Post by jonatha »

I have the 20050701 tarball for FFmpeg (not ffmpeg-devel, which I cannot locate).

One issue (resolved) is that there is no include subdirectory. Instead, the .h files are in libavcodec and libavformat. I solved this issue by creating an include/ffmpeg directory and copying all the .h files into it.

A more serious problem is that zm 1.21.2 appears to have been built with an earlier version of FFmpeg. I get

zm_mpeg.cpp: In member function `void VideoStream::SetupCodec(int, int, int, int, int)':
zm_mpeg.cpp:88: error: 'struct AVCodecContext' has no member named 'frame_rate'
zm_mpeg.cpp:89: error: 'struct AVCodecContext' has no member named 'frame_rate_base'

and indeed looking at the definition of this structure in avcodec.h those fields have either been removed or renamed.

What level of FFMpeg should I be using?

Thanks.
jonatha
Posts: 21
Joined: Sun Jul 10, 2005 9:27 pm

This is a dupe of 4468

Post by jonatha »

I see this has already been mentioned...
User avatar
cordel
Posts: 5210
Joined: Fri Mar 05, 2004 4:47 pm
Location: /USA/Washington/Seattle

Post by cordel »

I'm currenly building zm rpm with 1.4.8 This will be changing in the next couple weeks when I build more ffmpeg packages. Then it will use 1.4.9 CVS
As for as the devel goes it's part of the source and the devel is not made till after the package is made.
To install the Libraries do a make installlibs or in the configure script use the switch --include shared-libs if I remember right. Better yet do a configure --help and you will see what your build options are :wink:
Regards,
Cordel
jonatha
Posts: 21
Joined: Sun Jul 10, 2005 9:27 pm

Post by jonatha »

cordel wrote: I'm currenly building zm rpm with 1.4.8 This will be changing in the next couple weeks when I build more ffmpeg packages. Then it will use 1.4.9 CVS,
Thank you. I guess I will wait for the next release.
cordel wrote: As for as the devel goes it's part of the source and the devel is not made till after the package is made.
I could not parse this. Are you saying the ffmpeg devel package is part of the zoneminder rpm? (That is, how does avcodec.h wind up in /usr/include/ffmpeg?)
cordel wrote: To install the Libraries do a make installlibs or in the configure script use the switch --include shared-libs if I remember right.
I am confused again. Whose libraries are we talking about here ?
User avatar
cordel
Posts: 5210
Joined: Fri Mar 05, 2004 4:47 pm
Location: /USA/Washington/Seattle

Post by cordel »

The ffmpeg devel is built from the ffmpeg source. The devel is made from it as part of the rpm packaging process. So the ffmpeg librarys are in the ffmpeg source. To get them installed from the source, you have to use the include --shared-libs when you run the configure script for ffmpeg or after you make install ffmpeg you can run make installlibs (although the later has been broke in the past you would have to run ldconfig afterwards. That might be fixed now). Once you install ffmpeg and the libs you use the prefix that you used in configuring ffmpeg (I think the default is /usr/share if you don't set it) for the --include=ffmpeg (ie. --include-ffmpeg=/usr/share)
Hop[e that helps,
Regards,
Cordel
Image
Image
3939663646337

It's better to keep your mouth shut and appear stupid than open it and remove all doubt.
-Mark Twain
Locked