0

次を使用してビデオをファイルに保存しました。

NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
documentsDirectory = [documentsDirectory stringByAppendingPathComponent:@"test9.avi"];

NSLog(@"Open to: %@", documentsDirectory);

std::string fileName([documentsDirectory cString], [documentsDirectory cStringLength]);
videoWriter = new cv::VideoWriter(fileName, CV_FOURCC('H', 'F', 'Y', 'U'), 25, cvSize(288,352),1);

しかし、私は VideoCapture でこれを開くことができません:

NSLog(@"Load the video");
videoCapture = new cv::VideoCapture();
NSLog(@"Video loaded");
if (videoCapture->open(fileName))
{
    NSLog(@"Opened");
}
else {
    NSLog(@"Failed to open");
}

VideoCapture 自体からのエラーはありません。私のログは "Failed to open" だけです...どうにかして、より詳細なエラー ログを取得できますか?

4

4 に答える 4

2
cv::VideoCapture capture;
NSString* pathToInputFile = [NSString documentPathByAppendingPath:@"Video/sample_iTunes.mov"];
if(capture.open(std::string([pathToFile UTF8String]))){
    NSLog(@"Opened");
}else{
    NSLog(@"Failed to open");
}

works fine for me

于 2013-02-12T12:42:30.370 に答える
0

キリルの答えは、投稿されたときに機能していたはずですが、現在はそうではありません.

以下は Xcode 8.2.1 でdocumentPathByAppendingPath機能し、使用できなくなった機能を置き換えます。

cv::VideoCapture cap;
NSString *path = [[NSBundle mainBundle] pathForResource:@"MyVideo" ofType:@"MOV"];
if ( cap.open ( std::string( path.UTF8String ) ) ) {
    NSLog(@"Opened");
} else {
    NSLog(@"Failed to open");
}
于 2017-03-06T06:24:42.103 に答える