2017-02-18 53 views
0

我試圖打開存儲的視頻。在OpenCV iOS和OpenCV C++中的視頻捕獲

在使用OpenCV的3.0與下面的代碼C++項目:

cv::VideoCapture capture; 
if(capture.open("IMG_1181.MOV")){ 
    cout << "opened"; 
}else{ 
    cout << "not opened"; 
} 

我可以毫無問題打開視頻文件,輸出線給opened

但是,如果我使用完全相同的視頻,但iOS版本的OpenCV設置爲Objective-C++編譯,輸出行會給出not opened。我沒有得到任何錯誤。視頻不會打開。有任何想法嗎?

回答

0

在iOS上,不能簡單地用它的名字打開一個文件(或者至少我不能)。首先,您需要獲取包的路徑,然後使用該路徑加載文件。舉例:

// get main app bundle 
NSBundle * appBundle = [NSBundle mainBundle]; 

// constant file name 
NSString * videoName = @"IMG_1181"; 
NSString * videoType = @"MOV"; 

// get file path in bundle 
NSString * videoPathInBundle = [appBundle pathForResource: videoName ofType: videoType]; 

// convert NSString to std::string 
std::string videoPath([videoPathInBundle UTF8String]); 

// load video 
video = cv::VideoCapture(videoPath);