2016-05-05 2 views
0

Я создаю приложение для камеры для ios с живыми видео-функциями, импортируя GPUImage framework. Я использовал эту фреймворк для живых фотографий, в которых он работал. Я использовал следующий код для видео в реальном времени со ссылкой Брэда GitHub,Невозможно сохранить живой видеофайл в объекте gpuimage. C

videoCamera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack]; 
videoCamera.outputImageOrientation = UIInterfaceOrientationPortrait; 

startfilter = [[GPUImageFilter alloc] init]; 
outputView = [[GPUImageView alloc] initWithFrame:CGRectMake(0.0, 0.0,self.view.frame.size.width,self.view.frame.size.height)]; 
[self.image_view addSubview:outputView]; 
[startfilter removeAllTargets]; 
// Add the view somewhere so it's visible 
[startfilter forceProcessingAtSize:outputView.sizeInPixels]; 
[videoCamera useNextFrameForImageCapture]; 
[videoCamera addTarget:startfilter]; 
[startfilter addTarget:outputView]; 

[videoCamera startCameraCapture]; 

мои сомнения: Как сохранить видео на фото Галерею рассмотрел другие блоги, которые они используют URL-адреса, я не знаю, как реализовать url для фотогалереи. Я использовал следующий код, чтобы сохранить видео в реальном времени в фотогалерее, но я не смог найти видеозапись.

[videoCamera stopCameraCapture]; 
UISaveVideoAtPathToSavedPhotosAlbum(pathToMovie, nil, nil, nil); 

Я хочу знать, как найти pathToMovie?

, пожалуйста, помогите.Спасибо заранее.

+0

я искал все блоги, но не solution..Please не поможет мне .. – developer

ответ

0

Для ведения вышеуказанного вопроса, я решил путь камеры ролл для живого видео, давая следующий код,

pathToMovie = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Movie.m4v"]; 

Вместе с кодом я упомянул в вопросе (инициировании камеры видео), добавьте следующий код, чтобы живое видео было в буфере.

pathToMovie = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Movie.m4v"]; 
unlink([pathToMovie UTF8String]); // If a file already exists, AVAssetWriter won't let you record new frames, so delete the old movie 
NSURL *movieURL = [NSURL fileURLWithPath:pathToMovie]; 
[movieFile addTarget:startfilter]; 
movie_write = [[GPUImageMovieWriter alloc] initWithMovieURL:movieURL size:CGSizeMake(480, 640)]; 
movie_write.shouldPassthroughAudio=YES; 
videoCamera.audioEncodingTarget=movie_write; 
[movieFile enableSynchronizedEncodingUsingMovieWriter:movie_write]; 
[movie_write startRecording]; 
[movieFile startProcessing]; 
[videoCamera startCameraCapture]; 
NSLog(@"Movie completed"); 

Чтобы сохранить видео в реальном времени, следующий код работает для меня,

[startfilter useNextFrameForImageCapture]; 
    UIImage*process=[[UIImage alloc]init]; 
    process=[startfilter imageFromCurrentFramebuffer]; 
    NSLog(@"Image %@",process); 

    [videoCamera pauseCameraCapture]; 

     [startfilter removeTarget:movie_write]; 
     UISaveVideoAtPathToSavedPhotosAlbum(pathToMovie, nil, nil, nil); 
     [movie_write finishRecording]; 
    [videoCamera stopCameraCapture];