2017-02-18 80 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);