2011-02-13 63 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