2011-02-13 125 views
0

我正在开发一个应用程序,它记录视频并将该视频保存在数据库中,现在我想降低录制视频的分辨率和比特率/秒我该如何做到这一点。任何帮助。在iPhone中压缩录制的视频

谢谢。

+0

是不是更容易,记录前的视频选择分辨率和比特率? – anvd 2011-02-13 05:00:59

回答

1

试试这个:

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

    }]; 
} 

对于从画廊挑选视频

- (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 

     } 
    }]; 

使用下列项目更改分辨率:

UIImagePickerControllerQualityTypeHigh  
UIImagePickerControllerQualityType640x480 
UIImagePickerControllerQualityTypeMedium // default 
UIImagePickerControllerQualityTypeLow