다음은 가장 기본적인 동영상 파일 재생 코드이다. 배포 파일의 용량을 최대한 줄이기 위해 사용하는 OpenCV 기능과 관련된 파일들만 프로젝트에 추가하여 사용하는 중 이 코드를 수행하면 정상적인 코덱으로 인코딩된 영상임에도 불구하고 cvCaptureFromFile( )의 반환 값이 0으로 고정되는 문제가 발생하였다. 이러한 문제는 입력 받은 경로에 해당 파일이 없거나, 해당 영상의 코덱을 확인할 수 없어 재생이 불가능 한 경우에 발생한다고 하여 통합 코덱을 설치하였고, 가장 보편적인 코덱으로 인코딩도 해 봤지만 문제는 해결되지 않았다.
1 CvCapture* capture = cvCaptureFromFile(filename);
2
3
if (capture == 0)
4 {
5 printf("file error");
6 return;
7 }
결국 짧은 영어로 Google 검색을 하였다. 검색 키워드는 "cvCaptureFromFile always NULL". 해결법은 opencv_ffmpeg.dll 파일을 프로젝트에 추가하는 방법이다. 이름을 보면 대충 MPEG 관련 코덱이 구현되었으랴 추측해본다. 이 파일을 프로젝트의 "Debug"(기본 설정된 출력 경로) 폴더에 추가하니 동영상 재생이 막힘 없이 잘 된다.
'Programing > OpenCV' 카테고리의 다른 글
Visual studio 2013에서 OpenCV 설정하기 (1) | 2014.04.18 |
---|