2010-05-13 20 views
0

我正在編寫一個應用程序來從iPhone上的一堆圖像創建一個電影文件。我正在使用OpenCv。我下載了ARM的OpenCv靜態庫(iPhone的本地指令體系結構),並且庫生成得很好。鏈接到它們的庫沒有問題。OpenCV和iPhone

作爲第一步,我試圖創建一個.avi文件使用一個圖像,看看它是否工作。但是cvCreateVideoWriter總是返回一個NULL值。我做了一些搜索,我相信這是由於編解碼器不在場。我正在iPhone模擬器上嘗試這個。這是我做的:

- (void)viewDidLoad { 
[super viewDidLoad]; 
UIImage *anImage = [UIImage imageNamed:@"1.jpg"]; 
IplImage *img_color = [self CreateIplImageFromUIImage:anImage]; 
//The image gets created just fine 

CvVideoWriter *writer = 
    cvCreateVideoWriter("out.avi",CV_FOURCC('P','I','M','1'), 
         25,cvSize(320,480),1); 
//writer is always null 

int result = cvWriteFrame(writer, img_color); 
NSLog(@"\n%d",result); 
//hence this is also 0 all the time 
cvReleaseVideoWriter(&writer); 
} 

我不確定第二個參數。什麼樣的編解碼器或它到底做了什麼... 我是一個n00B在這個。有什麼建議麼?

+0

可能重複的[iPhone和OpenCV](http://stackoverflow.com/questions/2827713/iphone-and-opencv) – 2010-05-14 04:23:46

回答

0

在* nix的風格上,OpenCV使用ffmpeg編碼視頻文件,所以你需要確保你的靜態庫是用ffmpeg支持構建的。第二個參數CV_FOURCC('P','I','M','1')是描述您所請求的視頻格式/編解碼器的FOURCC代碼,在這種情況下是MPEG1編解碼器。查看fourcc.org以獲取完整列表(並非所有工作都在ffmpeg中)。

+0

你好Jeff,謝謝你的回答。我實際上最初嘗試過ffmpeg,但通過文檔的方式很少,我迷失了方向...... 您可以建議如何使用ffmpeg構建靜態庫嗎? – user308990 2010-05-14 04:16:36

+0

我不知道,同一個問題如何發佈三次。我只是爲任何不便而張貼一次抱歉! – user308990 2010-05-14 04:29:28