2011-09-22 2 views
0

OpenCV로 큰 AVI 파일 (약 61000 프레임, 505MB)을 처리하려고 시도하고 있습니다 (cvCaptureFromAVI()cvQueryFrame()).파일 끝 부분에 cvQueryFrame()이 반환됩니다.

그러나 cvQueryFrame()NULL 포인터를 avi의 마지막 프레임 에 도달하기 전에 반환합니다.

long int numframe = 6000; 
while (numframe < 67000) 
{   
    frame = cvQueryFrame(capture); 
    if (! frame) 
    { 
     fprintf(stderr, "could not query the frame %ld.\n", numframe); 
     break; 
    } 

    char namefile[250]; 
    sprintf(namefile, "/media/6E86F8CB03A4DFA4/image-sequence/%ld.jpg", numframe); 
    cvSaveImage(namefile, frame); // save frame as a image 

    numframe++; 
} 

다른 누구도 동일한 문제가 있었고 주위에 방법을 찾았습니까? 내가 할 수 있는게 있나요?

답변

1

아마도 FFMPEG 통합 버그 중 하나가 발생했을 것입니다. This bugreport는 문제와 매우 유사하게 보입니다.

어떤 OpenCV 버전을 사용하고 있습니까?

어떤 방법

난 당신을 추천 :

  1. 는 FFMPEG없이 OpenCV의 구축 OpenCV의

    의 다른 버전
  2. 시도를 사용해보십시오. 아마도 OpenCV는 VfW 또는 GStreamer로 파일을 읽을 수 있습니다.

+0

저는 OpenCV 2.3.1을 사용하고 있습니다. 정확히 같은 문제가보고되었습니다. 버그 리포트에서 2.3, 2.3.1 및 2.3.2 문제가 있지만 OpenCV 2.2에서는 문제가 발생했다고 말했기 때문에 OpenCV 2.2를 사용해 보겠습니다. 답변 해 주셔서 감사합니다. – Yamaneko

관련 문제