2013-02-27 71 views
1

我使用的OpenCV的预编译的版本,我从这里得到:http://aptogo.co.uk/2011/09/opencv-framework-for-ios/CvVideoWriter WriteFrame为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; 
} 

任何人有任何想法,为什么发生这种情况以及如何修复?

谢谢!

回答

2

文件扩展名更改为M4V,并呼吁cvCreateVideoWriter之前删除现有文件()

(OpenCV的选择对文件类型看文件的扩展名)

+0

删除目标文件为我工作。谢谢。 – pstoppani 2013-08-09 21:30:21