OpenCV 3.0 won't compile with FFMPEG support?
I would like to use the ffmpeg library so I have video support with my OpenCV 3.0 build. I'm using the excellent step-by-step instructions from the book Practical OpenCV by Samarth Brahmbhatt (http://www.it-ebooks.info/book/3145/) But every time I run make
, the build quits while trying to link libopencv_videoio.so, and throws this error:
Linking CXX shared library ../../lib/libopencv_videoio.so
/usr/bin/ld: /usr/local/lib/libavcodec.a(vc1dsp_mmx.o): relocation R_X86_64_PC32 against symbol `ff_pw_9' can not be used when making a shared object; recompile with -fPIC
First, there was actually some similar error, and I fixed it by recompiling x264 with the additional option --enable-pic
. That was easy.
But I've recompiled ffmpeg a bunch of times, with the options --extra-cflags=-fPIC
, --extra-cxxflags=-fPIC
, --enable-pic
, and nearly every combination of those options. Nothing will make this work.
I don't have any problem following the same steps with OpenCV 2.4.9.
Help!
Any reason why you want ffmpeg explicitly? It has been replaced by libav on newer linux systems :)
Really? I suppose I'm not too concerned where my video support comes from... I just wanted video support and I had instructions for how to make ffmpeg work. I actually solved the question before I asked it, only I wasn't able to answer immediately due to new-user restrictions.
Do you have instructions for setting up opencv with libav, or is it just an option in ccmake and it "just works"?
Just a compile option yes :) libav is pretty much preinstalled on linux systems
Thanks for the tip!
Ok, so I again have a need to compile opencv with video support, but I do not see a
WITH_AV
option or anything that looks like that when I runccmake ..
, am I missing something?It is still the flag WITH_FFMPEG but under the hood this has been changed by libav in Linux distributions.