2

ここから入手したコンパイル済みバージョンの OpenCV を使用しています: http://aptogo.co.uk/2011/09/opencv-framework-for-ios/

私は Ogre3D アプリケーションに取り組んでおり、アプリから画面を取得してつなぎ合わせてビデオを作成しようとしています。OpenCV の CvVideoWriter を使用して、これを Windows で正常に動作させることができました。

残念ながら、これの iOS バージョンでいくつかの問題が発生しています。私のコードは次のとおりです。

IplImage *mCvCaptureImage, *mCvConvertImage;
mCvCaptureImage = cvCreateImage(cvSize(width, height), IPL_DEPTH_8U, 3);
mCvConvertImage = cvCreateImage(cvSize(width, height), IPL_DEPTH_8U, 3);
PixelFormat pf = win->suggestPixelFormat();
PixelBox pb(width, height, 1, pf, mCvCaptureImage->imageData);
                    win->copyContentsToMemory(pb);
cvConvertImage(mCvCaptureImage, mCvConvertImage, CV_CVTIMG_SWAP_RB);
cvWriteFrame(writer, mCvConvertImage );
cvReleaseImage(&mCvConvertImage);
cvReleaseImage(&mCvCaptureImage);

cvWriteFrame 呼び出しは、ライター ステータス チェックが原因でエラーをスローしています。ソースコードを確認しましたが、これが問題のようです。

// writer status check
if (![mMovieWriterInput isReadyForMoreMediaData] || mMovieWriter.status !=  AVAssetWriterStatusWriting ) {
         NSLog(@"[mMovieWriterInput isReadyForMoreMediaData] Not ready for media data or ...");
         NSLog(@"mMovieWriter.status: %d. Error: %@", mMovieWriter.status,[mMovieWriter.error localizedDescription]);
         [localpool drain];
         return false;
}

なぜこれが起こっているのか、どうすれば修正できるのか、誰にもアイデアがありますか?

ありがとう!

4

1 に答える 1

2

cvCreateVideoWriter() を呼び出す前に、ファイル拡張子を m4v に変更し、既存のファイルを削除します。

( opencv はファイル拡張子を見てファイルタイプを選択します )

于 2013-03-08T13:26:16.590 に答える