1

これに似た質問がすでにたくさんあることは知っていますが、残念ながらどれも役に立ちませんでした. それで、ここに問題があります(私はOpenCVにまったく慣れていません)。

単純に AVI ファイルを開いて表示しようとしています。ファイルが存在し、そのパスが正しい。

int main( int argc, char** argv )
{
    VideoCapture cap;

    if(!cap.open(argv[1]))
    {
        printf("Failed to open %s\n", argv[1]);
        return -1;
    }

    namedWindow("Video output", 1);

    for(;;)
    {
        Mat curFrame;

        cap >> curFrame;

        imshow("Video output\n", curFrame);

        if(waitKey(30) >= 0)
            break;
    }

    return 0;
}

エラーは表示されず、open() は false を返します。

以前にファイルをmencodeで変換しました。ファイルに関する情報は次のとおりです。

boris@boris-ubuntu:~$ ffmpeg -i out.avi 
ffmpeg version 0.8.3-4:0.8.3-0ubuntu0.12.04.1, Copyright (c) 2000-2012 the Libav developers
  built on Jun 12 2012 16:37:58 with gcc 4.6.3
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
Input #0, avi, from 'out.avi':
  Metadata:
    encoder         : MEncoder svn r34540 (Ubuntu), built with gcc-4.6
  Duration: 00:00:01.00, start: 0.000000, bitrate: 265458 kb/s
    Stream #0.0: Video: rawvideo, yuv420p, 1280x720, PAR 1:1 DAR 16:9, 24 tbr, 24 tbn, 24 tbc
At least one output file must be specified

私が理解できる限り、OpenCV でサポートされているビデオ形式は yuv420p です。

助言がありますか?

ありがとう!

4

1 に答える 1

1

問題は、OpenCV が ffmpeg (またはその他のビデオ ライブラリ) のサポートなしでコンパイルされたことです。

この素晴らしい投稿のおかげで、ffmpeg のインストールと OpenCV の再コンパイルに成功し、すべてがうまくいきました。

于 2012-10-29T20:33:37.317 に答える