1

I am trying to record video with iPhone camera and saving to camera roll following this blog. However, using AVCaptureSession ,camera gets initialized. But when try to save video to camera roll, it gives URL error. Here's my code snippet

NSString *outputPath = [[NSString alloc] initWithFormat:@"%@%@", NSTemporaryDirectory(), @"myApp.mov"];

            NSURL *outputURL = [NSURL URLWithString:outputPath];
          //  NSLog(@"Output URL  %@ AND ABSOLUTE STRING %@",outputURL,outputURL.absoluteString);
            NSFileManager *fileManager = [NSFileManager defaultManager];
            if ([fileManager fileExistsAtPath:outputPath])
            {
                NSError *error;
                if ([fileManager removeItemAtPath:outputPath error:&error] == NO)
                {
                    //Error - handle if requried
                }
            }
            //Start recording
            [MovieFileOutput startRecordingToOutputFileURL:outputURL recordingDelegate:self];

It gives the below error

[AVCaptureMovieFileOutput startRecordingToOutputFileURL:recordingDelegate:] - Cannot record to URL /private/var/mobile/Containers/Data/Application/FEA51E75-B2A6-45DD-991B-AFFBF5794EAC/tmp/myApp.mov because it is not a file URL.

But if I change URL to initFileURLWithPath, it gives another error.

Video /private/var/mobile/Containers/Data/Application/B6876493-4354-4607-B348-63C5262AF2D9/tmp/myApp.mov cannot be saved to the saved photos album: Error Domain=NSURLErrorDomain Code=-1100 "The requested URL was not found on this server." UserInfo={NSErrorFailingURLStringKey=file:///private/var/mobile/Containers/Data/Application/B6876493-4354-4607-B348-63C5262AF2D9/tmp/myApp.mov, NSErrorFailingURLKey=file:///private/var/mobile/Containers/Data/Application/B6876493-4354-4607-B348-63C5262AF2D9/tmp/myApp.mov, NSLocalizedDescription=The requested URL was not found on this server., NSUnderlyingError=0x171ad710 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}, NSURL=file:///private/var/mobile/Containers/Data/Application/B6876493-4354-4607-B348-63C5262AF2D9/tmp/myApp.mov}

I really don't understand the error. Can anyone please help me sorting this out ?

Sushil Sharma
  • 2,321
  • 3
  • 29
  • 49

2 Answers2

0

Developer Apple site has a good example how to work with video from iPhone camera, preprocess and save video to camera roll. Visit link RosyWriter example and click "download sample" button on top of the article.

This tutorial also shows how to use OpenCV and OpenGL libraries to preprocess video.

0

Did you tried like this:

   NSString *outputFilePath = [NSTemporaryDirectory() stringByAppendingPathComponent:[@"myApp" stringByAppendingPathExtension:@"mov"]];

Ref : same example like you are working, https://stackoverflow.com/a/21118720/4557505

else

NSString *rootPath = NSTemporaryDirectory();
NSString  *videoPath = [rootPath stringByAppendingPathComponent:@"myApp.mov"];
NSURL *outputURL = [NSURL fileURLWithPath:videoPath];

The above code works for me in copyItemAtURL

Community
  • 1
  • 1
HardikDG
  • 5,892
  • 2
  • 26
  • 55