title: iOS: How to compress video to expected size if too big?
body: <p>I would like to compress videos to an expected size if too big. For example, if my video is bigger than 2mb, I want to compress it next to 2mb. My goal is not to have a video superior to 2mb.</p>
  
  <pre><code>- (void)convertVideoToLowQualityWithInputURL:(NSURL*)inputURL 
                                     outputURL:(NSURL*)outputURL 
                                       handler:(void (^)(AVAssetExportSession*))handler
  {
      [[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) 
      {
          handler(exportSession);
          [exportSession release];
      }];
  }
  - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
  {   
      NSURL *videoURL = [info objectForKey:UIImagePickerControllerMediaURL];
      NSURL *outputURL = [NSURL fileURLWithPath:@"/Users/josh/Desktop/output.mov"];
      [self convertVideoToLowQualityWithInputURL:videoURL outputURL:outputURL handler:^(AVAssetExportSession *exportSession)
       {
           if (exportSession.status == AVAssetExportSessionStatusCompleted)
           {
               printf("completed\n");
           }
           else
           {
               printf("error\n");
           }
       }];
  }
  </code></pre>
  
  <p>Thanks in advance.</p>