opencv를 처음 사용하고 비디오 파일에 쓸 때 문제가 있습니다. 기본적으로 나는 HD 웹캠을 읽고 avi로 씁니다. runable 코드 :opencv를 사용하여 녹음 할 때 비트 전송률에 대한 비트 전송률 허용치가 너무 작음
#include "cv.h"
#include "highgui.h"
int main(int argc, char** argv){
CvCapture* capture=NULL;
capture=cvCreateCameraCapture(0);
if(!capture){
return -1;
}
IplImage *bgr_frame=cvQueryFrame(capture);
double fps=cvGetCaptureProperty(capture, CV_CAP_PROP_FPS);
CvSize size=cvSize((int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH),
(int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT));
CvVideoWriter* writer=cvCreateVideoWriter(argv[1],
CV_FOURCC('M','J','P','G'),
fps,
size);
cvNamedWindow("Video", CV_WINDOW_AUTOSIZE);
while((bgr_frame=cvQueryFrame(capture))){
cvWriteFrame(writer, bgr_frame);
cvShowImage("Video", bgr_frame);
char c=cvWaitKey(60);
if(c==27){
break;
}
}
cvReleaseVideoWriter(&writer);
cvReleaseImage(&bgr_frame);
cvReleaseCapture(&capture);
return 0;
}
실행, 나는 카메라가 맥북에 HD 웹캠 오류를
Output #0, avi, to 'test.avi':
Stream #0.0: Video: mjpeg, yuvj420p, 1280x720, q=2-31, 117964 kb/s, 90k tbn
[mjpeg @ 0x7fd55b805600] bitrate tolerance too small for bitrate
WARNING: Could not create empty movie file container.
OpenCV Error: Assertion failed (dst.data == dst0.data) in cvCvtColor, file /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_opencv/opencv/work/OpenCV-2.3.1/modules/imgproc/src/color.cpp, line 3175
terminate called throwing an exceptionAbort trap: 6
를 얻을. 문제를 일으키는 카메라입니까? 그렇다면 비트 전송률 허용치를 낮출 수 있습니까? opencv를 처음 사용했습니다. 감사!
그런데 argv [1] .avi가없는 경우 CvVideoWriter가 새 파일을 만들 수 있습니까?
파이썬 라이브러리에서 같은 문제가 있습니다. –
@DanielFlores 카메라의 FPS는 0입니다. – YankeeWhiskey