Я пишу приложение Electron- vue в Ubuntu 18.04, где основная подпрограмма включает вызов некоторых методов внутри библиотеки C ++, которую я написал, которая использует cv :: VideoCapture для обработки данного видео кадр за кадром.
Библиотека скомпилирована как stati c библиотека, и я написал собственный модуль nodejs для вызова методов, модуль скомпилирован с использованием cmake- js.
Я обнаружил, что cv: : VideoCapture не может открыть видео по его абсолютному пути: вызов метода isOpened()
возвращает false
. Это происходит только при попытке с приложением Electron, когда при компиляции с файлом main.cpp
библиотека (и cv :: VideoCapture) работает, как и ожидалось.
Я попытался использовать ffmpeg в качестве API-интерфейса backiond видео, теперь я Я перекомпилирую opencv с поддержкой libv4l.
Что мне здесь не хватает?
Я использую opencv 4.2.0, скомпилированный с поддержкой CUDA. Вот полная команда cmake:
cmake \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D BUILD_opencv_cudacodec=OFF \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D INSTALL_C_EXAMPLES=OFF \
-D BUILD_EXAMPLES=OFF \
-D WITH_TBB=ON \
-D WITH_CUDA=ON \
-D ENABLE_FAST_MATH=ON \
-D CUDA_FAST_MATH=ON \
-D WITH_CUFFT=ON \
-D WITH_CUBLAS=ON \
-D WITH_NVCUVID=ON \
-D WITH_TBB=ON \
-D WITH_FFMPEG=ON \
-D WITH_V4L=ON \
-D WITH_LIBV4L=ON \
-D CUDA_GENERATION=Pascal \
-D WITH_QT=OFF \
-D WITH_OPENGL=OFF \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D OPENCV_ENABLE_NONFREE=ON \
-D OPENCV_EXTRA_MODULES_PATH=${OPENCV_CONTRIB_MODULES} \
-D CMAKE_CXX_COMPILER=/usr/bin/g++ \
-D CMAKE_C_COMPILER=/usr/bin/gcc \
-D CUDA_HOST_COMPILER:FILEPATH=/usr/bin/gcc-7 \
..