내가 OpenCV의를 사용하여 내 노트북 카메라로 비디오를 작성하려고 해요를 작성하지만 다음과 같은 오류 얻을 때 :OpenCV의 문제 카메라 비디오
VIDEOIO ERROR: V4L/V4L2: VIDIOC_S_CROP
VIDEOIO ERROR: V4L2: getting property #5 is not supported
OpenCV Error: Unsupported format or combination of formats (Gstreamer Opencv backend does not support this file type.) in CvVideoWriter_GStreamer::open, file /home/tul1/Downloads/opencv-3.0.0-alpha/modules/videoio/src/cap_gstreamer.cpp, line 1265
terminate called after throwing an instance of 'cv::Exception'
what(): /home/tul1/Downloads/opencv-3.0.0-alpha/modules/videoio/src/cap_gstreamer.cpp:1265: error: (-210) Gstreamer Opencv backend does not support this file type. in function CvVideoWriter_GStreamer::open
내가 사용하는 코드는 다음과 같습니다
#include <opencv/cv.hpp>
#include <opencv2/opencv.hpp>
#include <opencv/highgui.h>
int main(int argc, char** argv)
{
cvNamedWindow("DisplayCamera", CV_WINDOW_AUTOSIZE);
CvCapture* capture = cvCreateCameraCapture(0);
IplImage* frame;
const char filename[] = "video";
// int fourcc = CV_FOURCC('X','V','I','D');
// int fourcc = CV_FOURCC('P','I','M','1');
int fourcc = CV_FOURCC('M','J','P','G');
// int fourcc = CV_FOURCC('M', 'P', '4', '2');
// int fourcc = CV_FOURCC('D', 'I', 'V', '3');
// int fourcc = CV_FOURCC('D', 'I', 'V', 'X');
// int fourcc = CV_FOURCC('U', '2', '6', '3');
// int fourcc = CV_FOURCC('I', '2', '6', '3');
// int fourcc = CV_FOURCC('F', 'L', 'V', '1');
// fourcc = -1;
// int fourcc = 0;
// printf("%d\n", fourcc);
double fps = cvGetCaptureProperty(capture, CV_CAP_PROP_FPS);
int width = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH);
int height = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT);
CvSize size = cvSize(width , height);
int isColor = 1;
CvVideoWriter* writer = cvCreateVideoWriter(filename, fourcc, fps, size, isColor);
while(1)
{
frame = cvQueryFrame(capture);
if(!frame)
{
fprintf(stderr,"Frame error");
break;
}
cvWriteFrame(writer , frame);
cvShowImage("DisplayCamera", frame);
char c = cvWaitKey(30);
if(c == 27) break;
}
cvReleaseVideoWriter(&writer);
cvReleaseImage(&frame);
cvReleaseCapture(&capture);
cvDestroyWindow("DisplayCamera");
return 0;
}
을
CV_FOURCC로 모든 코덱을 테스트했지만 여전히 오류가 표시됩니다.
내가 뭘 잘못하고 있니? 코덱 문제가 있습니까?
코덱 문제처럼 보입니다 ...... –
어떻게 해결되는지 알고 계십니까? 나는 debian jessie를 사용하고 있습니다. – tul1
코덱은 gstreamer 백엔드에서 지원되지 않습니다. opencv의 사용되지 않는 c-api를 사용하지 마십시오. * 사용하지 마십시오. – berak