2013-10-08 65 views
-1

我有一個iPhone應用程序,我在錄製視頻和播放該視頻時工作得很好。但是文件大小爲30MB的巨大3MB任何想法或方法壓縮到在這裏我想要的文件時,壓縮按鈕被點擊屏幕上它應該壓縮錄製的視頻。如何在iPhone應用程序中壓縮錄製的視頻

Saved Video 



    NSURL*videoURL = [info objectForKey:UIImagePickerControllerMediaURL]; 

    NSLog(@"found a video"); 

    videoData = [[NSData dataWithContentsOfURL:videoURL] retain]; 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 

    NSDateFormatter *dateFormat = [[[NSDateFormatter alloc] init] autorelease]; 
    [dateFormat setDateFormat:@"dd-MM-yyyy_HH:mm:SS"]; 
    NSDate *now = [[[NSDate alloc] init] autorelease]; 
    NSDate* theDate = [dateFormat stringFromDate:now]; 


NSString*myDate=[dateFormat stringFromDate:theDate]; 
    NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"Default Album"]; 

    if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath]) 
     [[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:nil]; 



NSString*[email protected]"test"; 


NSString*testUser=[test stringByReplacingOccurrencesOfString:@" " withString:@""]; 



videopath= [[[NSString alloc] initWithString:[NSString stringWithFormat:@"%@/%@.mp4",documentsDirectory,testUser]] autorelease]; 
    BOOL success = [videoData writeToFile:videopath atomically:NO]; 

    NSLog(@"Successs:::: %@", success ? @"YES" : @"NO"); 
    NSLog(@"video path --> %@",videopath); 

NSURL *movieURL = [NSURL fileURLWithPath:videopath]; 
AVURLAsset *avUrl = [AVURLAsset assetWithURL:movieURL]; 
CMTime time1 = [avUrl duration]; 
int seconds = ceil(time1.value/time1.timescale); 

回答

0

嘗試這個

+ (void)convertVideoToLowQualityWithInputURL:(NSURL*)inputURL outputURL:(NSURL*)outputURL successHandler:(void (^)())successHandler failureHandler:(void (^)(NSError *))failureHandler { 
    if([[NSFileManager defaultManager] fileExistsAtURL:outputURL]) [[NSFileManager defaultManager] removeItemAtURL:outputURL error:nil]; 
    AVURLAsset *asset = [AVURLAsset URLAssetWithURL:inputURL options:nil]; 
    AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset:asset presetName:AVAssetExportPresetLowQuality]; 
    exportSession.outputURL = outputURL; 
    exportSession.outputFileType = AVFileTypeQuickTimeMovie; 
    [exportSession exportAsynchronouslyWithCompletionHandler:^(void) { 
     if (exportSession.status == AVAssetExportSessionStatusCompleted) { 
      successHandler(); 
     } else { 
      NSError *error = [NSError errorWithDomain:domain code:code userInfo:userInfo]; 
      failureHandler(error); 
     } 
    }]; 
}