2011-02-13 4 views
0

비디오를 녹화하고 비디오를 데이터베이스에 저장하는 응용 프로그램을 개발 중입니다. 이제 녹화 된 비디오의 해상도와 비트율/초를 줄이려고합니다. 그것에 대한 도움.iPhone에서 녹화 된 비디오 압축하기

감사합니다.

+0

이 아닌 더 쉽게 기록하기 전에 비디오가 선택이다 해상도와 비트율? – anvd

+0

Fel, 비디오를 녹화하기 전에 해상도를 선택할 수있는 방법은 현재 picker.videoQuality = UIImagePickerControllerQualityTypeLow이고 크기가 중간 크기 인 13MB를 사용하는 경우 1MB는 ​​3MB가됩니다. 1MB 또는 1.5 분. –

+0

[iPhone : 프로그래밍 방식으로 공유하여 녹화 된 비디오를 압축 할 수 있습니까?] (http://stackoverflow.com/questions/5687341/iphoneprogrammatically-compressing-recorded-video-to-share) – svmrajesh

답변

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 
관련 문제