c++ - repositorio - ubuntu packages xenial
OpenCV 3.0.0 comete un error con FFMPEG (3)
He estado usando OpenCV por un tiempo. Sin embargo, recientemente cambié mi sistema a un clúster donde no tengo ningún permiso de administrador. El problema es así:
En mi carpeta de inicio, instalé FFMPEG (última versión estable disponible en el sitio ffmpeg). Lo instalé en $ HOME, y así en $ HOME / lib están los archivos de la biblioteca instalados. Para obtener más información, compilé FFMPEG con las siguientes opciones:
./configure --prefix=$HOME --enable-shared --enable-pic
Luego descargué la última versión estable de OpenCV 3.0.0 y la configuré usando ccmake. Cuando intento make -j8
, me da el siguiente error.
Scanning dependencies of target opencv_videoio
[ 63%] [ 63%] [ 63%] [ 63%] [ 63%] [ 63%] Building CXX object modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap.cpp.o
Building CXX object modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_mjpeg_decoder.cpp.o
Building CXX object modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_images.cpp.o
Building CXX object modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_v4l.cpp.o
Building CXX object modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_mjpeg_encoder.cpp.o
Building CXX object modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_ffmpeg.cpp.o
In file included from /home/uujjwal/libraries/opencv-nogpu/opencv-3.0.0/modules/videoio/src/cap_ffmpeg.cpp:45:0:
/home/uujjwal/libraries/opencv-nogpu/opencv-3.0.0/modules/videoio/src/cap_ffmpeg_impl.hpp:1546:71: error: use of enum ''AVCodecID'' without previous declaration
/home/uujjwal/libraries/opencv-nogpu/opencv-3.0.0/modules/videoio/src/cap_ffmpeg_impl.hpp:1556:83: error: use of enum ''AVCodecID'' without previous declaration
make[2]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_ffmpeg.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
Sin embargo, sin soporte ffmpeg, funciona bien. Sin embargo, necesito apoyo ffmpeg debido a la naturaleza de mi trabajo.
Al tratar de resolver el problema, traté de instalar OpenCV 2.4.11 pero también me dio este error. La última versión de GIT no me da este error, sino un error del que una parte es como esta
Linking CXX shared library ../../lib/libopencv_highgui.so /usr/bin/ld: /home/matheus/ffmpeg_build/lib/../lib/libavcodec.a(avpacket.o): relocation R_X86_64_32 against `.rodata.str1.1'' can not be used
He pegado el error anterior de otra pregunta no resuelta en línea y, por lo tanto, los nombres de las carpetas son diferentes, pero el error de reubicación es exactamente el mismo.
Al tratar de resolver el problema, busqué y encontré el siguiente enlace http://answers.opencv.org/question/12597/build-problems-for-opencv-241-with-ubuntu-1204-lts/
Sin embargo, una de las respuestas mencionadas allí cambió algunas líneas en el archivo cap_ffmpeg_impl.hpp. Traté de hacerlo, pero o no puedo hacerlo correctamente o si algo más está yendo mal y no funciona. No se mencionan los números de línea exactos ni los cambios exactos, por lo que tengo dificultades para cambiar las cosas y estar seguro.
Estoy usando Fedora 19 (Schrodinger Cat) como el sistema operativo. Espero que los detalles de mi pregunta sean claros y espero que la comunidad me obligue con una buena respuesta.
Saludos Ujjwal
Me encontré con esto también tratando de construir OpenCV 3.0.0 en Ubuntu 12.04. El problema parece ser un error en OpenCV. Edité opencv-3.0.0 / modules / videoio / src / cap_ffmpeg_impl.hpp, reemplazando AVCodecID
con CV_CODEC_ID
en todos los lugares excepto el #define
- en las líneas 1174 (opcional), 1546 y 1556 - y la compilación funcionó.
Para obtener más información, consulte mi publicación en el rastreador de problemas de OpenCV. Y el error se había corregido en la rama maestra de OpenCV antes de mi publicación como parte de esta confirmación.
Suponiendo que no utiliza FFMPEG con OpenCV, puede desactivarlo compilado:
Cuando ejecuta Cmake, es decir, cuando hace esto:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local /
-D PYTHON2_PACKAGES_PATH=~/.virtualenvs/cv/lib/python2.7/site-packages /
-D PYTHON2_LIBRARY=/usr/local/Cellar/python/2.7.10/Frameworks/Python.framework/Versions/2.7/bin /
-D PYTHON2_INCLUDE_DIR=/usr/local/Frameworks/Python.framework/Headers /
-D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON /
-D BUILD_EXAMPLES=ON /
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules ..
Agregue este indicador a la mezcla -DWITH_FFMPEG = 0 para no compilar la parte FFMPEG
Esta versión es compatible con ffmpeg
conda install --channel conda-forge