2011-02-13 2 views
0

Je développe une application qui enregistre la vidéo et enregistre cette vidéo dans la base de données, maintenant je veux réduire la résolution et le débit binaire/sec de la vidéo enregistrée comment je peux le faire. toute aide à ce sujet.Compression vidéo enregistrée dans l'iphone

merci.

+0

n'est pas plus facile, avant que les dossiers de la vidéo, choisissez la résolution et débit? – anvd

+0

Merci pour la réponse rapide Fel, Comment puis-je choisir la résolution avant d'enregistrer la vidéo, actuellement j'utilise picker.videoQuality = UIImagePickerControllerQualityTypeLow et je reçois la taille 3MB pendant 1min, si j'utilise la qualité moyenne je reçois 13 Mo, j'ai besoin < 1 Mo ou 1,5 pour 1 min. –

+0

duplication possible de [iPhone: compresser par programmation la vidéo enregistrée pour partager?] (Http://stackoverflow.com/questions/5687341/iphoneprogrammatically-compressing-recorded-video-to-share) – svmrajesh

Répondre

1

Essayez ceci:

- (void)convertVideoToLowQuailtyWithInputURL:(NSURL*)inputURL 
            outputURL:(NSURL*)outputURL 
            handler:(void (^)(AVAssetExportSession*))handler 
{ 
    [[NSFileManager defaultManager] removeItemAtURL:outputURL error:nil]; 
    AVURLAsset *urlAsset = [AVURLAsset URLAssetWithURL:inputURL options:nil]; 
    AVAssetExportSession *session = [[AVAssetExportSession alloc] initWithAsset: urlAsset presetName:AVAssetExportPresetLowQuality]; 
    session.outputURL = storeVideo; 
    session.outputFileType = AVFileTypeQuickTimeMovie; 
    [session exportAsynchronouslyWithCompletionHandler:^(void) 
    { 
     handler(session); 

    }]; 
} 

pour la cueillette vidéo de la galerie

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 

{ 
    NSURL *getVideo = [info objectForKey:UIImagePickerControllerMediaURL]; 
    NSURL *storeVideo = [NSURL fileURLWithPath:@"/videos/welcome.mov"]; 
    [self convertVideoToLowQuailtyWithInputURL:videoURL outputURL:outputURL handler:^(AVAssetExportSession *session) 
    { 
     if (session.status == AVAssetExportSessionStatusCompleted) 
     { 
      // Success 
     } 
     else 
     { 
      // Error Handing 

     } 
    }]; 

Utilisez l'article ci-dessous pour modifier la résolution:

UIImagePickerControllerQualityTypeHigh  
UIImagePickerControllerQualityType640x480 
UIImagePickerControllerQualityTypeMedium // default 
UIImagePickerControllerQualityTypeLow 
Questions connexes