Я пытаюсь захватить кадры из видео, используя OpenCV и следуя этой статье. Но по некоторым причинам OpenCV не может создать объект VideoCapture
, который будет захватывать кадры. Файл в формате .mp4 совпадает с форматом файла, использованного в статье.
Код выглядит следующим образом:
#include "opencv4/opencv2/highgui/highgui.hpp"
// highgui - an interface to video and image capturing.
#include <iostream>
// The header files for performing input and output.
using namespace cv;
// Namespace where all the C++ OpenCV functionality resides.
using namespace std;
// For input output operations.
int main()
{
VideoCapture cap("Vid1.mp4");
// cap is the object of class video capture that tries to capture Bumpy.mp4
if ( !cap.isOpened() ) // isOpened() returns true if capturing has been initialized.
{
cout << "Cannot open the video file. \n";
return -1;
}
else {
printf("File has been opened \n");
}
}
Когда я собираю исполняемый файл и запускаю его, я получаю вывод на консоль: Невозможно открыть видеофайл.
Теперь, как уже упоминалось здесь Я добавил окружение var. OPENCV_VIDEOCAPTURE_DEBUG=1
для просмотра журналов из opencv и поиска следующих журналов на консоли:
[ WARN:0] global /home/user/opencv/modules/videoio/src/cap.cpp (108) open VIDEOIO(FFMPEG): trying capture filename='Vid1.mp4' ...
[ WARN:0] global /home/user/opencv/modules/videoio/src/cap.cpp (170) open VIDEOIO(FFMPEG): backend is not available (plugin is missing, or can't be loaded due dependencies or it is not compatible)
[ WARN:0] global /home/user/opencv/modules/videoio/src/cap.cpp (108) open VIDEOIO(GSTREAMER): trying capture filename='Vid1.mp4' ...
[ WARN:0] global /home/user/opencv/modules/videoio/src/cap.cpp (170) open VIDEOIO(GSTREAMER): backend is not available (plugin is missing, or can't be loaded due dependencies or it is not compatible)
[ WARN:0] global /home/user/opencv/modules/videoio/src/cap.cpp (108) open VIDEOIO(INTEL_MFX): trying capture filename='Vid1.mp4' ...
[ WARN:0] global /home/user/opencv/modules/videoio/src/cap.cpp (170) open VIDEOIO(INTEL_MFX): backend is not available (plugin is missing, or can't be loaded due dependencies or it is not compatible)
[ WARN:0] global /home/user/opencv/modules/videoio/src/cap.cpp (108) open VIDEOIO(V4L2): trying capture filename='Vid1.mp4' ...
[ WARN:0] global /home/user/opencv/modules/videoio/src/cap.cpp (131) open VIDEOIO(V4L2): can't create capture
[ WARN:0] global /home/user/opencv/modules/videoio/src/cap.cpp (108) open VIDEOIO(CV_IMAGES): trying capture filename='Vid1.mp4' ...
[ WARN:0] global /home/user/opencv/modules/videoio/src/cap.cpp (120) open VIDEOIO(CV_IMAGES): created, isOpened=0
[ WARN:0] global /home/user/opencv/modules/videoio/src/cap.cpp (108) open VIDEOIO(CV_MJPEG): trying capture filename='Vid1.mp4' ...
[ WARN:0] global /home/user/opencv/modules/videoio/src/cap.cpp (131) open VIDEOIO(CV_MJPEG): can't create capture
Может кто-нибудь объяснить, почему VideoCapture
создание объекта не удается?