2011-08-02 30 views
0

Windows用のOpenCV 2.2 for Androidで作業していますが、cvCreateVideoWriterを使用しているときに問題が発生しました。常にNULLを返します。私はそれが正しく構築されていないライブラリFFMPEGと関係があると推測しています。私はhttp://opencv.willowgarage.com/wiki/Android2.2の指示に従いました、そして、FFMPEGはサードパーティのライブラリとして含まれています(少なくとも私はOpenCVパッケージ全体でソースを見ることができます)私は、このライブラリをインストールするために何か特別な作業をする必要はないと思いました。私は間違っているかもしれません。ライブラリが正しくビルドされているかどうかを確認するにはどうしたらいいですか?デフォルトのmakeファイルを変更する必要はありますか?cvCreateVideoWriter(OpenCV 2.2 + FFMPEG)

ご迷惑をおかけして申し訳ありません。

ありがとうございます!

+0

また、よくコンパイルされていると仮定すると、ヘッダー(.h)は#includeする必要がありますか? avcodec.h? avformat.h?他の? – androidtje

+0

'cvCreateVideoWriter()'はどうやって呼びますか?ソースコードなしであなたを助けることはできません。 – karlphillip

答えて

0

cvCreateVideoWriter()を使用する際に考慮すべき2つの重要な事柄があります。

  • アプリケーションがファイルを作成し、それらの上に書くことができるようにする権利を必要としますが。これを行うために必要なディレクトリアクセス権が設定されていることを確認してください。

  • 関数の第2引数は、フレームを圧縮するために使用されるコーデックのコードです。たとえば、CV_FOURCC('P','I','M','1')はMPEG-1コーデック、CV_FOURCC('M','J','P','G')はmotion-jpegを定義します。

典型的な呼び出しは次のようになります。

CvVideoWriter *writer = cvCreateVideoWriter("video.avi", CV_FOURCC('M','J','P','G'), fps, size, 0); 
if (!write) 
{ 
    // handle error 
} 

は、私は別のコーデックでcvCreateVideoWriterを呼び出すことをお勧めします。ご使用のプラットフォームが現在使用しているプラ​​ットフォームをサポートしていない可能性があります。

AndroidのデフォルトビルドでフラグHAVE_FFMPEGが有効になっているかどうかわかりませんが、ffmpegがインストールされている必要があります.OpenCVをコンパイルするときにこのフラグが有効になっていることを確認することをおすすめします。