【发布时间】:2018-02-27 17:48:20
【问题描述】:
我正在尝试读取视频文件,但出现错误。 代码是:
#include <iostream>
#include <opencv/highgui.h>
#include <opencv/cv.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char* argv[])
{
Mat inputVideo;
Mat frame;
Mat HSV;
Mat tracking;
char checkKey;
VideoCapture capture;
capture.open("video/input.mp4");
capture.set(CV_CAP_PROP_FRAME_WIDTH, 640);
capture.set(CV_CAP_PROP_FRAME_HEIGHT,480);
namedWindow("Original Video", WINDOW_AUTOSIZE );
while(1){
capture.read(inputVideo);
if (!inputVideo.empty())
{
imshow("Original Video",inputVideo);
}
waitKey(20);
}
return 0;
}
在运行此代码时,我得到的错误是:
无法停止流:设备的 ioctl 不合适
(video_reading:3459): GLib-GObject-CRITICAL **: g_object_set: 断言“G_IS_OBJECT(对象)”失败
我试图寻找解决方案,但我没有得到它。谁能帮我解决这个错误。
【问题讨论】:
-
可能是ffmpeg错误。尝试使用 cmake 再次构建它
-
@Ran 你用 Gstreamer 构建了
opencv吗? -
我不知道什么是 gstreamer。我使用以下命令构建了opencv cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES= ON -D WITH_QT=ON -D WITH_OPENGL=ON -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules -D PYTHON_EXECUTABLE=/usr/bin/python3 -D WITH_CUDA=ON -D WITH_FFMPEG=ON -D ENABLE_FAST_MATH=1 - D CUDA_FAST_MATH=1 -D WITH_CUBLAS=1 ..