2016-05-05 1 views
0

Je crée l'application appareil photo pour ios avec des fonctionnalités de vidéo en direct en important le framework GPUImage.J'ai utilisé ce cadre pour les photos en direct, cela fonctionnait bien.J'ai utilisé le code suivant pour vidéo en direct avec la référence de Brad github,Impossible de sauvegarder un fichier vidéo en direct dans l'objectif du cadre 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]; 

MON doute: Comment enregistrer la vidéo sur la photo gallery.I revue d'autres blogs qu'ils utilisent les urls, je ne suis pas sûr de savoir comment mettre en œuvre l'URL pour la galerie de photos. J'ai utilisé le code suivant pour enregistrer la vidéo en direct dans la galerie de photos, mais je n'ai pas pu trouver la capture vidéo.

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

Je veux savoir, comment trouver pathToMovie?

aidez s'il vous plaît. Merci d'avance.

+0

Je cherchai tous les blogs, mais pas solution..Please me aider .. – developer

Répondre

0

Pour référence de la question ci-dessus, je résolu le chemin de rouleau de caméra pour video en direct en donnant le code suivant,

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

Avec le code je l'ai mentionné dans la question (vidéo initiation de la caméra), ajoutez le code suivant, de sorte que la vidéo en direct sera dans le tampon.

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"); 

Pour enregistrer la vidéo en direct le code suivant fonctionne pour moi,

[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];