-3

我正在尝试在 opencv 中打开 .avi 文件。当我运行代码时,我没有收到任何错误,但视频无法播放。我四处搜索,我想它需要安装 ffmpeg。所以我使用 sudo apt-get install libavformat-dev libavcodec-dev libavfilter-dev libswscale-dev 安装它仍然不起作用。也许编译器需要知道在哪里可以找到 ffmpeg。我正在使用 gcc 编译器。谢谢。

@Paul R:我刚刚从 Learning Opencv 教科书中复制了代码,所以没有包括它。编码:

#include<stdio.h>
#include<highgui.h>
int main( int argc, char** argv ) {
cvNamedWindow( "Example2", CV_WINDOW_AUTOSIZE );
CvCapture* capture = cvCreateFileCapture( argv[1] );
IplImage* frame;
while(1) {
    printf("Inside");
    frame = cvQueryFrame( capture );
    if( !frame ) break;
    cvShowImage( "Example2", frame );
    char c = cvWaitKey(33);
    if( c == 27 ) break;
}
cvReleaseCapture( &capture );
cvDestroyWindow( "Example2" );

}

@praks411:

printf("%s",argv[1]);
CvCapture* capture = cvCreateFileCapture( argv[1] );
if(!capture)
{   
        printf("failed\n");
    return -1; 
}

它正确打印参数并且捕获失败。

4

1 回答 1

1

我认为这也可能是您安装的问题,因为您在安装 opencv 后安装了 ffmpeg,为什么不按照此链接在 ubuntu 上正确安装。

https://help.ubuntu.com/community/OpenCV
http://opencvstart.blogspot.it/2012/12/install-opencv-in-ubuntu-1204.html

如果您能够创建正确的捕获指针,我还建议您检查 cvCapture 并尝试打印 argv[1] 以查看您是否获得正确的文件名。

于 2013-05-12T16:21:08.663 回答